shithub: openh264

Download patch

ref: 7354a8cbaec15e9baf8051706a83118c5ee345b7
parent: c4c73ee5d656bf497fb1a3a92d6dc5b39cc80760
author: Martin Storsjö <[email protected]>
date: Wed Jan 28 03:57:38 EST 2015

Handle width==2 for the neon version of McCopy

Fall back on the C version of the algorithm here, just as in
McCopy_sse2.

This fixes 2 of the McCopy tests on arm/aarch64.

--- a/codec/decoder/core/src/mc.cpp
+++ b/codec/decoder/core/src/mc.cpp
@@ -678,8 +678,10 @@
     McCopyWidthEq16_neon (pSrc, iSrcStride, pDst, iDstStride, iHeight);
   else if (8 == iWidth)
     McCopyWidthEq8_neon (pSrc, iSrcStride, pDst, iDstStride, iHeight);
-  else
+  else if (4 == iWidth)
     McCopyWidthEq4_neon (pSrc, iSrcStride, pDst, iDstStride, iHeight);
+  else
+    McCopyWidthEq2_c (pSrc, iSrcStride, pDst, iDstStride, iHeight);
 }
 void McHorVer20_neon (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
                       int32_t iWidth, int32_t iHeight) {
@@ -929,8 +931,10 @@
     McCopyWidthEq16_AArch64_neon (pSrc, iSrcStride, pDst, iDstStride, iHeight);
   else if (8 == iWidth)
     McCopyWidthEq8_AArch64_neon (pSrc, iSrcStride, pDst, iDstStride, iHeight);
-  else
+  else if (4 == iWidth)
     McCopyWidthEq4_AArch64_neon (pSrc, iSrcStride, pDst, iDstStride, iHeight);
+  else
+    McCopyWidthEq2_c (pSrc, iSrcStride, pDst, iDstStride, iHeight);
 }
 void McHorVer20_AArch64_neon (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
                               int32_t iWidth, int32_t iHeight) {