This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit f944cad81ea624ae453893002e0823a74d2d8c28 Author: Romain Beauxis <[email protected]> AuthorDate: Sun Nov 1 08:44:45 2026 -0600 Commit: Romain Beauxis <[email protected]> CommitDate: Sun Nov 8 12:48:28 2026 +0000 avformat/oggparseopus: pass a later link's header to the decoder When a chained stream moves to a new link, the decoder is still set up from the first link's header. Attach the new link's header to its first packet as AV_PKT_DATA_NEW_EXTRADATA, as the vorbis and flac parsers do. All three chained tests now decode exactly as their links decoded one by one. --- libavformat/oggparseopus.c | 7 +++++++ tests/fate/ogg-opus.mak | 10 +++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/libavformat/oggparseopus.c b/libavformat/oggparseopus.c index f01580878f..6dde828abf 100644 --- a/libavformat/oggparseopus.c +++ b/libavformat/oggparseopus.c @@ -150,6 +150,13 @@ static int opus_packet(AVFormatContext *avf, int idx) if (ret < 0) return ret; + /* A later link's header: the decoder is still set up for the previous one. */ + av_freep(&os->new_extradata); + os->new_extradata = av_memdup(packet, os->psize); + if (!os->new_extradata) + return AVERROR(ENOMEM); + os->new_extradata_size = os->psize; + return 1; } diff --git a/tests/fate/ogg-opus.mak b/tests/fate/ogg-opus.mak index ec415535a5..59e2794b29 100644 --- a/tests/fate/ogg-opus.mak +++ b/tests/fate/ogg-opus.mak @@ -34,8 +34,8 @@ fate-ogg-opus-chained-reset: CMD = $(call OGG_OPUS_CHAINED,$(OGG_OPUS_CHAINED_RE fate-ogg-opus-chained-reset: REF = $(OGG_OPUS_CHAINED_RESET_LINKS).pcm fate-ogg-opus-chained-reset: CLEANFILES = $(addprefix $(OGG_OPUS_CHAINED_RESET_LINKS),.1.ogg .2.ogg .pcm) fate-ogg-opus-chained-reset: CMP = stddev -fate-ogg-opus-chained-reset: CMP_TARGET = 95 -fate-ogg-opus-chained-reset: FUZZ = 5 +fate-ogg-opus-chained-reset: CMP_TARGET = 0 +fate-ogg-opus-chained-reset: FUZZ = 0 # The second link sets an output gain of -6 dB, which the first one does not. OGG_OPUS_CHAINED_GAIN_LINKS = tests/data/fate/ogg-opus-chained-gain.links @@ -44,8 +44,8 @@ fate-ogg-opus-chained-gain: CMD = $(call OGG_OPUS_CHAINED,$(OGG_OPUS_CHAINED_GAI fate-ogg-opus-chained-gain: REF = $(OGG_OPUS_CHAINED_GAIN_LINKS).pcm fate-ogg-opus-chained-gain: CLEANFILES = $(addprefix $(OGG_OPUS_CHAINED_GAIN_LINKS),.1.ogg .2.ogg .pcm) fate-ogg-opus-chained-gain: CMP = stddev -fate-ogg-opus-chained-gain: CMP_TARGET = 1040 -fate-ogg-opus-chained-gain: FUZZ = 10 +fate-ogg-opus-chained-gain: CMP_TARGET = 0 +fate-ogg-opus-chained-gain: FUZZ = 0 # Two SILK test vectors chained: the first link ends with samples still # buffered in the decoder. @@ -60,7 +60,7 @@ fate-ogg-opus-chained-silk: REF = $(OGG_OPUS_CHAINED_SILK_LINKS).pcm fate-ogg-opus-chained-silk: CLEANFILES = $(addprefix $(OGG_OPUS_CHAINED_SILK_LINKS),.1.ogg .2.ogg .pcm) fate-ogg-opus-chained-silk: CMP = stddev fate-ogg-opus-chained-silk: CMP_TARGET = 0 -fate-ogg-opus-chained-silk: FUZZ = 1 +fate-ogg-opus-chained-silk: FUZZ = 0 FATE_OGG_OPUS-$(call DEMDEC, OGG, OPUS) += $(FATE_OGG_OPUS) -- To stop receiving notification emails like this one, please contact [email protected]. _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
