summaryrefslogtreecommitdiff
path: root/libavcodec/x86/mpegvideoenc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-12-02 10:59:41 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-12-02 10:59:48 +0100
commitbe2312aa8f05a301ccc90c60a6671c33b371e370 (patch)
tree429610b6adbface494d28cdfde896a75088c0a96 /libavcodec/x86/mpegvideoenc.c
parente3d7a3978b857e32b32575ff78ecc7d67a18687e (diff)
parent7ffaa195704a7805a4342e58406904e6de17fef5 (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: dsputil: x86: Move ff_inv_zigzag_direct16 table init to mpegvideo If someone optimizes dct_quantize for non x86 SIMD, then this probably needs to be reverted. Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/x86/mpegvideoenc.c')
-rw-r--r--libavcodec/x86/mpegvideoenc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/x86/mpegvideoenc.c b/libavcodec/x86/mpegvideoenc.c
index 97aa3c7fb3..77fc163595 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_dct_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