@ -33,9 +33,10 @@
# include "vc1dsp.h"
# include "config.h"
# define LOOP_FILTER(EXT) \
# define LOOP_FILTER4 (EXT) \
void ff_vc1_v_loop_filter4_ # # EXT ( uint8_t * src , ptrdiff_t stride , int pq ) ; \
void ff_vc1_h_loop_filter4_ # # EXT ( uint8_t * src , ptrdiff_t stride , int pq ) ; \
void ff_vc1_h_loop_filter4_ # # EXT ( uint8_t * src , ptrdiff_t stride , int pq ) ;
# define LOOP_FILTER816(EXT) \
void ff_vc1_v_loop_filter8_ # # EXT ( uint8_t * src , ptrdiff_t stride , int pq ) ; \
void ff_vc1_h_loop_filter8_ # # EXT ( uint8_t * src , ptrdiff_t stride , int pq ) ; \
\
@ -52,9 +53,10 @@ static void vc1_h_loop_filter16_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq)
}
# if HAVE_X86ASM
LOOP_FILTER ( mmxext )
LOOP_FILTER ( sse2 )
LOOP_FILTER ( ssse3 )
LOOP_FILTER4 ( mmxext )
LOOP_FILTER816 ( sse2 )
LOOP_FILTER4 ( ssse3 )
LOOP_FILTER816 ( ssse3 )
void ff_vc1_h_loop_filter8_sse4 ( uint8_t * src , ptrdiff_t stride , int pq ) ;
@ -72,11 +74,7 @@ static void vc1_h_loop_filter16_sse4(uint8_t *src, ptrdiff_t stride, int pq)
}
DECLARE_FUNCTION ( put_ , 8 , _mmx )
DECLARE_FUNCTION ( put_ , 16 , _mmx )
DECLARE_FUNCTION ( avg_ , 8 , _mmx )
DECLARE_FUNCTION ( avg_ , 16 , _mmx )
DECLARE_FUNCTION ( avg_ , 8 , _mmxext )
DECLARE_FUNCTION ( avg_ , 16 , _mmxext )
DECLARE_FUNCTION ( put_ , 16 , _sse2 )
DECLARE_FUNCTION ( avg_ , 16 , _sse2 )
@ -86,8 +84,6 @@ void ff_put_vc1_chroma_mc8_nornd_mmx (uint8_t *dst, uint8_t *src,
ptrdiff_t stride , int h , int x , int y ) ;
void ff_avg_vc1_chroma_mc8_nornd_mmxext ( uint8_t * dst , uint8_t * src ,
ptrdiff_t stride , int h , int x , int y ) ;
void ff_avg_vc1_chroma_mc8_nornd_3dnow ( uint8_t * dst , uint8_t * src ,
ptrdiff_t stride , int h , int x , int y ) ;
void ff_put_vc1_chroma_mc8_nornd_ssse3 ( uint8_t * dst , uint8_t * src ,
ptrdiff_t stride , int h , int x , int y ) ;
void ff_avg_vc1_chroma_mc8_nornd_ssse3 ( uint8_t * dst , uint8_t * src ,
@ -114,9 +110,10 @@ av_cold void ff_vc1dsp_init_x86(VC1DSPContext *dsp)
if ( EXTERNAL_MMXEXT ( cpu_flags ) )
ff_vc1dsp_init_mmxext ( dsp ) ;
# define ASSIGN_LF(EXT) \
# define ASSIGN_LF4 (EXT) \
dsp - > vc1_v_loop_filter4 = ff_vc1_v_loop_filter4_ # # EXT ; \
dsp - > vc1_h_loop_filter4 = ff_vc1_h_loop_filter4_ # # EXT ; \
dsp - > vc1_h_loop_filter4 = ff_vc1_h_loop_filter4_ # # EXT
# define ASSIGN_LF816(EXT) \
dsp - > vc1_v_loop_filter8 = ff_vc1_v_loop_filter8_ # # EXT ; \
dsp - > vc1_h_loop_filter8 = ff_vc1_h_loop_filter8_ # # EXT ; \
dsp - > vc1_v_loop_filter16 = vc1_v_loop_filter16_ # # EXT ; \
@ -127,19 +124,12 @@ av_cold void ff_vc1dsp_init_x86(VC1DSPContext *dsp)
dsp - > put_no_rnd_vc1_chroma_pixels_tab [ 0 ] = ff_put_vc1_chroma_mc8_nornd_mmx ;
dsp - > put_vc1_mspel_pixels_tab [ 1 ] [ 0 ] = put_vc1_mspel_mc00_8_mmx ;
dsp - > put_vc1_mspel_pixels_tab [ 0 ] [ 0 ] = put_vc1_mspel_mc00_16_mmx ;
dsp - > avg_vc1_mspel_pixels_tab [ 1 ] [ 0 ] = avg_vc1_mspel_mc00_8_mmx ;
dsp - > avg_vc1_mspel_pixels_tab [ 0 ] [ 0 ] = avg_vc1_mspel_mc00_16_mmx ;
}
if ( EXTERNAL_AMD3DNOW ( cpu_flags ) ) {
dsp - > avg_no_rnd_vc1_chroma_pixels_tab [ 0 ] = ff_avg_vc1_chroma_mc8_nornd_3dnow ;
}
if ( EXTERNAL_MMXEXT ( cpu_flags ) ) {
ASSIGN_LF ( mmxext ) ;
ASSIGN_LF4 ( mmxext ) ;
dsp - > avg_no_rnd_vc1_chroma_pixels_tab [ 0 ] = ff_avg_vc1_chroma_mc8_nornd_mmxext ;
dsp - > avg_vc1_mspel_pixels_tab [ 1 ] [ 0 ] = avg_vc1_mspel_mc00_8_mmxext ;
dsp - > avg_vc1_mspel_pixels_tab [ 0 ] [ 0 ] = avg_vc1_mspel_mc00_16_mmxext ;
dsp - > vc1_inv_trans_8x8_dc = ff_vc1_inv_trans_8x8_dc_mmxext ;
dsp - > vc1_inv_trans_4x8_dc = ff_vc1_inv_trans_4x8_dc_mmxext ;
@ -147,16 +137,14 @@ av_cold void ff_vc1dsp_init_x86(VC1DSPContext *dsp)
dsp - > vc1_inv_trans_4x4_dc = ff_vc1_inv_trans_4x4_dc_mmxext ;
}
if ( EXTERNAL_SSE2 ( cpu_flags ) ) {
dsp - > vc1_v_loop_filter8 = ff_vc1_v_loop_filter8_sse2 ;
dsp - > vc1_h_loop_filter8 = ff_vc1_h_loop_filter8_sse2 ;
dsp - > vc1_v_loop_filter16 = vc1_v_loop_filter16_sse2 ;
dsp - > vc1_h_loop_filter16 = vc1_h_loop_filter16_sse2 ;
ASSIGN_LF816 ( sse2 ) ;
dsp - > put_vc1_mspel_pixels_tab [ 0 ] [ 0 ] = put_vc1_mspel_mc00_16_sse2 ;
dsp - > avg_vc1_mspel_pixels_tab [ 0 ] [ 0 ] = avg_vc1_mspel_mc00_16_sse2 ;
}
if ( EXTERNAL_SSSE3 ( cpu_flags ) ) {
ASSIGN_LF ( ssse3 ) ;
ASSIGN_LF4 ( ssse3 ) ;
ASSIGN_LF816 ( ssse3 ) ;
dsp - > put_no_rnd_vc1_chroma_pixels_tab [ 0 ] = ff_put_vc1_chroma_mc8_nornd_ssse3 ;
dsp - > avg_no_rnd_vc1_chroma_pixels_tab [ 0 ] = ff_avg_vc1_chroma_mc8_nornd_ssse3 ;
}