This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch release/8.1 in repository ffmpeg.
commit 4bca65da83189724ecc0d5dadfc68d91231b1424 Author: Kacper Michajłow <[email protected]> AuthorDate: Sat Sep 19 17:01:07 2026 +0200 Commit: Michael Niedermayer <[email protected]> CommitDate: Sat Sep 19 17:01:18 2026 +0200 Revert "lavfi/bwdif: fix heap-buffer-overflow with small height videos" This reverts commit 5bc4a9898c806c1d532ac11712a26537acb96734. 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 -- 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]
