From 258414d0771845d20f646ffe4d4e60f22fba217c Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Mon, 30 Sep 2013 15:25:47 +0200 Subject: [PATCH] x86: fdct: Initialize optimized fdct implementations in the standard way --- libavcodec/x86/dsputilenc_mmx.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/libavcodec/x86/dsputilenc_mmx.c b/libavcodec/x86/dsputilenc_mmx.c index a1852e6678..33c8d51e14 100644 --- a/libavcodec/x86/dsputilenc_mmx.c +++ b/libavcodec/x86/dsputilenc_mmx.c @@ -946,6 +946,7 @@ hadamard_func(ssse3) av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx) { int cpu_flags = av_get_cpu_flags(); + const int dct_algo = avctx->dct_algo; #if HAVE_YASM int bit_depth = avctx->bits_per_raw_sample; @@ -965,18 +966,9 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx) #if HAVE_INLINE_ASM if (INLINE_MMX(cpu_flags)) { - const int dct_algo = avctx->dct_algo; if (avctx->bits_per_raw_sample <= 8 && - (dct_algo==FF_DCT_AUTO || dct_algo==FF_DCT_MMX)) { - if (cpu_flags & AV_CPU_FLAG_SSE2) { - c->fdct = ff_fdct_sse2; - } else if (cpu_flags & AV_CPU_FLAG_MMXEXT) { - c->fdct = ff_fdct_mmxext; - }else{ - c->fdct = ff_fdct_mmx; - } - } - + (dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_MMX)) + c->fdct = ff_fdct_mmx; c->diff_bytes= diff_bytes_mmx; c->sum_abs_dctelem= sum_abs_dctelem_mmx; @@ -1000,6 +992,10 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx) } if (INLINE_MMXEXT(cpu_flags)) { + if (avctx->bits_per_raw_sample <= 8 && + (dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_MMX)) + c->fdct = ff_fdct_mmxext; + c->sum_abs_dctelem = sum_abs_dctelem_mmxext; c->vsad[4] = vsad_intra16_mmxext; @@ -1011,6 +1007,10 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx) } if (INLINE_SSE2(cpu_flags)) { + if (avctx->bits_per_raw_sample <= 8 && + (dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_MMX)) + c->fdct = ff_fdct_sse2; + c->sum_abs_dctelem= sum_abs_dctelem_sse2; }