On Mon, Jul 21, 2014 at 11:58:26PM +0200, Janne Grunau wrote:
> On 2014-07-21 14:21:08 -0700, Diego Biurrun wrote:
> > The DCT init code takes care of MMX and other arch details on its own.
> 
> yes and no
> 
> > --- a/libavcodec/mpeg4videodec.c
> > +++ b/libavcodec/mpeg4videodec.c
> > @@ -2066,14 +2066,10 @@ static int decode_user_data(Mpeg4DecContext *ctx, 
> > GetBitContext *gb)
> >  
> > -#if HAVE_MMX
> > -    if (ctx->xvid_build >= 0                &&
> > -        s->avctx->idct_algo == FF_IDCT_AUTO &&
> > -        (av_get_cpu_flags() & AV_CPU_FLAG_MMX)) {
> > +    if (ctx->xvid_build >= 0 && s->avctx->idct_algo == FF_IDCT_AUTO) {
> >          s->avctx->idct_algo = FF_IDCT_XVIDMMX;
> >          ff_dct_common_init(s);
> >      }
> > -#endif
> 
> that is wrong. It selects arm the unoptimized idct although any idct 
> implementation was fine as signalled by FF_IDCT_AUTO

Before this would not select any optimized IDCT on ARM either as it would
check for MMX at compiletime and runtime, so this is not a regression.

It should probably just call idctdsp_init() instead of dct_common_init().

Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to