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]

Reply via email to