Originally committed as revision 7764 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -388,7 +388,7 @@ typedef struct DSPContext { | |||
| /* snow wavelet */ | |||
| void (*vertical_compose97i)(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTELEM *b3, DWTELEM *b4, DWTELEM *b5, int width); | |||
| void (*horizontal_compose97i)(DWTELEM *b, int width); | |||
| void (*inner_add_yblock)(uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8); | |||
| void (*inner_add_yblock)(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8); | |||
| void (*prefetch)(void *mem, int stride, int h); | |||
| @@ -3042,9 +3042,9 @@ extern void ff_snow_horizontal_compose97i_sse2(DWTELEM *b, int width); | |||
| extern void ff_snow_horizontal_compose97i_mmx(DWTELEM *b, int width); | |||
| extern void ff_snow_vertical_compose97i_sse2(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTELEM *b3, DWTELEM *b4, DWTELEM *b5, int width); | |||
| extern void ff_snow_vertical_compose97i_mmx(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTELEM *b3, DWTELEM *b4, DWTELEM *b5, int width); | |||
| extern void ff_snow_inner_add_yblock_sse2(uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| extern void ff_snow_inner_add_yblock_sse2(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8); | |||
| extern void ff_snow_inner_add_yblock_mmx(uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| extern void ff_snow_inner_add_yblock_mmx(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8); | |||
| #endif | |||
| @@ -708,7 +708,7 @@ void ff_snow_vertical_compose97i_mmx(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTE | |||
| "dec %2 \n\t"\ | |||
| snow_inner_add_yblock_sse2_end_common2 | |||
| static void inner_add_yblock_bw_8_obmc_16_bh_even_sse2(uint8_t *obmc, const long obmc_stride, uint8_t * * block, int b_w, long b_h, | |||
| static void inner_add_yblock_bw_8_obmc_16_bh_even_sse2(const uint8_t *obmc, const long obmc_stride, uint8_t * * block, int b_w, long b_h, | |||
| int src_x, int src_y, long src_stride, slice_buffer * sb, int add, uint8_t * dst8){ | |||
| snow_inner_add_yblock_sse2_header | |||
| snow_inner_add_yblock_sse2_start_8("xmm1", "xmm5", "3", "0") | |||
| @@ -756,7 +756,7 @@ snow_inner_add_yblock_sse2_accum_8("0", "136") | |||
| snow_inner_add_yblock_sse2_end_8 | |||
| } | |||
| static void inner_add_yblock_bw_16_obmc_32_sse2(uint8_t *obmc, const long obmc_stride, uint8_t * * block, int b_w, long b_h, | |||
| static void inner_add_yblock_bw_16_obmc_32_sse2(const uint8_t *obmc, const long obmc_stride, uint8_t * * block, int b_w, long b_h, | |||
| int src_x, int src_y, long src_stride, slice_buffer * sb, int add, uint8_t * dst8){ | |||
| snow_inner_add_yblock_sse2_header | |||
| snow_inner_add_yblock_sse2_start_16("xmm1", "xmm5", "3", "0") | |||
| @@ -868,7 +868,7 @@ snow_inner_add_yblock_sse2_end_16 | |||
| "rm"((long)(src_x<<2)),"m"(obmc),"a"(block),"m"((long)b_h),"m"((long)src_stride):\ | |||
| "%"REG_c"","%"REG_S"","%"REG_D"","%"REG_d""); | |||
| static void inner_add_yblock_bw_8_obmc_16_mmx(uint8_t *obmc, const long obmc_stride, uint8_t * * block, int b_w, long b_h, | |||
| static void inner_add_yblock_bw_8_obmc_16_mmx(const uint8_t *obmc, const long obmc_stride, uint8_t * * block, int b_w, long b_h, | |||
| int src_x, int src_y, long src_stride, slice_buffer * sb, int add, uint8_t * dst8){ | |||
| snow_inner_add_yblock_mmx_header | |||
| snow_inner_add_yblock_mmx_start("mm1", "mm5", "3", "0", "0") | |||
| @@ -879,7 +879,7 @@ snow_inner_add_yblock_mmx_mix("0", "0") | |||
| snow_inner_add_yblock_mmx_end("16") | |||
| } | |||
| static void inner_add_yblock_bw_16_obmc_32_mmx(uint8_t *obmc, const long obmc_stride, uint8_t * * block, int b_w, long b_h, | |||
| static void inner_add_yblock_bw_16_obmc_32_mmx(const uint8_t *obmc, const long obmc_stride, uint8_t * * block, int b_w, long b_h, | |||
| int src_x, int src_y, long src_stride, slice_buffer * sb, int add, uint8_t * dst8){ | |||
| snow_inner_add_yblock_mmx_header | |||
| snow_inner_add_yblock_mmx_start("mm1", "mm5", "3", "0", "0") | |||
| @@ -896,7 +896,7 @@ snow_inner_add_yblock_mmx_mix("32", "8") | |||
| snow_inner_add_yblock_mmx_end("32") | |||
| } | |||
| void ff_snow_inner_add_yblock_sse2(uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| void ff_snow_inner_add_yblock_sse2(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8){ | |||
| if (b_w == 16) | |||
| @@ -910,7 +910,7 @@ void ff_snow_inner_add_yblock_sse2(uint8_t *obmc, const int obmc_stride, uint8_t | |||
| ff_snow_inner_add_yblock(obmc, obmc_stride, block, b_w, b_h, src_x,src_y, src_stride, sb, add, dst8); | |||
| } | |||
| void ff_snow_inner_add_yblock_mmx(uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| void ff_snow_inner_add_yblock_mmx(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8){ | |||
| if (b_w == 16) | |||
| inner_add_yblock_bw_16_obmc_32_mmx(obmc, obmc_stride, block, b_w, b_h, src_x,src_y, src_stride, sb, add, dst8); | |||
| @@ -2521,16 +2521,16 @@ static void pred_block(SnowContext *s, uint8_t *dst, uint8_t *tmp, int stride, i | |||
| } | |||
| } | |||
| void ff_snow_inner_add_yblock(uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, | |||
| int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8){ | |||
| int y, x; | |||
| DWTELEM * dst; | |||
| for(y=0; y<b_h; y++){ | |||
| //FIXME ugly missue of obmc_stride | |||
| uint8_t *obmc1= obmc + y*obmc_stride; | |||
| uint8_t *obmc2= obmc1+ (obmc_stride>>1); | |||
| uint8_t *obmc3= obmc1+ obmc_stride*(obmc_stride>>1); | |||
| uint8_t *obmc4= obmc3+ (obmc_stride>>1); | |||
| const uint8_t *obmc1= obmc + y*obmc_stride; | |||
| const uint8_t *obmc2= obmc1+ (obmc_stride>>1); | |||
| const uint8_t *obmc3= obmc1+ obmc_stride*(obmc_stride>>1); | |||
| const uint8_t *obmc4= obmc3+ (obmc_stride>>1); | |||
| dst = slice_buffer_get_line(sb, src_y + y); | |||
| for(x=0; x<b_w; x++){ | |||
| int v= obmc1[x] * block[3][x + y*src_stride] | |||
| @@ -2687,10 +2687,10 @@ assert(src_stride > 2*MB_SIZE + 5); | |||
| }else | |||
| for(y=0; y<b_h; y++){ | |||
| //FIXME ugly missue of obmc_stride | |||
| uint8_t *obmc1= obmc + y*obmc_stride; | |||
| uint8_t *obmc2= obmc1+ (obmc_stride>>1); | |||
| uint8_t *obmc3= obmc1+ obmc_stride*(obmc_stride>>1); | |||
| uint8_t *obmc4= obmc3+ (obmc_stride>>1); | |||
| const uint8_t *obmc1= obmc + y*obmc_stride; | |||
| const uint8_t *obmc2= obmc1+ (obmc_stride>>1); | |||
| const uint8_t *obmc3= obmc1+ obmc_stride*(obmc_stride>>1); | |||
| const uint8_t *obmc4= obmc3+ (obmc_stride>>1); | |||
| for(x=0; x<b_w; x++){ | |||
| int v= obmc1[x] * block[3][x + y*src_stride] | |||
| +obmc2[x] * block[2][x + y*src_stride] | |||
| @@ -125,7 +125,7 @@ struct slice_buffer_s { | |||
| extern void ff_snow_vertical_compose97i(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTELEM *b3, DWTELEM *b4, DWTELEM *b5, int width); | |||
| extern void ff_snow_horizontal_compose97i(DWTELEM *b, int width); | |||
| extern void ff_snow_inner_add_yblock(uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8); | |||
| extern void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8); | |||
| #ifdef CONFIG_SNOW_ENCODER | |||
| int w53_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h); | |||