This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch release/9.0 in repository ffmpeg.
commit 03d9533176e98bb9fbf569c1f34968e73e948dd9 Author: Kacper Michajłow <[email protected]> AuthorDate: Sun Jul 26 19:56:11 2026 +0200 Commit: ffmpeg-devel <[email protected]> CommitDate: Sat Aug 8 21:46:50 2026 +0000 Revert "lavfi/bwdif: fix heap-buffer-overflow with small height videos" This reverts commit 795bccdaf57772b1803914dee2f32d52776518e2. The heap-buffer-overflow was a symptom of the >8 bit boundary conditions bug fixed in the previous commit. This workaround is no longer needed. This restores spatial-only interpolation of the whole frame for the first and last fields, instead of running the temporal edge filter against cloned reference frames on the outermost lines. Because of that first frame references are updated to pre-fix values. Signed-off-by: Kacper Michajłow <[email protected]> (cherry picked from commit 3cd408c2a6e5a7de8b6d641dedd12d523b94014c) --- libavfilter/vf_bwdif.c | 19 +++++-------------- tests/ref/fate/filter-bwdif-mode0 | 2 +- tests/ref/fate/filter-bwdif-mode1 | 2 +- tests/ref/fate/filter-bwdif10 | 2 +- 4 files changed, 8 insertions(+), 17 deletions(-) diff --git a/libavfilter/vf_bwdif.c b/libavfilter/vf_bwdif.c index a34f1906dd..5fba0e7a14 100644 --- a/libavfilter/vf_bwdif.c +++ b/libavfilter/vf_bwdif.c @@ -77,20 +77,11 @@ static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) uint8_t *next = &yadif->next->data[td->plane][y * linesize]; uint8_t *dst = &td->frame->data[td->plane][y * td->frame->linesize[td->plane]]; if (yadif->current_field == YADIF_FIELD_END) { - if ((y < 3) || ((y + 3) >= td->h)) { - s->dsp.filter_edge(dst, prev, cur, next, td->w, - (y + 1) < td->h ? refs : -refs, - y > 0 ? -refs : refs, - refs << 1, -(refs << 1), - td->parity ^ td->tff, clip_max, - (y < 2) || ((y + 3) > td->h) ? 0 : 1); - } else { - s->dsp.filter_intra(dst, cur, td->w, (y + 1) < td->h ? refs : -refs, - y > 0 ? -refs : refs, - (y + 3) < td->h ? 3 * refs : -refs, - y > 2 ? -3 * refs : refs, - td->parity ^ td->tff, clip_max); - } + s->dsp.filter_intra(dst, cur, td->w, (y + 1) < td->h ? refs : -refs, + y > 0 ? -refs : refs, + (y + 3) < td->h ? 3 * refs : -refs, + y > 2 ? -3 * refs : refs, + td->parity ^ td->tff, clip_max); } else if ((y < 4) || ((y + 5) > td->h)) { s->dsp.filter_edge(dst, prev, cur, next, td->w, (y + 1) < td->h ? refs : -refs, diff --git a/tests/ref/fate/filter-bwdif-mode0 b/tests/ref/fate/filter-bwdif-mode0 index 91b47dbe70..23dcaee900 100644 --- a/tests/ref/fate/filter-bwdif-mode0 +++ b/tests/ref/fate/filter-bwdif-mode0 @@ -3,7 +3,7 @@ #codec_id 0: rawvideo #dimensions 0: 720x576 #sar 0: 16/15 -0, 9, 9, 1, 622080, 0x3f25bfc2 +0, 9, 9, 1, 622080, 0xd435648a 0, 10, 10, 1, 622080, 0x62085455 0, 11, 11, 1, 622080, 0x60f943a0 0, 12, 12, 1, 622080, 0x5396f14a diff --git a/tests/ref/fate/filter-bwdif-mode1 b/tests/ref/fate/filter-bwdif-mode1 index 1e604646e7..e8db88c932 100644 --- a/tests/ref/fate/filter-bwdif-mode1 +++ b/tests/ref/fate/filter-bwdif-mode1 @@ -3,7 +3,7 @@ #codec_id 0: rawvideo #dimensions 0: 720x576 #sar 0: 16/15 -0, 18, 18, 1, 622080, 0x3f25bfc2 +0, 18, 18, 1, 622080, 0xd435648a 0, 19, 19, 1, 622080, 0xef4617cc 0, 20, 20, 1, 622080, 0x62085455 0, 21, 21, 1, 622080, 0x5b5ae735 diff --git a/tests/ref/fate/filter-bwdif10 b/tests/ref/fate/filter-bwdif10 index 70a7f9d3ed..76fcb8882e 100644 --- a/tests/ref/fate/filter-bwdif10 +++ b/tests/ref/fate/filter-bwdif10 @@ -3,7 +3,7 @@ #codec_id 0: rawvideo #dimensions 0: 720x576 #sar 0: 16/15 -0, 9, 9, 1, 1244160, 0xee7d128d +0, 9, 9, 1, 1244160, 0x71ca561b 0, 10, 10, 1, 1244160, 0x6c25ebe8 0, 11, 11, 1, 1244160, 0xae8e297d 0, 12, 12, 1, 1244160, 0x20284ad0 _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
