diff options
author | Andrew Stone <andrew@clovar.com> | 2014-08-12 17:03:53 -0400 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2014-08-13 16:23:36 +0000 |
commit | fa3a5dd4dea34baa6bb2f7fe6006fc4b2888f2aa (patch) | |
tree | 09551461536046b12dd25ac6c71fb622534716d5 | |
parent | 0f789322efa78a672e4c3027e5cc12b8a947043a (diff) | |
download | ffmpeg-fa3a5dd4dea34baa6bb2f7fe6006fc4b2888f2aa.tar.gz |
nutdec: update AVFormatContext.event_flags with STREAM_/METADATA_UPDATED whenever metadata changes.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r-- | libavformat/nutdec.c | 13 |
1 files 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); + } } } |