h264_weight: Fix SSSE3 biweight code with weights of 128
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 12 Jun 2015 11:58:42 +0000 (12:58 +0100)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Fri, 12 Jun 2015 16:02:48 +0000 (17:02 +0100)
CC: libav-stable@libav.org
Sample-Id: test_bref.mp4

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
libavcodec/x86/h264_weight.asm

index d1873af..9ad26de 100644 (file)
@@ -135,6 +135,16 @@ WEIGHT_FUNC_HALF_MM 8, 8
     add  off_regd, 1
     or   off_regd, 1
     add        r4, 1
+    cmp        r6d, 128
+    je .nonnormal
+    cmp        r5, 128
+    jne .normal
+.nonnormal
+    sar        r5, 1
+    sar        r6, 1
+    sar  off_regd, 1
+    sub        r4, 1
+.normal
 %if cpuflag(ssse3)
     movd       m4, r5d
     movd       m0, r6d