[FFmpeg-devel] [PATCH v1] lavc/aarch64: Fix ff_pred8x8_plane_neon_10

Bin Peng pengbin at visionular.com
Mon Dec 16 04:31:23 EET 2024


Fix test failure on aarch64:
./tests/checkasm/checkasm --test=h264pred  479612

The mismatch between neon and C functions can also be reproduced using 
the following bitstream and command line.

wget https://streams.videolan.org/ffmpeg/incoming/intra8x8pred_10bit.264
  ./ffmpeg -cpuflags 0  -threads 1 -i intra8x8pred_10bit.264  -f 
framemd5 -y md5_ref
  ./ffmpeg              -threads 1 -i intra8x8pred_10bit.264  -f 
framemd5 -y md5_neon

Signed-off-by: Bin Peng <pengbin at visionular.com>
---
  libavcodec/aarch64/h264pred_neon.S | 5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/libavcodec/aarch64/h264pred_neon.S 
b/libavcodec/aarch64/h264pred_neon.S
index ea37689f34..168f8191ad 100644
--- a/libavcodec/aarch64/h264pred_neon.S
+++ b/libavcodec/aarch64/h264pred_neon.S
@@ -595,12 +595,11 @@ function ff_pred8x8_plane_neon_10, export=1
          ssubl           v2.4s,  v2.4h,  v3.4h
          ext             v0.16b, v0.16b, v0.16b, #14
          mov             v0.h[0],  wzr
-        mul             v0.8h,  v0.8h,  v5.h[0]
          dup             v1.4s,  v2.s[0]
          dup             v2.4s,  v2.s[0]
          dup             v3.8h,  v5.h[1]
-        saddw           v1.4s,  v1.4s,  v0.4h
-        saddw2          v2.4s,  v2.4s,  v0.8h
+        smlal           v1.4s,  v0.4h,  v5.h[0]
+        smlal2          v2.4s,  v0.8h,  v5.h[0]
          mov             w3,  #8
          mvni            v4.8h,  #0xFC,  lsl #8 // 1023 for clipping
  1:
-- 
2.25.1



More information about the ffmpeg-devel mailing list