Originally committed as revision 18517 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.6
| @@ -1679,7 +1679,7 @@ H264_CHROMA_MC(avg_ , op_avg) | |||||
| #undef op_avg | #undef op_avg | ||||
| #undef op_put | #undef op_put | ||||
| static void put_no_rnd_h264_chroma_mc8_c(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y){ | |||||
| static void put_no_rnd_vc1_chroma_mc8_c(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y){ | |||||
| const int A=(8-x)*(8-y); | const int A=(8-x)*(8-y); | ||||
| const int B=( x)*(8-y); | const int B=( x)*(8-y); | ||||
| const int C=(8-x)*( y); | const int C=(8-x)*( y); | ||||
| @@ -4489,7 +4489,7 @@ void dsputil_init(DSPContext* c, AVCodecContext *avctx) | |||||
| c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_c; | c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_c; | ||||
| c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_c; | c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_c; | ||||
| c->avg_h264_chroma_pixels_tab[2]= avg_h264_chroma_mc2_c; | c->avg_h264_chroma_pixels_tab[2]= avg_h264_chroma_mc2_c; | ||||
| c->put_no_rnd_h264_chroma_pixels_tab[0]= put_no_rnd_h264_chroma_mc8_c; | |||||
| c->put_no_rnd_vc1_chroma_pixels_tab[0]= put_no_rnd_vc1_chroma_mc8_c; | |||||
| c->weight_h264_pixels_tab[0]= weight_h264_pixels16x16_c; | c->weight_h264_pixels_tab[0]= weight_h264_pixels16x16_c; | ||||
| c->weight_h264_pixels_tab[1]= weight_h264_pixels16x8_c; | c->weight_h264_pixels_tab[1]= weight_h264_pixels16x8_c; | ||||
| @@ -316,9 +316,9 @@ typedef struct DSPContext { | |||||
| * h264 Chroma MC | * h264 Chroma MC | ||||
| */ | */ | ||||
| h264_chroma_mc_func put_h264_chroma_pixels_tab[3]; | h264_chroma_mc_func put_h264_chroma_pixels_tab[3]; | ||||
| /* This is really one func used in VC-1 decoding */ | |||||
| h264_chroma_mc_func put_no_rnd_h264_chroma_pixels_tab[3]; | |||||
| h264_chroma_mc_func avg_h264_chroma_pixels_tab[3]; | h264_chroma_mc_func avg_h264_chroma_pixels_tab[3]; | ||||
| /* This is really one func used in VC-1 decoding */ | |||||
| h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab[3]; | |||||
| qpel_mc_func put_h264_qpel_pixels_tab[4][16]; | qpel_mc_func put_h264_qpel_pixels_tab[4][16]; | ||||
| qpel_mc_func avg_h264_qpel_pixels_tab[4][16]; | qpel_mc_func avg_h264_qpel_pixels_tab[4][16]; | ||||
| @@ -180,7 +180,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## CODETYPE(uint8_t *dst, uint | |||||
| }\ | }\ | ||||
| /* this code assume that stride % 16 == 0 */ | /* this code assume that stride % 16 == 0 */ | ||||
| void put_no_rnd_h264_chroma_mc8_altivec(uint8_t * dst, uint8_t * src, int stride, int h, int x, int y) { | |||||
| void put_no_rnd_vc1_chroma_mc8_altivec(uint8_t * dst, uint8_t * src, int stride, int h, int x, int y) { | |||||
| DECLARE_ALIGNED_16(signed int, ABCD[4]) = | DECLARE_ALIGNED_16(signed int, ABCD[4]) = | ||||
| {((8 - x) * (8 - y)), | {((8 - x) * (8 - y)), | ||||
| (( x) * (8 - y)), | (( x) * (8 - y)), | ||||
| @@ -1090,8 +1090,8 @@ void dsputil_h264_init_ppc(DSPContext* c, AVCodecContext *avctx) { | |||||
| if (has_altivec()) { | if (has_altivec()) { | ||||
| c->put_h264_chroma_pixels_tab[0] = put_h264_chroma_mc8_altivec; | c->put_h264_chroma_pixels_tab[0] = put_h264_chroma_mc8_altivec; | ||||
| c->put_no_rnd_h264_chroma_pixels_tab[0] = put_no_rnd_h264_chroma_mc8_altivec; | |||||
| c->avg_h264_chroma_pixels_tab[0] = avg_h264_chroma_mc8_altivec; | c->avg_h264_chroma_pixels_tab[0] = avg_h264_chroma_mc8_altivec; | ||||
| c->put_no_rnd_vc1_chroma_pixels_tab[0] = put_no_rnd_vc1_chroma_mc8_altivec; | |||||
| c->h264_idct_add = ff_h264_idct_add_altivec; | c->h264_idct_add = ff_h264_idct_add_altivec; | ||||
| c->h264_idct_add8 = ff_h264_idct_add8_altivec; | c->h264_idct_add8 = ff_h264_idct_add8_altivec; | ||||
| c->h264_idct_add16 = ff_h264_idct_add16_altivec; | c->h264_idct_add16 = ff_h264_idct_add16_altivec; | ||||
| @@ -618,8 +618,8 @@ static void vc1_mc_1mv(VC1Context *v, int dir) | |||||
| dsp->put_h264_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); | dsp->put_h264_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); | ||||
| dsp->put_h264_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); | dsp->put_h264_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); | ||||
| }else{ | }else{ | ||||
| dsp->put_no_rnd_h264_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); | |||||
| dsp->put_no_rnd_h264_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); | |||||
| dsp->put_no_rnd_vc1_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); | |||||
| dsp->put_no_rnd_vc1_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); | |||||
| } | } | ||||
| } | } | ||||
| @@ -838,8 +838,8 @@ static void vc1_mc_4mv_chroma(VC1Context *v) | |||||
| dsp->put_h264_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); | dsp->put_h264_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); | ||||
| dsp->put_h264_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); | dsp->put_h264_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); | ||||
| }else{ | }else{ | ||||
| dsp->put_no_rnd_h264_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); | |||||
| dsp->put_no_rnd_h264_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); | |||||
| dsp->put_no_rnd_vc1_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); | |||||
| dsp->put_no_rnd_vc1_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); | |||||
| } | } | ||||
| } | } | ||||
| @@ -2693,7 +2693,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx) | |||||
| } | } | ||||
| c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_mmx_rnd; | c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_mmx_rnd; | ||||
| c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_mmx; | c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_mmx; | ||||
| c->put_no_rnd_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_mmx_nornd; | |||||
| c->put_no_rnd_vc1_chroma_pixels_tab[0]= put_vc1_chroma_mc8_mmx_nornd; | |||||
| c->put_rv40_chroma_pixels_tab[0]= put_rv40_chroma_mc8_mmx; | c->put_rv40_chroma_pixels_tab[0]= put_rv40_chroma_mc8_mmx; | ||||
| c->put_rv40_chroma_pixels_tab[1]= put_rv40_chroma_mc4_mmx; | c->put_rv40_chroma_pixels_tab[1]= put_rv40_chroma_mc4_mmx; | ||||
| @@ -2939,7 +2939,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx) | |||||
| H264_QPEL_FUNCS(3, 1, ssse3); | H264_QPEL_FUNCS(3, 1, ssse3); | ||||
| H264_QPEL_FUNCS(3, 2, ssse3); | H264_QPEL_FUNCS(3, 2, ssse3); | ||||
| H264_QPEL_FUNCS(3, 3, ssse3); | H264_QPEL_FUNCS(3, 3, ssse3); | ||||
| c->put_no_rnd_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_ssse3_nornd; | |||||
| c->put_no_rnd_vc1_chroma_pixels_tab[0]= put_vc1_chroma_mc8_ssse3_nornd; | |||||
| c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_ssse3_rnd; | c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_ssse3_rnd; | ||||
| c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_ssse3_rnd; | c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_ssse3_rnd; | ||||
| c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_ssse3; | c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_ssse3; | ||||
| @@ -2101,7 +2101,7 @@ static void put_h264_chroma_mc8_mmx_rnd(uint8_t *dst/*align 8*/, uint8_t *src/*a | |||||
| { | { | ||||
| put_h264_chroma_generic_mc8_mmx(dst, src, stride, h, x, y, h264_rnd_reg); | put_h264_chroma_generic_mc8_mmx(dst, src, stride, h, x, y, h264_rnd_reg); | ||||
| } | } | ||||
| static void put_h264_chroma_mc8_mmx_nornd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y) | |||||
| static void put_vc1_chroma_mc8_mmx_nornd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y) | |||||
| { | { | ||||
| put_h264_chroma_generic_mc8_mmx(dst, src, stride, h, x, y, h264_rnd_reg+2); | put_h264_chroma_generic_mc8_mmx(dst, src, stride, h, x, y, h264_rnd_reg+2); | ||||
| } | } | ||||
| @@ -2173,7 +2173,7 @@ static void put_h264_chroma_mc8_ssse3_rnd(uint8_t *dst/*align 8*/, uint8_t *src/ | |||||
| { | { | ||||
| put_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 1); | put_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 1); | ||||
| } | } | ||||
| static void put_h264_chroma_mc8_ssse3_nornd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y) | |||||
| static void put_vc1_chroma_mc8_ssse3_nornd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y) | |||||
| { | { | ||||
| put_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 0); | put_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 0); | ||||
| } | } | ||||