mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
added mmx idct
Originally committed as revision 53 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
3c054a1cdd
commit
8def029919
@ -29,15 +29,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;
|
||||
@ -1050,22 +1044,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user