[FFmpeg-devel] [PATCH] Revert "Merge commit '0a39c9ac0bfd7345fe676b4e2707d9cec3cbb553'"

James Almer jamrial at gmail.com
Tue Jan 31 22:39:56 EET 2017


On 1/31/2017 4:34 PM, Michael Niedermayer wrote:
> The assumtation this is based on is wrong, the code is not always run with bitexact flags
> 
> This reverts commit a956164e1eb3418922cae949f02ad4035f013213, reversing
> changes made to f6005907fdeb9e4de37568ed5c1a8e7b869126f6.
> ---
>  libavcodec/x86/hpeldsp.h          |  2 +-
>  libavcodec/x86/hpeldsp_init.c     |  2 +-
>  libavcodec/x86/hpeldsp_vp3_init.c | 14 +++++++++-----
>  3 files changed, 11 insertions(+), 7 deletions(-)
> 
> diff --git a/libavcodec/x86/hpeldsp.h b/libavcodec/x86/hpeldsp.h
> index 0ecc97a83a..bf97029b57 100644
> --- a/libavcodec/x86/hpeldsp.h
> +++ b/libavcodec/x86/hpeldsp.h
> @@ -52,6 +52,6 @@ void ff_put_pixels16_xy2_sse2(uint8_t *block, const uint8_t *pixels,
>  void ff_put_pixels16_xy2_ssse3(uint8_t *block, const uint8_t *pixels,
>                                 ptrdiff_t line_size, int h);
>  
> -void ff_hpeldsp_vp3_init_x86(HpelDSPContext *c, int cpu_flags);
> +void ff_hpeldsp_vp3_init_x86(HpelDSPContext *c, int cpu_flags, int flags);
>  
>  #endif /* AVCODEC_X86_HPELDSP_H */
> diff --git a/libavcodec/x86/hpeldsp_init.c b/libavcodec/x86/hpeldsp_init.c
> index e583bd9ffe..58e27e3542 100644
> --- a/libavcodec/x86/hpeldsp_init.c
> +++ b/libavcodec/x86/hpeldsp_init.c
> @@ -309,5 +309,5 @@ av_cold void ff_hpeldsp_init_x86(HpelDSPContext *c, int flags)
>          hpeldsp_init_ssse3(c, flags);
>  
>      if (CONFIG_VP3_DECODER)

How about checking for AV_CODEC_FLAG_BITEXACT here instead of reverting the
function signature? Keeps differences as minimal as possible while having
the same effect.

> -        ff_hpeldsp_vp3_init_x86(c, cpu_flags);
> +        ff_hpeldsp_vp3_init_x86(c, cpu_flags, flags);
>  }
> diff --git a/libavcodec/x86/hpeldsp_vp3_init.c b/libavcodec/x86/hpeldsp_vp3_init.c
> index 17fdd081f3..5979f4123c 100644
> --- a/libavcodec/x86/hpeldsp_vp3_init.c
> +++ b/libavcodec/x86/hpeldsp_vp3_init.c
> @@ -38,15 +38,19 @@ void ff_put_no_rnd_pixels8_y2_exact_3dnow(uint8_t *block,
>                                            const uint8_t *pixels,
>                                            ptrdiff_t line_size, int h);
>  
> -av_cold void ff_hpeldsp_vp3_init_x86(HpelDSPContext *c, int cpu_flags)
> +av_cold void ff_hpeldsp_vp3_init_x86(HpelDSPContext *c, int cpu_flags, int flags)
>  {
>      if (EXTERNAL_AMD3DNOW(cpu_flags)) {
> -        c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_exact_3dnow;
> -        c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_exact_3dnow;
> +        if (flags & AV_CODEC_FLAG_BITEXACT) {
> +            c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_exact_3dnow;
> +            c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_exact_3dnow;
> +        }
>      }
>  
>      if (EXTERNAL_MMXEXT(cpu_flags)) {
> -        c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_exact_mmxext;
> -        c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_exact_mmxext;
> +        if (flags & AV_CODEC_FLAG_BITEXACT) {
> +            c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_exact_mmxext;
> +            c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_exact_mmxext;
> +        }
>      }
>  }
> 



More information about the ffmpeg-devel mailing list