Commit f73a6393 authored by Alexander Strange's avatar Alexander Strange

Add a new xvid-style IDCT using SSE2.

Originally committed as revision 12843 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 0e956ba2
......@@ -375,6 +375,7 @@ OBJS += i386/fdct_mmx.o \
i386/motion_est_mmx.o \
i386/simple_idct_mmx.o \
i386/idct_mmx_xvid.o \
i386/idct_sse2_xvid.o \
i386/fft_sse.o \
i386/fft_3dn.o \
i386/fft_3dn2.o \
......
......@@ -2124,7 +2124,12 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
}else if(idct_algo==FF_IDCT_CAVS){
c->idct_permutation_type= FF_TRANSPOSE_IDCT_PERM;
}else if(idct_algo==FF_IDCT_XVIDMMX){
if(mm_flags & MM_MMXEXT){
if(mm_flags & MM_SSE2){
c->idct_put= ff_idct_xvid_sse2_put;
c->idct_add= ff_idct_xvid_sse2_add;
c->idct = ff_idct_xvid_sse2;
c->idct_permutation_type= FF_SSE2_IDCT_PERM;
}else if(mm_flags & MM_MMXEXT){
c->idct_put= ff_idct_xvid_mmx2_put;
c->idct_add= ff_idct_xvid_mmx2_add;
c->idct = ff_idct_xvid_mmx2;
......
This diff is collapsed.
......@@ -28,5 +28,8 @@
void ff_idct_xvid_mmx(short *block);
void ff_idct_xvid_mmx2(short *block);
void ff_idct_xvid_sse2(short *block);
void ff_idct_xvid_sse2_put(uint8_t *dest, int line_size, short *block);
void ff_idct_xvid_sse2_add(uint8_t *dest, int line_size, short *block);
#endif /* FFMPEG_IDCT_XVID_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment