shithub: openh264

Download patch

ref: 03d9f07671bcdab3f2c5358a573fcc32c621c197
parent: c228c51423b5e957678d00c205816bdeae027844
author: Martin Storsjö <martin@martin.st>
date: Tue Jul 8 06:52:48 EDT 2014

Fix WelsHadamardQuant2x2*_AArch64_neon

In WelsHadamardQuant2x2SkipKernel_AArch64_neon, write the output
of cmhi into v0 - this is the register that is assumed to hold
the output.

In WelsHadamardQuant2x2_AArch64_neon, subtract the count of zero
elements from 4, not from 16.

This makes the encoding unit tests pass again.

--- a/codec/encoder/core/arm64/reconstruct_aarch64_neon.S
+++ b/codec/encoder/core/arm64/reconstruct_aarch64_neon.S
@@ -646,7 +646,7 @@
     HDM_QUANT_2x2_TOTAL_16BITS  v1, v0, v2      // output v0
 
     abs   v1.4h, v0.4h
-    cmhi  v1.4h, v1.4h, v4.4h         // abs(dct[i])>threshold;
+    cmhi  v0.4h, v1.4h, v4.4h         // abs(dct[i])>threshold;
     mov   w0, v0.s[0]
     mov   w1, v0.s[1]
     orr   w0, w0, w1
@@ -687,7 +687,7 @@
     DC_ZERO_COUNT_IN_DUALWORD   v1, h0, v3
 
     mov     x0, v0.d[0]
-    mov     x1, #16
+    mov     x1, #4
     subs    x0, x1, x0
 WELS_ASM_AARCH64_FUNC_END
 
@@ -944,4 +944,4 @@
     st1       {v3.16b}, [x0], x1
 .endr
 WELS_ASM_AARCH64_FUNC_END
-#endif
\ No newline at end of file
+#endif