On Wed, Jul 23, 2014 at 03:51:10PM +0200, Diego Biurrun wrote:
> 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().
Possibly FF_IDCT_XVIDMMX should be renamed to FF_IDCT_XVID; there are SSE
implementations and in theory nothing prevents anybody from implementing
it for ARM ...
Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel