[FFmpeg-devel] [PATCH v6 0/9] Properly decode ogg metadata in ogg/{vorbis, flac, opus} chained bitstreams
Romain Beauxis
romain.beauxis at gmail.com
Fri Feb 21 17:41:55 EET 2025
Hi again,
I've updated the PR here with a description of the most recent
changes and the fixed rebase commit:
https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/6
Hopefully that helps make things more clear!
-- Romain
Le mer. 19 févr. 2025 à 12:57, Romain Beauxis
<romain.beauxis at gmail.com> a écrit :
>
> Le mer. 19 févr. 2025 à 12:17, Lynne <dev at lynne.ee> a écrit :
> >
> > On 19/02/2025 06:24, Romain Beauxis wrote:
> > > This is a series of patches to allow proper decoding of ogg metadata in chained
> > > `ogg/vorbis, `ogg/flac` and `ogg/opus` streams.
> > >
> > > ## Changes since last version:
> > > * Metadata update is now using a factored out function from the vorbis
> > > decoder which includes update the underlying AVStream metadata and
> > > setting AVSTREAM_EVENT_FLAG_METADATA_UPDATED on it.
> > > * New vorbis comment metadata erase existing ones instead of appending
> > > * Test utility is updated to include the stream's metadata
> > > * A test for chained ogg/vorbis metadata is added.
> > >
> > > Last version and discussion: https://ffmpeg.org/pipermail/ffmpeg-devel/2025-February/339887.html
> > >
> > > Romain Beauxis (9):
> > > libavcodec/decode.c: intercept `AV_PKT_DATA_METADATA_UPDATE` packet
> > > extra data, attach them to the next decoded frame.
> > > tests: Add stream dump test API util.
> > > libavformat/oggparsevorbis.c: Don't append new metadata.
> > > tests: Add chained ogg/vorbis stream dump test.
> > > libavformat/oggdec.h, libavformat/oggparsevorbis.c: Factor out vorbis
> > > metadata update mechanism.
> > > libavformat/oggparseflac.c: Parse ogg/flac comments in new ogg
> > > packets, add them to ogg stream new_metadata.
> > > tests: Add chained ogg/flac stream dump test.
> > > libavformat/oggparseopus.c: Parse comments from secondary chained
> > > streams header packet.
> > > tests: Add chained ogg/opus stream dump test.
> > >
> > > libavcodec/decode.c | 20 +++
> > > libavformat/oggdec.h | 14 +++
> > > libavformat/oggparseflac.c | 21 ++++
> > > libavformat/oggparseopus.c | 13 +-
> > > libavformat/oggparsevorbis.c | 29 +++--
> > > tests/Makefile | 4 +
> > > tests/api/Makefile | 2 +-
> > > tests/api/api-dump-stream-meta-test.c | 175 ++++++++++++++++++++++++++
> > > tests/fate/ogg-flac.mak | 11 ++
> > > tests/fate/ogg-opus.mak | 11 ++
> > > tests/fate/ogg-vorbis.mak | 11 ++
> > > 11 files changed, 298 insertions(+), 13 deletions(-)
> > > create mode 100644 tests/api/api-dump-stream-meta-test.c
> > > create mode 100644 tests/fate/ogg-flac.mak
> > > create mode 100644 tests/fate/ogg-opus.mak
> > > create mode 100644 tests/fate/ogg-vorbis.mak
> >
> > I fail to see any changes. No mention of
> > AVSTREAM_EVENT_FLAG_METADATA_UPDATED in any of the diffs?
>
> It's because it's reusing what vorbis is already doing here:
> https://code.ffmpeg.org/FFmpeg/FFmpeg/src/branch/master/libavformat/oggparsevorbis.c#L74-L84
More information about the ffmpeg-devel
mailing list