[ffmpeg] branch release/8.0 updated. fe72a8781b avformat/iamf_parse: ensure the stream count in a scalable channel representation is equal to the audio element's stream count
The branch, release/8.0 has been updated via fe72a8781b22912ec7125de1509d83fc2b1ad802 (commit) via b5996929df27276db37e075600988ebb17890eb4 (commit) via 371d717601a3a4842e1182fab6503b0c05e93032 (commit) via 1447aac2eb34cf887f720c7316d7adf4ab3dbe60 (commit) from af737ace1ee93fef49fe201c851359b0bf1b989b (commit) - Log ----------------------------------------------------------------- commit fe72a8781b22912ec7125de1509d83fc2b1ad802 Author: James Almer <jamrial@gmail.com> AuthorDate: Tue Nov 25 12:42:30 2025 -0300 Commit: James Almer <jamrial@gmail.com> CommitDate: Thu Nov 27 21:58:55 2025 -0300 avformat/iamf_parse: ensure the stream count in a scalable channel representation is equal to the audio element's stream count Signed-off-by: James Almer <jamrial@gmail.com> (cherry picked from commit faa382e5b196f2acb5bc5b159aaf06682291328b) diff --git a/libavformat/iamf_parse.c b/libavformat/iamf_parse.c index 737e3f7404..597d800be0 100644 --- a/libavformat/iamf_parse.c +++ b/libavformat/iamf_parse.c @@ -480,6 +480,9 @@ static int scalable_channel_layout_config(void *s, AVIOContext *pb, av_channel_layout_copy(&layer->ch_layout, &ch_layout); } + if (k != audio_element->nb_substreams) + return AVERROR_INVALIDDATA; + return 0; } commit b5996929df27276db37e075600988ebb17890eb4 Author: James Almer <jamrial@gmail.com> AuthorDate: Tue Nov 25 10:26:27 2025 -0300 Commit: James Almer <jamrial@gmail.com> CommitDate: Thu Nov 27 21:58:42 2025 -0300 avformat/iamf_parse: ensure each layout in an scalable channel representation has an increasing number of channels Fixes issue #21013 Signed-off-by: James Almer <jamrial@gmail.com> (cherry picked from commit 554ae5ada98cd44686ade995102d3aa2295d7b09) diff --git a/libavformat/iamf_parse.c b/libavformat/iamf_parse.c index 50acd7cf5a..737e3f7404 100644 --- a/libavformat/iamf_parse.c +++ b/libavformat/iamf_parse.c @@ -406,6 +406,9 @@ static int scalable_channel_layout_config(void *s, AVIOContext *pb, .nb_channels = substream_count + coupled_substream_count }; + if (i && ch_layout.nb_channels <= audio_element->element->layers[i-1]->ch_layout.nb_channels) + return AVERROR_INVALIDDATA; + for (int j = 0; j < substream_count; j++) { IAMFSubStream *substream = &audio_element->substreams[k++]; commit 371d717601a3a4842e1182fab6503b0c05e93032 Author: James Almer <jamrial@gmail.com> AuthorDate: Wed Sep 24 20:31:26 2025 -0300 Commit: James Almer <jamrial@gmail.com> CommitDate: Thu Nov 27 21:57:42 2025 -0300 avfilter/vf_scale: don't attempt to rescale AV_NOPTS_VALUE Finishes fixing issue #20589. Signed-off-by: James Almer <jamrial@gmail.com> (cherry picked from commit b9cc8e32109bba3daec1cfb6a834e45f72266b46) diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index aec765b441..6c1302f8ce 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -944,7 +944,7 @@ static int do_scale(FFFrameSync *fs) goto err; av_assert0(out); - out->pts = av_rescale_q(fs->pts, fs->time_base, outlink->time_base); + out->pts = av_rescale_q_rnd(fs->pts, fs->time_base, outlink->time_base, AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX); return ff_filter_frame(outlink, out); err: commit 1447aac2eb34cf887f720c7316d7adf4ab3dbe60 Author: James Almer <jamrial@gmail.com> AuthorDate: Wed Sep 24 20:31:11 2025 -0300 Commit: James Almer <jamrial@gmail.com> CommitDate: Thu Nov 27 21:57:42 2025 -0300 avfilter/framesync: don't attempt to rescale AV_NOPTS_VALUE Part of a fix for issue #20589. Signed-off-by: James Almer <jamrial@gmail.com> (cherry picked from commit 5614672d1bed49557f234639f7eeaf3b9c0385fe) diff --git a/libavfilter/framesync.c b/libavfilter/framesync.c index 0d5779f830..846d1c7e50 100644 --- a/libavfilter/framesync.c +++ b/libavfilter/framesync.c @@ -248,7 +248,7 @@ static void framesync_inject_frame(FFFrameSync *fs, unsigned in, AVFrame *frame) av_assert0(!fs->in[in].have_next); av_assert0(frame); - pts = av_rescale_q(frame->pts, fs->in[in].time_base, fs->time_base); + pts = av_rescale_q_rnd(frame->pts, fs->in[in].time_base, fs->time_base, AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX); frame->pts = pts; fs->in[in].frame_next = frame; fs->in[in].pts_next = pts; ----------------------------------------------------------------------- Summary of changes: libavfilter/framesync.c | 2 +- libavfilter/vf_scale.c | 2 +- libavformat/iamf_parse.c | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) hooks/post-receive --
participants (1)
-
ffmpeg-git@ffmpeg.org