Patch by Eli Friedman <eli.friedman at gmail dot com> Originally committed as revision 24702 to svn://svn.ffmpeg.org/ffmpeg/trunktags/n0.8
@@ -10,6 +10,7 @@ YASM-OBJS-$(CONFIG_GPL) += x86/h264_idct_sse2.o \ | |||||
YASM-OBJS-$(CONFIG_H264DSP) += x86/h264_deblock_sse2.o \ | YASM-OBJS-$(CONFIG_H264DSP) += x86/h264_deblock_sse2.o \ | ||||
x86/h264_intrapred.o \ | x86/h264_intrapred.o \ | ||||
x86/h264_weight_sse2.o \ | |||||
YASM-OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp_yasm.o | YASM-OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp_yasm.o | ||||
@@ -3000,6 +3000,8 @@ void ff_h264dsp_init_x86(H264DSPContext *c) | |||||
c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_mmxext; | c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_mmxext; | ||||
#endif | #endif | ||||
if( mm_flags&FF_MM_SSE2 ){ | if( mm_flags&FF_MM_SSE2 ){ | ||||
c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_sse2; | |||||
c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_sse2; | |||||
#if ARCH_X86_64 || !defined(__ICC) || __ICC > 1110 | #if ARCH_X86_64 || !defined(__ICC) || __ICC > 1110 | ||||
c->h264_v_loop_filter_luma = ff_x264_deblock_v_luma_sse2; | c->h264_v_loop_filter_luma = ff_x264_deblock_v_luma_sse2; | ||||
c->h264_h_loop_filter_luma = ff_x264_deblock_h_luma_sse2; | c->h264_h_loop_filter_luma = ff_x264_deblock_h_luma_sse2; | ||||
@@ -3012,6 +3014,10 @@ void ff_h264dsp_init_x86(H264DSPContext *c) | |||||
c->h264_idct_add16intra = ff_h264_idct_add16intra_sse2; | c->h264_idct_add16intra = ff_h264_idct_add16intra_sse2; | ||||
#endif | #endif | ||||
} | } | ||||
if ( mm_flags&FF_MM_SSSE3 ){ | |||||
c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_ssse3; | |||||
c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_ssse3; | |||||
} | |||||
} | } | ||||
#endif | #endif | ||||
} | } | ||||
@@ -2323,6 +2323,22 @@ H264_WEIGHT( 4, 8) | |||||
H264_WEIGHT( 4, 4) | H264_WEIGHT( 4, 4) | ||||
H264_WEIGHT( 4, 2) | H264_WEIGHT( 4, 2) | ||||
void ff_h264_biweight_8x8_sse2(uint8_t *dst, uint8_t *src, int stride, | |||||
int log2_denom, int weightd, int weights, | |||||
int offset); | |||||
void ff_h264_biweight_16x16_sse2(uint8_t *dst, uint8_t *src, int stride, | |||||
int log2_denom, int weightd, int weights, | |||||
int offset); | |||||
void ff_h264_biweight_8x8_ssse3(uint8_t *dst, uint8_t *src, int stride, | |||||
int log2_denom, int weightd, int weights, | |||||
int offset); | |||||
void ff_h264_biweight_16x16_ssse3(uint8_t *dst, uint8_t *src, int stride, | |||||
int log2_denom, int weightd, int weights, | |||||
int offset); | |||||
void ff_pred16x16_vertical_mmx (uint8_t *src, int stride); | void ff_pred16x16_vertical_mmx (uint8_t *src, int stride); | ||||
void ff_pred16x16_vertical_sse (uint8_t *src, int stride); | void ff_pred16x16_vertical_sse (uint8_t *src, int stride); | ||||
void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride); | void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride); | ||||