@ -41,10 +41,14 @@ void ff_avg_rv40_chroma_mc4_3dnow(uint8_t *dst, uint8_t *src,
int stride , int h , int x , int y ) ;
# define DECLARE_WEIGHT(opt) \
void ff_rv40_weight_func_16_ # # opt ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 , \
int w1 , int w2 , ptrdiff_t stride ) ; \
void ff_rv40_weight_func_8_ # # opt ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 , \
int w1 , int w2 , ptrdiff_t stride ) ;
void ff_rv40_weight_func_rnd_16_ # # opt ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 , \
int w1 , int w2 , ptrdiff_t stride ) ; \
void ff_rv40_weight_func_rnd_8_ # # opt ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 , \
int w1 , int w2 , ptrdiff_t stride ) ; \
void ff_rv40_weight_func_nornd_16_ # # opt ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 , \
int w1 , int w2 , ptrdiff_t stride ) ; \
void ff_rv40_weight_func_nornd_8_ # # opt ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 , \
int w1 , int w2 , ptrdiff_t stride ) ;
DECLARE_WEIGHT ( mmx )
DECLARE_WEIGHT ( sse2 )
DECLARE_WEIGHT ( ssse3 )
@ -57,8 +61,10 @@ void ff_rv40dsp_init_x86(RV34DSPContext *c, DSPContext *dsp)
if ( mm_flags & AV_CPU_FLAG_MMX ) {
c - > put_chroma_pixels_tab [ 0 ] = ff_put_rv40_chroma_mc8_mmx ;
c - > put_chroma_pixels_tab [ 1 ] = ff_put_rv40_chroma_mc4_mmx ;
c - > rv40_weight_pixels_tab [ 0 ] = ff_rv40_weight_func_16_mmx ;
c - > rv40_weight_pixels_tab [ 1 ] = ff_rv40_weight_func_8_mmx ;
c - > rv40_weight_pixels_tab [ 0 ] [ 0 ] = ff_rv40_weight_func_rnd_16_mmx ;
c - > rv40_weight_pixels_tab [ 0 ] [ 1 ] = ff_rv40_weight_func_rnd_8_mmx ;
c - > rv40_weight_pixels_tab [ 1 ] [ 0 ] = ff_rv40_weight_func_nornd_16_mmx ;
c - > rv40_weight_pixels_tab [ 1 ] [ 1 ] = ff_rv40_weight_func_nornd_8_mmx ;
}
if ( mm_flags & AV_CPU_FLAG_MMX2 ) {
c - > avg_chroma_pixels_tab [ 0 ] = ff_avg_rv40_chroma_mc8_mmx2 ;
@ -68,12 +74,16 @@ void ff_rv40dsp_init_x86(RV34DSPContext *c, DSPContext *dsp)
c - > avg_chroma_pixels_tab [ 1 ] = ff_avg_rv40_chroma_mc4_3dnow ;
}
if ( mm_flags & AV_CPU_FLAG_SSE2 ) {
c - > rv40_weight_pixels_tab [ 0 ] = ff_rv40_weight_func_16_sse2 ;
c - > rv40_weight_pixels_tab [ 1 ] = ff_rv40_weight_func_8_sse2 ;
c - > rv40_weight_pixels_tab [ 0 ] [ 0 ] = ff_rv40_weight_func_rnd_16_sse2 ;
c - > rv40_weight_pixels_tab [ 0 ] [ 1 ] = ff_rv40_weight_func_rnd_8_sse2 ;
c - > rv40_weight_pixels_tab [ 1 ] [ 0 ] = ff_rv40_weight_func_nornd_16_sse2 ;
c - > rv40_weight_pixels_tab [ 1 ] [ 1 ] = ff_rv40_weight_func_nornd_8_sse2 ;
}
if ( mm_flags & AV_CPU_FLAG_SSSE3 ) {
c - > rv40_weight_pixels_tab [ 0 ] = ff_rv40_weight_func_16_ssse3 ;
c - > rv40_weight_pixels_tab [ 1 ] = ff_rv40_weight_func_8_ssse3 ;
c - > rv40_weight_pixels_tab [ 0 ] [ 0 ] = ff_rv40_weight_func_rnd_16_ssse3 ;
c - > rv40_weight_pixels_tab [ 0 ] [ 1 ] = ff_rv40_weight_func_rnd_8_ssse3 ;
c - > rv40_weight_pixels_tab [ 1 ] [ 0 ] = ff_rv40_weight_func_nornd_16_ssse3 ;
c - > rv40_weight_pixels_tab [ 1 ] [ 1 ] = ff_rv40_weight_func_nornd_8_ssse3 ;
}
# endif
}