On Thu, Jul 31, 2014 at 8:31 PM, wm4 <[email protected]> wrote: > On Thu, 31 Jul 2014 19:56:41 -0400 > Andrew Stone <[email protected]> wrote: > >> --- >> libavformat/oggparsevorbis.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c >> index 58cb4a6..c6d8b2a 100644 >> --- a/libavformat/oggparsevorbis.c >> +++ b/libavformat/oggparsevorbis.c >> @@ -156,10 +156,12 @@ int ff_vorbis_comment(AVFormatContext *as, >> AVDictionary **m, >> av_log(as, AV_LOG_WARNING, "Failed to parse cover art >> block.\n"); >> continue; >> } >> - } else if (!ogm_chapter(as, tt, ct)) >> + } else if (!ogm_chapter(as, tt, ct)) { >> + as->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; >> av_dict_set(m, tt, ct, >> AV_DICT_DONT_STRDUP_KEY | >> AV_DICT_DONT_STRDUP_VAL); >> + } >> } >> } >> > > Did you cross-check with what ffmpeg does? I think it did much more > here (although of course their metadata update API is different).
Theirs stores a field in struct ogg_stream called `new_metadata` which is then later added as side-data on a packet; that's the really the main difference. If we forget about how they populate side data, the two are still functionally identical. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
