[FFmpeg-devel] [PATCH 2/2] checkasm/vc1dsp: check the not-in-place block content

Rémi Denis-Courmont remi at remlab.net
Tue Jun 11 17:55:04 EEST 2024


This seems to cause issues in FATE for 4x4 and 4x8 transforms. But then
again, FATE does not seem to care in the 8x4 case.

Note that AArch64 NEON code is known to fail this test.
---
 tests/checkasm/vc1dsp.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/checkasm/vc1dsp.c b/tests/checkasm/vc1dsp.c
index f18f0f8251..2cc6785a0c 100644
--- a/tests/checkasm/vc1dsp.c
+++ b/tests/checkasm/vc1dsp.c
@@ -317,11 +317,13 @@ static void check_inv_trans_adding(void)
             for (int j = 0; j < tests[t].height; ++j)
                 for (int i = 0; i < tests[t].width; ++i) {
                     int idx = j * 8 + i;
-                    inv_trans_in1[idx] = inv_trans_in0[idx] = coeffs->d[j * tests[t].width + i];
+                    inv_trans_in0[idx] = coeffs->d[j * tests[t].width + i];
                 }
+            memcpy(inv_trans_in1, inv_trans_in0, 8 * 8 * 2);
             call_ref(inv_trans_out0 + 24 + 8, 24, inv_trans_in0);
             call_new(inv_trans_out1 + 24 + 8, 24, inv_trans_in1);
-            if (memcmp(inv_trans_out0, inv_trans_out1, 10 * 24))
+            if (memcmp(inv_trans_in0,   inv_trans_in1, 8 * 8 * 2) ||
+                memcmp(inv_trans_out0, inv_trans_out1, 10 * 24))
                 fail();
             bench_new(inv_trans_out1 + 24 + 8, 24, inv_trans_in1 + 8);
             av_free(coeffs);
-- 
2.45.1



More information about the ffmpeg-devel mailing list