summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorAurelien Jacobs <aurel@gnuage.org>2009-01-06 22:11:04 +0000
committerAurelien Jacobs <aurel@gnuage.org>2009-01-06 22:11:04 +0000
commit094d9df72e8372b0a7c6e9381b375b438db3fa3c (patch)
treebc1ecfa16f0b5b5dd14c9a9910f343d4a11b22e5 /libavformat/utils.c
parent16cda1535edf853c31506b2c737d0a6873744550 (diff)
free all allocated metadata structures
Originally committed as revision 16457 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index e3fdd7f744..eb5549979f 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2285,6 +2285,7 @@ void av_close_input_stream(AVFormatContext *s)
if (st->parser) {
av_parser_close(st->parser);
}
+ av_metadata_free(&st->metadata);
av_free(st->index_entries);
av_free(st->codec->extradata);
av_free(st->codec);
@@ -2295,6 +2296,7 @@ void av_close_input_stream(AVFormatContext *s)
for(i=s->nb_programs-1; i>=0; i--) {
av_freep(&s->programs[i]->provider_name);
av_freep(&s->programs[i]->name);
+ av_metadata_free(&s->programs[i]->metadata);
av_freep(&s->programs[i]->stream_index);
av_freep(&s->programs[i]);
}
@@ -2303,17 +2305,11 @@ void av_close_input_stream(AVFormatContext *s)
av_freep(&s->priv_data);
while(s->nb_chapters--) {
av_free(s->chapters[s->nb_chapters]->title);
+ av_metadata_free(&s->chapters[s->nb_chapters]->metadata);
av_free(s->chapters[s->nb_chapters]);
}
av_freep(&s->chapters);
- if(s->metadata){
- while(s->metadata->count--){
- av_freep(&s->metadata->elems[s->metadata->count].key);
- av_freep(&s->metadata->elems[s->metadata->count].value);
- }
- av_freep(&s->metadata->elems);
- }
- av_freep(&s->metadata);
+ av_metadata_free(&s->metadata);
av_free(s);
}