On 13/10/2016 20:04, Diego Biurrun wrote:
> This does not match the conditions in the .asm file.

Something along those lines seems to work on x86_32 according to
checkasm. Folded in my github tree.

diff --git a/libavcodec/x86/hevcdsp_init.c b/libavcodec/x86/hevcdsp_init.c
index 73279c2..d60ae5e 100644
--- a/libavcodec/x86/hevcdsp_init.c
+++ b/libavcodec/x86/hevcdsp_init.c
@@ -337,6 +337,9 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const
int bit_depth)
             c->add_residual[2] = ff_hevc_add_residual_16_8_avx;
             c->add_residual[3] = ff_hevc_add_residual_32_8_avx;
         }
+        if (EXTERNAL_AVX2(cpu_flags)) {
+            c->add_residual[3] = ff_hevc_add_residual_32_8_avx2;
+        }
     } else if (bit_depth == 10) {
         if (EXTERNAL_MMXEXT(cpu_flags)) {
             c->idct_dc[0] = ff_hevc_idct_4x4_dc_10_mmxext;
@@ -370,6 +373,10 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const
int bit_depth)
             c->idct[0] = ff_hevc_idct_4x4_10_avx;
             c->idct[1] = ff_hevc_idct_8x8_10_avx;
         }
+        if (EXTERNAL_AVX2(cpu_flags)) {
+            c->add_residual[2] = ff_hevc_add_residual_16_10_avx2;
+            c->add_residual[3] = ff_hevc_add_residual_32_10_avx2;
+        }
     }

 #if ARCH_X86_64
@@ -401,8 +408,6 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const
int bit_depth)
         if (EXTERNAL_AVX2(cpu_flags)) {
             c->idct_dc[2] = ff_hevc_idct_16x16_dc_8_avx2;
             c->idct_dc[3] = ff_hevc_idct_32x32_dc_8_avx2;
-
-            c->add_residual[3] = ff_hevc_add_residual_32_8_avx2;
         }
     } else if (bit_depth == 10) {
         if (EXTERNAL_SSE2(cpu_flags)) {
@@ -434,9 +439,6 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const
int bit_depth)
         if (EXTERNAL_AVX2(cpu_flags)) {
             c->idct_dc[2] = ff_hevc_idct_16x16_dc_10_avx2;
             c->idct_dc[3] = ff_hevc_idct_32x32_dc_10_avx2;
-
-            c->add_residual[2] = ff_hevc_add_residual_16_10_avx2;
-            c->add_residual[3] = ff_hevc_add_residual_32_10_avx2;
         }
     }
 #endif /* ARCH_X86_64 */
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to