diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index e0186f803126ba1ed6331702b613cd0a568c8774..80b640078d4d4db66748d088017d852e28f60598 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -511,7 +511,6 @@ static int v4l2_set_parameters(AVFormatContext *s1, AVFormatParameters *ap)
             return AVERROR(EIO);
         }
     }
-    av_freep(&s->standard);
 
     if (ap->time_base.num && ap->time_base.den) {
         av_log(s1, AV_LOG_DEBUG, "Setting time per frame to %d/%d\n",
@@ -681,6 +680,7 @@ static int v4l2_read_header(AVFormatContext *s1, AVFormatParameters *ap)
 out:
     av_freep(&s->video_size);
     av_freep(&s->pixel_format);
+    av_freep(&s->standard);
     return res;
 }