diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-10-15 02:05:11 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-10-15 02:06:12 +0200 |
commit | c35d29a9c8240b81f8b7e089356b30bb26f034b9 (patch) | |
tree | aba144e063f76e2da94f2c8bfd1066a47227d51e /libavcodec | |
parent | ab8cbfe0dd7759b74ded030bb3a704ab5e7603ad (diff) | |
download | ffmpeg-c35d29a9c8240b81f8b7e089356b30bb26f034b9.tar.gz |
avcodec/x86/dsputil_init: move ff_idct_xvid_mmxext init
This decreases the diff to libav
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/x86/dsputil_init.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/libavcodec/x86/dsputil_init.c b/libavcodec/x86/dsputil_init.c index 6377c6c298..2516f2a722 100644 --- a/libavcodec/x86/dsputil_init.c +++ b/libavcodec/x86/dsputil_init.c @@ -568,6 +568,16 @@ static av_cold void dsputil_init_mmx(DSPContext *c, AVCodecContext *avctx, static av_cold void dsputil_init_mmxext(DSPContext *c, AVCodecContext *avctx, int cpu_flags) { +#if HAVE_MMXEXT_INLINE + const int high_bit_depth = avctx->bits_per_raw_sample > 8; + + if (!high_bit_depth && avctx->idct_algo == FF_IDCT_XVIDMMX && avctx->lowres == 0) { + c->idct_put = ff_idct_xvid_mmxext_put; + c->idct_add = ff_idct_xvid_mmxext_add; + c->idct = ff_idct_xvid_mmxext; + } +#endif /* HAVE_MMXEXT_INLINE */ + #if HAVE_MMXEXT_EXTERNAL SET_QPEL_FUNCS(avg_qpel, 0, 16, mmxext, ); SET_QPEL_FUNCS(avg_qpel, 1, 8, mmxext, ); @@ -693,15 +703,9 @@ av_cold void ff_dsputil_init_x86(DSPContext *c, AVCodecContext *avctx) c->idct = ff_simple_idct_mmx; c->idct_permutation_type = FF_SIMPLE_IDCT_PERM; } else if (idct_algo == FF_IDCT_XVIDMMX) { - if (X86_MMXEXT(cpu_flags)) { - c->idct_put = ff_idct_xvid_mmxext_put; - c->idct_add = ff_idct_xvid_mmxext_add; - c->idct = ff_idct_xvid_mmxext; - } else { - c->idct_put = ff_idct_xvid_mmx_put; - c->idct_add = ff_idct_xvid_mmx_add; - c->idct = ff_idct_xvid_mmx; - } + c->idct_put = ff_idct_xvid_mmx_put; + c->idct_add = ff_idct_xvid_mmx_add; + c->idct = ff_idct_xvid_mmx; } } #endif /* HAVE_INLINE_ASM */ |