[FFmpeg-devel] [PATCH v9 0/8] Properly decode ogg metadata in ogg/{vorbis, flac, opus} chained bitstreams

Romain Beauxis romain.beauxis at gmail.com
Tue Apr 1 19:04:17 EEST 2025


Hi,

Do y'all have any feedback on those patches?

Thanks,
-- Romain

Le lun. 24 mars 2025 à 09:51, Romain Beauxis <romain.beauxis at gmail.com> a
écrit :

> This is a series of patches to allow proper decoding of ogg metadata in
> chained
> `ogg/vorbis, `ogg/flac` and `ogg/opus` streams.
>
> FATE samples for the new tests can be found here:
> https://www.dropbox.com/scl/fo/xrtrna2rxr1j354hrtymq/AGwemlxHYecBLNmQ8Fsy--4?rlkey=lzilr4m9w4gfdqygoe172vvy8&dl=0
>
> ## Changes since last version:
> * Fixed fate test run in cross-compiled environments.
> * Switched to av_tree to store pending metadata as pts->metadata
>   mappings in case packets arrive in non-linear order or metadata
>   updates are split accross multiple packets for a single frame.
>
> Romain Beauxis (8):
>   libavcodec/decode.c: intercept `AV_PKT_DATA_METADATA_UPDATE` packet
>     extra data, attach them to the next decoded frame with the same PTS.
>   tests: Add stream dump test API util.
>   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                        | 131 +++++++++++++++
>  libavformat/oggdec.h                       |  14 ++
>  libavformat/oggparseflac.c                 |  21 +++
>  libavformat/oggparseopus.c                 |  13 +-
>  libavformat/oggparsevorbis.c               |  25 ++-
>  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 ++
>  tests/ref/fate/ogg-flac-chained-meta.txt   |  13 ++
>  tests/ref/fate/ogg-opus-chained-meta.txt   |  27 ++++
>  tests/ref/fate/ogg-vorbis-chained-meta.txt |  17 ++
>  14 files changed, 465 insertions(+), 10 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
>  create mode 100644 tests/ref/fate/ogg-flac-chained-meta.txt
>  create mode 100644 tests/ref/fate/ogg-opus-chained-meta.txt
>  create mode 100644 tests/ref/fate/ogg-vorbis-chained-meta.txt
>
> --
> 2.39.5 (Apple Git-154)
>
>


More information about the ffmpeg-devel mailing list