diff --git a/libavformat/asf.c b/libavformat/asf.c
index f4a920d3e7f1a8268105b747c1673b48c6800540..fd0da6ed3ac1f9cf45801e1e5cde9e1094b7bed1 100644
--- a/libavformat/asf.c
+++ b/libavformat/asf.c
@@ -730,7 +730,6 @@ static int asf_read_close(AVFormatContext *s)
     for(i=0;i<s->nb_streams;i++) {
         AVStream *st = s->streams[i];
         av_free(st->priv_data);
-        av_free(st->codec->extradata);
     av_free(st->codec->palctrl);
     }
     return 0;
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 85e819c9b697876212b2b77ca9d5fe8a9ee7b2f6..134652f3b02f40c8659317447aa42132a509c718 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -898,7 +898,6 @@ static int avi_read_close(AVFormatContext *s)
         AVStream *st = s->streams[i];
         AVIStream *ast = st->priv_data;
         av_free(ast);
-        av_free(st->codec->extradata);
         av_free(st->codec->palctrl);
     }
 
diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index b7e3a711e3c1c4ec60af213b8f0fb574fdc3c1f3..9a1a69bc5a062dfcf97418ede65ee9da8cff52de 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -2630,10 +2630,6 @@ matroska_read_close (AVFormatContext *s)
         av_free(track);
     }
 
-    for (n = 0; n < s->nb_streams; n++) {
-        av_free(s->streams[n]->codec->extradata);
-    }
-
     memset(matroska, 0, sizeof(MatroskaDemuxContext));
 
     return 0;
diff --git a/libavformat/nsvdec.c b/libavformat/nsvdec.c
index 162f4d1210ad13f9e6b59c96a880b525e1522916..32afbc411421a585feb44856291ab277e58c8068 100644
--- a/libavformat/nsvdec.c
+++ b/libavformat/nsvdec.c
@@ -705,7 +705,6 @@ static int nsv_read_close(AVFormatContext *s)
             av_free(ast->index_entries);
             av_free(ast);
         }
-        av_free(st->codec->extradata);
         av_free(st->codec->palctrl);
     }
 
diff --git a/libavformat/nut.c b/libavformat/nut.c
index 9c12e76f175c8a78a641aad55d82da5f15def9ce..616eba1eec7da9eeda5c1f619934c8979b100a7c 100644
--- a/libavformat/nut.c
+++ b/libavformat/nut.c
@@ -1415,9 +1415,6 @@ static int nut_read_close(AVFormatContext *s)
     NUTContext *nut = s->priv_data;
     int i;
 
-    for(i=0;i<s->nb_streams;i++) {
-        av_freep(&s->streams[i]->codec->extradata);
-    }
     av_freep(&nut->stream);
 
     return 0;
diff --git a/libavformat/ogg.c b/libavformat/ogg.c
index db7ed68c0341ac1e608bf54abdfdad2aaa4c540e..37158981ae536c8cf75e4f982543fc53f8d6ab61 100644
--- a/libavformat/ogg.c
+++ b/libavformat/ogg.c
@@ -249,7 +249,6 @@ static int ogg_read_close(AVFormatContext *avfcontext) {
 
     ogg_stream_clear(&context->os) ;
     ogg_sync_clear(&context->oy) ;
-    av_freep(&avfcontext->streams[0]->codec.extradata);
 
     return 0 ;
 }
diff --git a/libavformat/ogg2.c b/libavformat/ogg2.c
index ce1bcbae6a9962144da9fabd3abe966b34481c0a..7ce13c4f99b927d6a180d3ffe7f88f1a87d9dbf9 100644
--- a/libavformat/ogg2.c
+++ b/libavformat/ogg2.c
@@ -542,7 +542,6 @@ ogg_read_close (AVFormatContext * s)
     for (i = 0; i < ogg->nstreams; i++){
         av_free (ogg->streams[i].buf);
         av_free (ogg->streams[i].private);
-        av_freep (&s->streams[i]->codec->extradata);
     }
     av_free (ogg->streams);
     return 0;
diff --git a/libavformat/smacker.c b/libavformat/smacker.c
index 218ae38a760a63ce9ad8d2c239f3a61341e1e809..0c900dc6399585873a97cb5f7495fe24535719c7 100644
--- a/libavformat/smacker.c
+++ b/libavformat/smacker.c
@@ -329,11 +329,6 @@ static int smacker_read_close(AVFormatContext *s)
     if(smk->frm_flags)
         av_free(smk->frm_flags);
 
-    for(i=0;i<s->nb_streams;i++) {
-        AVStream *st = s->streams[i];
-        if(st->codec->extradata)
-            av_free(st->codec->extradata);
-    }
     return 0;
 }
 
diff --git a/libavformat/utils.c b/libavformat/utils.c
index d135015d3ae6db0d188f389a2ab4f9612870417f..f011bc2d6506a0d56eede310fb234badd34483a4 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2167,6 +2167,7 @@ void av_close_input_file(AVFormatContext *s)
             av_parser_close(st->parser);
         }
         av_free(st->index_entries);
+        av_free(st->codec->extradata);
         av_free(st->codec);
         av_free(st);
     }