From 7ffaa195704a7805a4342e58406904e6de17fef5 Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Sun, 1 Dec 2013 05:05:23 +0100 Subject: dsputil: x86: Move ff_inv_zigzag_direct16 table init to mpegvideo The table is MMX-specific and used nowhere else. --- libavcodec/dsputil.c | 5 ----- libavcodec/x86/mpegvideoenc.c | 7 ++++++- libavcodec/x86/mpegvideoenc_template.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c index e734fcd223..2aac64f09b 100644 --- a/libavcodec/dsputil.c +++ b/libavcodec/dsputil.c @@ -68,9 +68,6 @@ const uint8_t ff_zigzag248_direct[64] = { 53, 61, 54, 62, 39, 47, 55, 63, }; -/* not permutated inverse zigzag_direct + 1 for MMX quantizer */ -DECLARE_ALIGNED(16, uint16_t, ff_inv_zigzag_direct16)[64]; - const uint8_t ff_alternate_horizontal_scan[64] = { 0, 1, 2, 3, 8, 9, 16, 17, 10, 11, 4, 5, 6, 7, 15, 14, @@ -2431,8 +2428,6 @@ av_cold void ff_dsputil_static_init(void) for(i=0;i<512;i++) { ff_squareTbl[i] = (i - 256) * (i - 256); } - - for(i=0; i<64; i++) ff_inv_zigzag_direct16[ff_zigzag_direct[i]]= i+1; } int ff_check_alignment(void){ diff --git a/libavcodec/x86/mpegvideoenc.c b/libavcodec/x86/mpegvideoenc.c index ca39a3bd95..3167ea602b 100644 --- a/libavcodec/x86/mpegvideoenc.c +++ b/libavcodec/x86/mpegvideoenc.c @@ -28,7 +28,8 @@ #include "libavcodec/mpegvideo.h" #include "dsputil_x86.h" -extern uint16_t ff_inv_zigzag_direct16[64]; +/* not permutated inverse zigzag_direct + 1 for MMX quantizer */ +DECLARE_ALIGNED(16, static uint16_t, inv_zigzag_direct16)[64]; #if HAVE_MMX_INLINE #define COMPILE_TEMPLATE_MMXEXT 0 @@ -84,6 +85,10 @@ extern uint16_t ff_inv_zigzag_direct16[64]; av_cold void ff_MPV_encode_init_x86(MpegEncContext *s) { const int dct_algo = s->avctx->dct_algo; + int i; + + for (i = 0; i < 64; i++) + inv_zigzag_direct16[ff_zigzag_direct[i]] = i + 1; if (dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_MMX) { #if HAVE_MMX_INLINE diff --git a/libavcodec/x86/mpegvideoenc_template.c b/libavcodec/x86/mpegvideoenc_template.c index 4d3fb7445b..a8d2a2cf8a 100644 --- a/libavcodec/x86/mpegvideoenc_template.c +++ b/libavcodec/x86/mpegvideoenc_template.c @@ -168,7 +168,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s, "movzb %%al, %%"REG_a" \n\t" // last_non_zero_p1 : "+a" (last_non_zero_p1) : "r" (block+64), "r" (qmat), "r" (bias), - "r" (ff_inv_zigzag_direct16+64), "r" (temp_block+64) + "r" (inv_zigzag_direct16 + 64), "r" (temp_block + 64) XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7") ); @@ -202,7 +202,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s, "movzb %%al, %%"REG_a" \n\t" // last_non_zero_p1 : "+a" (last_non_zero_p1) : "r" (block+64), "r" (qmat+64), "r" (bias+64), - "r" (ff_inv_zigzag_direct16+64), "r" (temp_block+64) + "r" (inv_zigzag_direct16 + 64), "r" (temp_block + 64) XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7") ); -- cgit v1.2.3