Originally committed as revision 22523 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.6
@@ -22,7 +22,7 @@ | |||
#include "dsputil.h" | |||
#include "dwt.h" | |||
void slice_buffer_init(slice_buffer * buf, int line_count, int max_allocated_lines, int line_width, IDWTELEM * base_buffer) | |||
void ff_slice_buffer_init(slice_buffer * buf, int line_count, int max_allocated_lines, int line_width, IDWTELEM * base_buffer) | |||
{ | |||
int i; | |||
@@ -40,7 +40,7 @@ void slice_buffer_init(slice_buffer * buf, int line_count, int max_allocated_lin | |||
buf->data_stack_top = max_allocated_lines - 1; | |||
} | |||
IDWTELEM * slice_buffer_load_line(slice_buffer * buf, int line) | |||
IDWTELEM * ff_slice_buffer_load_line(slice_buffer * buf, int line) | |||
{ | |||
IDWTELEM * buffer; | |||
@@ -56,7 +56,7 @@ IDWTELEM * slice_buffer_load_line(slice_buffer * buf, int line) | |||
return buffer; | |||
} | |||
void slice_buffer_release(slice_buffer * buf, int line) | |||
void ff_slice_buffer_release(slice_buffer * buf, int line) | |||
{ | |||
IDWTELEM * buffer; | |||
@@ -69,19 +69,19 @@ void slice_buffer_release(slice_buffer * buf, int line) | |||
buf->line[line] = NULL; | |||
} | |||
void slice_buffer_flush(slice_buffer * buf) | |||
void ff_slice_buffer_flush(slice_buffer * buf) | |||
{ | |||
int i; | |||
for(i = 0; i < buf->line_count; i++){ | |||
if (buf->line[i]) | |||
slice_buffer_release(buf, i); | |||
ff_slice_buffer_release(buf, i); | |||
} | |||
} | |||
void slice_buffer_destroy(slice_buffer * buf) | |||
void ff_slice_buffer_destroy(slice_buffer * buf) | |||
{ | |||
int i; | |||
slice_buffer_flush(buf); | |||
ff_slice_buffer_flush(buf); | |||
for(i = buf->data_count - 1; i >= 0; i--){ | |||
av_freep(&buf->data_stack[i]); | |||
@@ -817,11 +817,11 @@ static int w97_16_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int | |||
return w_c(v, pix1, pix2, line_size, 16, h, 0); | |||
} | |||
int w53_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h){ | |||
int ff_w53_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h){ | |||
return w_c(v, pix1, pix2, line_size, 32, h, 1); | |||
} | |||
int w97_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h){ | |||
int ff_w97_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h){ | |||
return w_c(v, pix1, pix2, line_size, 32, h, 0); | |||
} | |||
@@ -126,21 +126,21 @@ typedef struct DWTContext { | |||
#define W_DS 9 | |||
#endif | |||
#define slice_buffer_get_line(slice_buf, line_num) ((slice_buf)->line[line_num] ? (slice_buf)->line[line_num] : slice_buffer_load_line((slice_buf), (line_num))) | |||
//#define slice_buffer_get_line(slice_buf, line_num) (slice_buffer_load_line((slice_buf), (line_num))) | |||
#define slice_buffer_get_line(slice_buf, line_num) ((slice_buf)->line[line_num] ? (slice_buf)->line[line_num] : ff_slice_buffer_load_line((slice_buf), (line_num))) | |||
//#define slice_buffer_get_line(slice_buf, line_num) (ff_slice_buffer_load_line((slice_buf), (line_num))) | |||
void slice_buffer_init(slice_buffer * buf, int line_count, int max_allocated_lines, int line_width, IDWTELEM * base_buffer); | |||
void slice_buffer_release(slice_buffer * buf, int line); | |||
void slice_buffer_flush(slice_buffer * buf); | |||
void slice_buffer_destroy(slice_buffer * buf); | |||
IDWTELEM * slice_buffer_load_line(slice_buffer * buf, int line); | |||
void ff_slice_buffer_init(slice_buffer * buf, int line_count, int max_allocated_lines, int line_width, IDWTELEM * base_buffer); | |||
void ff_slice_buffer_release(slice_buffer * buf, int line); | |||
void ff_slice_buffer_flush(slice_buffer * buf); | |||
void ff_slice_buffer_destroy(slice_buffer * buf); | |||
IDWTELEM * ff_slice_buffer_load_line(slice_buffer * buf, int line); | |||
void ff_snow_vertical_compose97i(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width); | |||
void ff_snow_horizontal_compose97i(IDWTELEM *b, int width); | |||
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 w53_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h); | |||
int w97_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h); | |||
int ff_w53_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h); | |||
int ff_w97_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h); | |||
void ff_spatial_dwt(int *buffer, int width, int height, int stride, int type, int decomposition_count); | |||
@@ -2081,8 +2081,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac | |||
common_init_after_header(avctx); | |||
// realloc slice buffer for the case that spatial_decomposition_count changed | |||
slice_buffer_destroy(&s->sb); | |||
slice_buffer_init(&s->sb, s->plane[0].height, (MB_SIZE >> s->block_max_depth) + s->spatial_decomposition_count * 8 + 1, s->plane[0].width, s->spatial_idwt_buffer); | |||
ff_slice_buffer_destroy(&s->sb); | |||
ff_slice_buffer_init(&s->sb, s->plane[0].height, (MB_SIZE >> s->block_max_depth) + s->spatial_decomposition_count * 8 + 1, s->plane[0].width, s->spatial_idwt_buffer); | |||
for(plane_index=0; plane_index<3; plane_index++){ | |||
Plane *p= &s->plane[plane_index]; | |||
@@ -2199,10 +2199,10 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac | |||
y = FFMIN(p->height, slice_starty); | |||
end_y = FFMIN(p->height, slice_h); | |||
while(y < end_y) | |||
slice_buffer_release(&s->sb, y++); | |||
ff_slice_buffer_release(&s->sb, y++); | |||
} | |||
slice_buffer_flush(&s->sb); | |||
ff_slice_buffer_flush(&s->sb); | |||
} | |||
} | |||
@@ -2228,7 +2228,7 @@ static av_cold int decode_end(AVCodecContext *avctx) | |||
{ | |||
SnowContext *s = avctx->priv_data; | |||
slice_buffer_destroy(&s->sb); | |||
ff_slice_buffer_destroy(&s->sb); | |||
common_end(s); | |||
@@ -2829,9 +2829,9 @@ static int get_block_rd(SnowContext *s, int mb_x, int mb_y, int plane_index, con | |||
* to improve the score of the whole frame, thus iterative motion | |||
* estimation does not always converge. */ | |||
if(s->avctx->me_cmp == FF_CMP_W97) | |||
distortion = w97_32_c(&s->m, src + sx + sy*ref_stride, dst + sx + sy*ref_stride, ref_stride, 32); | |||
distortion = ff_w97_32_c(&s->m, src + sx + sy*ref_stride, dst + sx + sy*ref_stride, ref_stride, 32); | |||
else if(s->avctx->me_cmp == FF_CMP_W53) | |||
distortion = w53_32_c(&s->m, src + sx + sy*ref_stride, dst + sx + sy*ref_stride, ref_stride, 32); | |||
distortion = ff_w53_32_c(&s->m, src + sx + sy*ref_stride, dst + sx + sy*ref_stride, ref_stride, 32); | |||
else{ | |||
distortion = 0; | |||
for(i=0; i<4; i++){ | |||