From fa3a5dd4dea34baa6bb2f7fe6006fc4b2888f2aa Mon Sep 17 00:00:00 2001 From: Andrew Stone Date: Tue, 12 Aug 2014 17:03:53 -0400 Subject: [PATCH] nutdec: update AVFormatContext.event_flags with STREAM_/METADATA_UPDATED whenever metadata changes. Signed-off-by: Anton Khirnov --- libavformat/nutdec.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c index 8ec67ae355..6c95d5507b 100644 --- a/libavformat/nutdec.c +++ b/libavformat/nutdec.c @@ -461,9 +461,11 @@ static int decode_info_header(NUTContext *nut) int64_t value, end; char name[256], str_value[1024], type_str[256]; const char *type; + int *event_flags; AVChapter *chapter = NULL; AVStream *st = NULL; AVDictionary **metadata = NULL; + int metadata_flag = 0; end = get_packetheader(nut, bc, 1, INFO_STARTCODE); end += avio_tell(bc); @@ -484,8 +486,13 @@ static int decode_info_header(NUTContext *nut) } else if (stream_id_plus1) { st = s->streams[stream_id_plus1 - 1]; metadata = &st->metadata; - } else + event_flags = &st->event_flags; + metadata_flag = AVSTREAM_EVENT_FLAG_METADATA_UPDATED; + } else { metadata = &s->metadata; + event_flags = &s->event_flags; + metadata_flag = AVFMT_EVENT_FLAG_METADATA_UPDATED; + } for (i = 0; i < count; i++) { get_str(bc, name, sizeof(name)); @@ -521,8 +528,10 @@ static int decode_info_header(NUTContext *nut) continue; } if (metadata && av_strcasecmp(name, "Uses") && - av_strcasecmp(name, "Depends") && av_strcasecmp(name, "Replaces")) + av_strcasecmp(name, "Depends") && av_strcasecmp(name, "Replaces")) { + *event_flags |= metadata_flag; av_dict_set(metadata, name, str_value, 0); + } } }