[FFmpeg-cvslog] r15118 - in trunk/libavcodec/i386: dsputil_mmx.c vp3dsp_mmx.c vp3dsp_mmx.h

conrad subversion
Sun Aug 31 09:05:55 CEST 2008


Author: conrad
Date: Sun Aug 31 09:05:55 2008
New Revision: 15118

Log:
Use ff_vp3_idct_data in vp3dsp_mmx.c rather than duplicating it

Modified:
   trunk/libavcodec/i386/dsputil_mmx.c
   trunk/libavcodec/i386/vp3dsp_mmx.c
   trunk/libavcodec/i386/vp3dsp_mmx.h

Modified: trunk/libavcodec/i386/dsputil_mmx.c
==============================================================================
--- trunk/libavcodec/i386/dsputil_mmx.c	(original)
+++ trunk/libavcodec/i386/dsputil_mmx.c	Sun Aug 31 09:05:55 2008
@@ -2537,7 +2537,6 @@ void dsputil_init_mmx(DSPContext* c, AVC
                     c->idct    = ff_vp3_idct_sse2;
                     c->idct_permutation_type= FF_TRANSPOSE_IDCT_PERM;
                 }else{
-                    ff_vp3_dsp_init_mmx();
                     c->idct_put= ff_vp3_idct_put_mmx;
                     c->idct_add= ff_vp3_idct_add_mmx;
                     c->idct    = ff_vp3_idct_mmx;

Modified: trunk/libavcodec/i386/vp3dsp_mmx.c
==============================================================================
--- trunk/libavcodec/i386/vp3dsp_mmx.c	(original)
+++ trunk/libavcodec/i386/vp3dsp_mmx.c	Sun Aug 31 09:05:55 2008
@@ -27,15 +27,7 @@
 #include "dsputil_mmx.h"
 #include "mmx.h"
 
-/* (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) * 4];
-static const uint16_t idct_cosine_table[7] = {
-    64277, 60547, 54491, 46341, 36410, 25080, 12785
-};
+extern const uint16_t ff_vp3_idct_data[];
 
 #define r0 mm0
 #define r1 mm1
@@ -258,18 +250,6 @@ static const uint16_t idct_cosine_table[
     movq_r2m(r2, *I(2)); \
 }
 
-void ff_vp3_dsp_init_mmx(void)
-{
-    int j = 16;
-    uint16_t *p;
-
-    j = 1;
-    do {
-        p = idct_constants + ((j + 3) << 2);
-        p[0] = p[1] = p[2] = p[3] = idct_cosine_table[j - 1];
-    } while (++j <= 7);
-}
-
 void ff_vp3_idct_mmx(int16_t *output_data)
 {
     /* eax = quantized input
@@ -281,7 +261,7 @@ void ff_vp3_idct_mmx(int16_t *output_dat
      * r0..r7 = mm0..mm7
      */
 
-#define C(x) (idct_constants + 16 + (x - 1) * 4)
+#define C(x) (ff_vp3_idct_data + (x - 1) * 8)
 #define Eight (&ff_pw_8)
 
     /* at this point, function has completed dequantization + dezigzag +

Modified: trunk/libavcodec/i386/vp3dsp_mmx.h
==============================================================================
--- trunk/libavcodec/i386/vp3dsp_mmx.h	(original)
+++ trunk/libavcodec/i386/vp3dsp_mmx.h	Sun Aug 31 09:05:55 2008
@@ -28,6 +28,5 @@
 void ff_vp3_idct_mmx(int16_t *data);
 void ff_vp3_idct_put_mmx(uint8_t *dest, int line_size, DCTELEM *block);
 void ff_vp3_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block);
-void ff_vp3_dsp_init_mmx(void);
 
 #endif /* FFMPEG_VP3DSP_MMX_H */




More information about the ffmpeg-cvslog mailing list