On Thu, Oct 13, 2016 at 04:02:34PM +0200, Alexandra Hájková wrote:
> --- a/libavcodec/x86/hevcdsp_init.c
> +++ b/libavcodec/x86/hevcdsp_init.c
> @@ -278,17 +297,24 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int 
> bit_depth)
> +            c->add_residual[1] = ff_hevc_add_residual_8_8_sse2;
> +            c->add_residual[2] = ff_hevc_add_residual_16_8_sse2;
> +            c->add_residual[3] = ff_hevc_add_residual_32_8_sse2;
> +
>              c->idct_dc[1] = ff_hevc_idct_8x8_dc_8_sse2;
>              c->idct_dc[2] = ff_hevc_idct_16x16_dc_8_sse2;
>              c->idct_dc[3] = ff_hevc_idct_32x32_dc_8_sse2;
>  
>              c->idct[0]    = ff_hevc_idct_4x4_8_sse2;
>              c->idct[1]    = ff_hevc_idct_8x8_8_sse2;
> +
>              SET_QPEL_FUNCS(0, 0, 8, sse2, ff_hevc_get_pixels);
>              SET_EPEL_FUNCS(0, 0, 8, sse2, ff_hevc_get_pixels);

grmbl

> @@ -307,11 +333,16 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int 
> bit_depth)
>          if (EXTERNAL_AVX(cpu_flags)) {
>              c->idct[0] = ff_hevc_idct_4x4_8_avx;
>              c->idct[1] = ff_hevc_idct_8x8_8_avx;
> +            c->add_residual[1] = ff_hevc_add_residual_8_8_avx;
> +            c->add_residual[2] = ff_hevc_add_residual_16_8_avx;
> +            c->add_residual[3] = ff_hevc_add_residual_32_8_avx;
>          }
>      } else if (bit_depth == 10) {
>          if (EXTERNAL_MMXEXT(cpu_flags)) {
>              c->idct_dc[0] = ff_hevc_idct_4x4_dc_10_mmxext;
>              c->idct_dc[1] = ff_hevc_idct_8x8_dc_10_mmxext;
> +
> +            c->add_residual[0] = ff_hevc_add_residual_4_10_mmxext;
>          }
>          if (EXTERNAL_SSE2(cpu_flags)) {
>              c->hevc_v_loop_filter_chroma = 
> ff_hevc_v_loop_filter_chroma_10_sse2;
> @@ -330,6 +361,10 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int 
> bit_depth)
>              SET_LUMA_FUNCS(put_unweighted_pred_avg,          
> ff_hevc_put_unweighted_pred_avg, 10, sse2);
>              SET_CHROMA_FUNCS(put_unweighted_pred_chroma,     
> ff_hevc_put_unweighted_pred,     10, sse2);
>              SET_CHROMA_FUNCS(put_unweighted_pred_avg_chroma, 
> ff_hevc_put_unweighted_pred_avg, 10, sse2);
> +
> +            c->add_residual[1] = ff_hevc_add_residual_8_10_sse2;
> +            c->add_residual[2] = ff_hevc_add_residual_16_10_sse2;
> +            c->add_residual[3] = ff_hevc_add_residual_32_10_sse2;
>          }
>          if (EXTERNAL_AVX(cpu_flags)) {
>              c->idct[0] = ff_hevc_idct_4x4_10_avx;
> @@ -366,6 +401,8 @@ 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)) {
> @@ -397,6 +434,9 @@ 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 */

This does not match the conditions in the .asm file.

Diego
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to