summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/dsputil_mmx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libffmpeg/libavcodec/dsputil_mmx.c')
-rw-r--r--src/libffmpeg/libavcodec/dsputil_mmx.c38
1 files changed, 10 insertions, 28 deletions
diff --git a/src/libffmpeg/libavcodec/dsputil_mmx.c b/src/libffmpeg/libavcodec/dsputil_mmx.c
index ddb91f54c..a4d40eb72 100644
--- a/src/libffmpeg/libavcodec/dsputil_mmx.c
+++ b/src/libffmpeg/libavcodec/dsputil_mmx.c
@@ -30,15 +30,9 @@ int pix_abs16x16_x2_mmx(UINT8 *blk1, UINT8 *blk2, int lx, int h);
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;
@@ -996,8 +990,7 @@ void dsputil_init_mmx(void)
pix_abs16x16_x2 = pix_abs16x16_x2_mmx;
pix_abs16x16_y2 = pix_abs16x16_y2_mmx;
pix_abs16x16_xy2 = pix_abs16x16_xy2_mmx;
- //av_fdct = fdct_mmx;
- av_fdct = 0;
+ av_fdct = fdct_mmx;
put_pixels_tab[0] = put_pixels_mmx;
put_pixels_tab[1] = put_pixels_x2_mmx;
@@ -1052,22 +1045,11 @@ void dsputil_init_mmx(void)
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;
+ }
}
}