|
|
|
@ -44,8 +44,9 @@ |
|
|
|
|
#include "config.h" |
|
|
|
|
#include "libavcodec/avcodec.h" |
|
|
|
|
#include "libavutil/mem.h" |
|
|
|
|
#include "idct_xvid.h" |
|
|
|
|
|
|
|
|
|
#include "idctdsp.h" |
|
|
|
|
#include "xvididct.h" |
|
|
|
|
|
|
|
|
|
#if HAVE_MMX_INLINE |
|
|
|
|
|
|
|
|
@ -472,7 +473,8 @@ DECLARE_ALIGNED(8, static const int16_t, tab_i_04_xmm)[32*4] = { |
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ff_idct_xvid_mmx(short *block){ |
|
|
|
|
void ff_xvid_idct_mmx(short *block) |
|
|
|
|
{ |
|
|
|
|
__asm__ volatile( |
|
|
|
|
//# Process each row
|
|
|
|
|
DCT_8_INV_ROW_MMX(0*16(%0), 0*16(%0), 64*0(%2), 8*0(%1)) |
|
|
|
@ -490,15 +492,15 @@ __asm__ volatile( |
|
|
|
|
:: "r"(block), "r"(rounder_0), "r"(tab_i_04_mmx), "r"(tg_1_16)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, int16_t *block) |
|
|
|
|
void ff_xvid_idct_mmx_put(uint8_t *dest, int line_size, int16_t *block) |
|
|
|
|
{ |
|
|
|
|
ff_idct_xvid_mmx(block); |
|
|
|
|
ff_xvid_idct_mmx(block); |
|
|
|
|
ff_put_pixels_clamped_mmx(block, dest, line_size); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, int16_t *block) |
|
|
|
|
void ff_xvid_idct_mmx_add(uint8_t *dest, int line_size, int16_t *block) |
|
|
|
|
{ |
|
|
|
|
ff_idct_xvid_mmx(block); |
|
|
|
|
ff_xvid_idct_mmx(block); |
|
|
|
|
ff_add_pixels_clamped_mmx(block, dest, line_size); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -511,7 +513,7 @@ void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, int16_t *block) |
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ff_idct_xvid_mmxext(short *block) |
|
|
|
|
void ff_xvid_idct_mmxext(short *block) |
|
|
|
|
{ |
|
|
|
|
__asm__ volatile( |
|
|
|
|
//# Process each row
|
|
|
|
@ -530,15 +532,15 @@ __asm__ volatile( |
|
|
|
|
:: "r"(block), "r"(rounder_0), "r"(tab_i_04_xmm), "r"(tg_1_16)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ff_idct_xvid_mmxext_put(uint8_t *dest, int line_size, int16_t *block) |
|
|
|
|
void ff_xvid_idct_mmxext_put(uint8_t *dest, int line_size, int16_t *block) |
|
|
|
|
{ |
|
|
|
|
ff_idct_xvid_mmxext(block); |
|
|
|
|
ff_xvid_idct_mmxext(block); |
|
|
|
|
ff_put_pixels_clamped_mmx(block, dest, line_size); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ff_idct_xvid_mmxext_add(uint8_t *dest, int line_size, int16_t *block) |
|
|
|
|
void ff_xvid_idct_mmxext_add(uint8_t *dest, int line_size, int16_t *block) |
|
|
|
|
{ |
|
|
|
|
ff_idct_xvid_mmxext(block); |
|
|
|
|
ff_xvid_idct_mmxext(block); |
|
|
|
|
ff_add_pixels_clamped_mmx(block, dest, line_size); |
|
|
|
|
} |
|
|
|
|
|