Commit cc7fac99 authored by Diego Biurrun's avatar Diego Biurrun

dwt: return errors from ff_slice_buffer_init()

parent c89e428e
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
#include "dsputil.h" #include "dsputil.h"
#include "dwt.h" #include "dwt.h"
void ff_slice_buffer_init(slice_buffer *buf, int line_count, int ff_slice_buffer_init(slice_buffer *buf, int line_count,
int max_allocated_lines, int line_width, int max_allocated_lines, int line_width,
IDWTELEM *base_buffer) IDWTELEM *base_buffer)
{ {
int i; int i;
...@@ -53,6 +53,7 @@ void ff_slice_buffer_init(slice_buffer *buf, int line_count, ...@@ -53,6 +53,7 @@ void ff_slice_buffer_init(slice_buffer *buf, int line_count,
} }
buf->data_stack_top = max_allocated_lines - 1; buf->data_stack_top = max_allocated_lines - 1;
return 0;
} }
IDWTELEM *ff_slice_buffer_load_line(slice_buffer *buf, int line) IDWTELEM *ff_slice_buffer_load_line(slice_buffer *buf, int line)
......
...@@ -137,9 +137,9 @@ typedef struct DWTContext { ...@@ -137,9 +137,9 @@ typedef struct DWTContext {
: ff_slice_buffer_load_line((slice_buf), \ : ff_slice_buffer_load_line((slice_buf), \
(line_num))) (line_num)))
void ff_slice_buffer_init(slice_buffer *buf, int line_count, int ff_slice_buffer_init(slice_buffer *buf, int line_count,
int max_allocated_lines, int line_width, int max_allocated_lines, int line_width,
IDWTELEM *base_buffer); IDWTELEM *base_buffer);
void ff_slice_buffer_release(slice_buffer *buf, int line); void ff_slice_buffer_release(slice_buffer *buf, int line);
void ff_slice_buffer_flush(slice_buffer *buf); void ff_slice_buffer_flush(slice_buffer *buf);
void ff_slice_buffer_destroy(slice_buffer *buf); void ff_slice_buffer_destroy(slice_buffer *buf);
......
...@@ -396,7 +396,12 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac ...@@ -396,7 +396,12 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
// realloc slice buffer for the case that spatial_decomposition_count changed // realloc slice buffer for the case that spatial_decomposition_count changed
ff_slice_buffer_destroy(&s->sb); 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); if ((res = 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)) < 0)
return res;
for(plane_index=0; plane_index<3; plane_index++){ for(plane_index=0; plane_index<3; plane_index++){
Plane *p= &s->plane[plane_index]; Plane *p= &s->plane[plane_index];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment