]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Use ff_pw_8 in MMX/SSE VP3 IDCT
authorconrad <conrad@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 30 Aug 2008 19:41:42 +0000 (19:41 +0000)
committerconrad <conrad@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 30 Aug 2008 19:41:42 +0000 (19:41 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@15053 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/i386/vp3dsp_mmx.c
libavcodec/i386/vp3dsp_sse2.c

index 00a6d272078ae9ff0b149b6f6e0d0ee719fb4f13..e0fb394e71e038a5975312416629d58f0accfbe7 100644 (file)
  */
 
 #include "libavcodec/dsputil.h"
+#include "dsputil_mmx.h"
 #include "mmx.h"
 
-#define IdctAdjustBeforeShift 8
-
 /* (12 * 4) 2-byte memory locations ( = 96 bytes total)
  * idct_constants[0..15] = Mask table (M(I))
  * idct_constants[16..43] = Cosine table (C(I))
  * idct_constants[44..47] = 8
  */
-static uint16_t idct_constants[(4 + 7 + 1) * 4];
+static uint16_t idct_constants[(4 + 7) * 4];
 static const uint16_t idct_cosine_table[7] = {
     64277, 60547, 54491, 46341, 36410, 25080, 12785
 };
@@ -269,9 +268,6 @@ void ff_vp3_dsp_init_mmx(void)
         p = idct_constants + ((j + 3) << 2);
         p[0] = p[1] = p[2] = p[3] = idct_cosine_table[j - 1];
     } while (++j <= 7);
-
-    idct_constants[44] = idct_constants[45] =
-    idct_constants[46] = idct_constants[47] = IdctAdjustBeforeShift;
 }
 
 void ff_vp3_idct_mmx(int16_t *output_data)
@@ -286,7 +282,7 @@ void ff_vp3_idct_mmx(int16_t *output_data)
      */
 
 #define C(x) (idct_constants + 16 + (x - 1) * 4)
-#define Eight (idct_constants + 44)
+#define Eight (&ff_pw_8)
 
     /* at this point, function has completed dequantization + dezigzag +
      * partial transposition; now do the idct itself */
index e888bcfd69aaa9d1b8e16ef37c9cc7b983745205..b6568c7ed44c96549b748a02801be13db6911ed0 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 #include "libavcodec/dsputil.h"
+#include "dsputil_mmx.h"
 #include "mmx.h"
 
 static DECLARE_ALIGNED_16(const unsigned short, SSE2_dequant_const[]) =
@@ -37,14 +38,6 @@ static DECLARE_ALIGNED_16(const unsigned short, SSE2_dequant_const[]) =
     0,0,65535,65535, 0,0,0,0    // 0x0000 0000 0000 0000 FFFF FFFF 0000 0000
 };
 
-static DECLARE_ALIGNED_16(const unsigned int, eight_data[]) =
-{
-    0x00080008,
-    0x00080008,
-    0x00080008,
-    0x00080008
-};
-
 static DECLARE_ALIGNED_16(const unsigned short, SSE2_idct_data[7 * 8]) =
 {
     64277,64277,64277,64277,64277,64277,64277,64277,
@@ -803,7 +796,7 @@ void ff_vp3_idct_sse2(int16_t *input_data)
     unsigned char *input_bytes = (unsigned char *)input_data;
     unsigned char *output_data_bytes = (unsigned char *)input_data;
     const unsigned char *idct_data_bytes = (const unsigned char *)SSE2_idct_data;
-    const unsigned char *Eight = (const unsigned char *)eight_data;
+    const unsigned char *Eight = (const unsigned char *)&ff_pw_8;
 
 #define eax input_bytes
 //#define ebx dequant_matrix_bytes