diff --git a/libavcodec/x86/dsputil_mmx.c b/libavcodec/x86/dsputil_mmx.c index 659b549281..121e7114c7 100644 --- a/libavcodec/x86/dsputil_mmx.c +++ b/libavcodec/x86/dsputil_mmx.c @@ -2161,33 +2161,6 @@ void ff_avg_vc1_mspel_mc00_mmx2(uint8_t *dst, const uint8_t *src, avg_pixels8_mmx2(dst, src, stride, 8); } -/* XXX: Those functions should be suppressed ASAP when all IDCTs are - * converted. */ - -static void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, DCTELEM *block) -{ - ff_idct_xvid_mmx(block); - ff_put_pixels_clamped_mmx(block, dest, line_size); -} - -static void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, DCTELEM *block) -{ - ff_idct_xvid_mmx(block); - ff_add_pixels_clamped_mmx(block, dest, line_size); -} - -static void ff_idct_xvid_mmx2_put(uint8_t *dest, int line_size, DCTELEM *block) -{ - ff_idct_xvid_mmx2(block); - ff_put_pixels_clamped_mmx(block, dest, line_size); -} - -static void ff_idct_xvid_mmx2_add(uint8_t *dest, int line_size, DCTELEM *block) -{ - ff_idct_xvid_mmx2(block); - ff_add_pixels_clamped_mmx(block, dest, line_size); -} - static void vorbis_inverse_coupling_3dnow(float *mag, float *ang, int blocksize) { int i; diff --git a/libavcodec/x86/idct_mmx_xvid.c b/libavcodec/x86/idct_mmx_xvid.c index 23180b2c5a..08a627d5b9 100644 --- a/libavcodec/x86/idct_mmx_xvid.c +++ b/libavcodec/x86/idct_mmx_xvid.c @@ -44,6 +44,7 @@ #include "config.h" #include "libavcodec/avcodec.h" #include "libavutil/mem.h" +#include "dsputil_mmx.h" #include "idct_xvid.h" #if HAVE_INLINE_ASM @@ -529,4 +530,28 @@ __asm__ volatile( :: "r"(block), "r"(rounder_0), "r"(tab_i_04_xmm), "r"(tg_1_16)); } +void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, DCTELEM *block) +{ + ff_idct_xvid_mmx(block); + ff_put_pixels_clamped_mmx(block, dest, line_size); +} + +void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, DCTELEM *block) +{ + ff_idct_xvid_mmx(block); + ff_add_pixels_clamped_mmx(block, dest, line_size); +} + +void ff_idct_xvid_mmx2_put(uint8_t *dest, int line_size, DCTELEM *block) +{ + ff_idct_xvid_mmx2(block); + ff_put_pixels_clamped_mmx(block, dest, line_size); +} + +void ff_idct_xvid_mmx2_add(uint8_t *dest, int line_size, DCTELEM *block) +{ + ff_idct_xvid_mmx2(block); + ff_add_pixels_clamped_mmx(block, dest, line_size); +} + #endif /* HAVE_INLINE_ASM */ diff --git a/libavcodec/x86/idct_xvid.h b/libavcodec/x86/idct_xvid.h index 495d2caaf9..82fa990873 100644 --- a/libavcodec/x86/idct_xvid.h +++ b/libavcodec/x86/idct_xvid.h @@ -28,8 +28,16 @@ #include +#include "libavcodec/dsputil.h" + void ff_idct_xvid_mmx(short *block); +void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, DCTELEM *block); +void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, DCTELEM *block); + void ff_idct_xvid_mmx2(short *block); +void ff_idct_xvid_mmx2_put(uint8_t *dest, int line_size, DCTELEM *block); +void ff_idct_xvid_mmx2_add(uint8_t *dest, int line_size, DCTELEM *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);