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); | ||||
} | } | ||||