changeset 42:8068c4bce9c1 libavcodec

added mmx idct
author glantau
date Tue, 07 Aug 2001 22:49:50 +0000
parents d99e8a2351f4
children ab64a3fc62bf
files i386/dsputil_mmx.c
diffstat 1 files changed, 9 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/i386/dsputil_mmx.c	Tue Aug 07 22:49:11 2001 +0000
+++ b/i386/dsputil_mmx.c	Tue Aug 07 22:49:50 2001 +0000
@@ -29,15 +29,9 @@
 int pix_abs16x16_y2_mmx(UINT8 *blk1, UINT8 *blk2, int lx, int h);
 int pix_abs16x16_xy2_mmx(UINT8 *blk1, UINT8 *blk2, int lx, int h);
 
-#ifdef USE_MMX_IDCT
-/* external functions, defined in libmpeg2 */
-void mmx_idct(DCTELEM *block);
-void mmxext_idct(DCTELEM *block);
-/* this should be in dsputil.h?  -- A'rpi   */
-extern UINT8 ff_alternate_horizontal_scan[64];
-extern UINT8 ff_alternate_vertical_scan[64];
-extern UINT8 zigzag_direct[64];
-#endif
+/* external functions, from idct_mmx.c */
+void ff_mmx_idct(DCTELEM *block);
+void ff_mmxext_idct(DCTELEM *block);
 
 /* pixel operations */
 static const unsigned long long int mm_wone __attribute__ ((aligned(8))) = 0x0001000100010001;
@@ -1050,22 +1044,11 @@
             sub_pixels_tab[2] = sub_pixels_y2_3dnow;
         }
 
-#ifdef USE_MMX_IDCT
-	/* use MMX / MMXEXT iDCT code from libmpeg2 */
-	//printf("LIBAVCODEC: Using MMX%s iDCT code\n",(mm_flags & MM_MMXEXT)?"EXT":"");
-	ff_idct = (mm_flags & MM_MMXEXT) ? mmxext_idct : mmx_idct;
-	/* the mmx/mmxext idct uses a reordered input, so we patch scan tables */
-	{   int i,j;
-	    for (i = 0; i < 64; i++) {
-		j = zigzag_direct[i];
-		zigzag_direct[i] = (j & 0x38) | ((j & 6) >> 1) | ((j & 1) << 2);
-		j = ff_alternate_horizontal_scan[i];
-		ff_alternate_horizontal_scan[i] =  (j & 0x38) | ((j & 6) >> 1) | ((j & 1) << 2);
-		j = ff_alternate_vertical_scan[i];
-		ff_alternate_vertical_scan[i] =  (j & 0x38) | ((j & 6) >> 1) | ((j & 1) << 2);
-	    }
-	}
-#endif
-
+        /* idct */
+        if (mm_flags & MM_MMXEXT) {
+            ff_idct = ff_mmxext_idct;
+        } else {
+            ff_idct = ff_mmx_idct;
+        }
     }
 }