This is slightly beneficial to omse (0.1691 to 0.1688). The x86 idct is thus marked as a valid simple implementation. --- libavcodec/simple_idct_template.c | 15 +++------------ libavcodec/x86/idctdsp_init.c | 8 +++----- 2 files changed, 6 insertions(+), 17 deletions(-)
diff --git a/libavcodec/simple_idct_template.c b/libavcodec/simple_idct_template.c index 0585679..b38a039 100644 --- a/libavcodec/simple_idct_template.c +++ b/libavcodec/simple_idct_template.c @@ -66,7 +66,6 @@ #elif BIT_DEPTH == 10 || BIT_DEPTH == 12 -# if BIT_DEPTH == 10 #define W1 22725 // 90901 #define W2 21407 // 85627 #define W3 19265 // 77062 @@ -75,6 +74,7 @@ #define W6 8867 // 35468 #define W7 4520 // 18081 +# if BIT_DEPTH == 10 # ifdef EXTRA_SHIFT #define ROW_SHIFT 13 #define COL_SHIFT 18 @@ -84,18 +84,9 @@ #define COL_SHIFT 19 #define DC_SHIFT 2 # endif - # else -#define W1 45451 -#define W2 42813 -#define W3 38531 -#define W4 32767 -#define W5 25746 -#define W6 17734 -#define W7 9041 - -#define ROW_SHIFT 16 -#define COL_SHIFT 17 +#define ROW_SHIFT 15 +#define COL_SHIFT 16 #define DC_SHIFT -1 # endif diff --git a/libavcodec/x86/idctdsp_init.c b/libavcodec/x86/idctdsp_init.c index bcf7e5b..8b25ff9 100644 --- a/libavcodec/x86/idctdsp_init.c +++ b/libavcodec/x86/idctdsp_init.c @@ -86,11 +86,11 @@ av_cold void ff_idctdsp_init_x86(IDCTDSPContext *c, AVCodecContext *avctx, c->add_pixels_clamped = ff_add_pixels_clamped_sse2; } - if (ARCH_X86_64 && avctx->lowres == 0) { - if (avctx->bits_per_raw_sample == 10 && + if (ARCH_X86_64 && avctx->lowres == 0 && (avctx->idct_algo == FF_IDCT_AUTO || avctx->idct_algo == FF_IDCT_SIMPLEAUTO || avctx->idct_algo == FF_IDCT_SIMPLE)) { + if (avctx->bits_per_raw_sample == 10) { if (EXTERNAL_SSE2(cpu_flags)) { c->idct_put = ff_simple_idct10_put_sse2; c->idct_add = NULL; @@ -106,9 +106,7 @@ av_cold void ff_idctdsp_init_x86(IDCTDSPContext *c, AVCodecContext *avctx, } } - if (avctx->bits_per_raw_sample == 12 && - (avctx->idct_algo == FF_IDCT_AUTO || - avctx->idct_algo == FF_IDCT_SIMPLEMMX)) { + if (avctx->bits_per_raw_sample == 12) { if (EXTERNAL_SSE2(cpu_flags)) { c->idct_put = ff_simple_idct12_put_sse2; c->idct_add = NULL; -- 2.6.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel