Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2012-05-22 15:50:23 +0400
committerDiego Biurrun <diego@biurrun.de>2012-05-22 16:01:56 +0400
commitcc7fac9970c61f764cc9ca2a263c11fb1497dd28 (patch)
tree955920662475a227f067453180c9bd2af037faa3 /libavcodec
parentc89e428ed8c2c31396af2d18cab4342b7d82958f (diff)
dwt: return errors from ff_slice_buffer_init()
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/dwt.c7
-rw-r--r--libavcodec/dwt.h6
-rw-r--r--libavcodec/snowdec.c7
3 files changed, 13 insertions, 7 deletions
diff --git a/libavcodec/dwt.c b/libavcodec/dwt.c
index 675644dbe6..d3d4f3b545 100644
--- a/libavcodec/dwt.c
+++ b/libavcodec/dwt.c
@@ -22,9 +22,9 @@
#include "dsputil.h"
#include "dwt.h"
-void ff_slice_buffer_init(slice_buffer *buf, int line_count,
- int max_allocated_lines, int line_width,
- IDWTELEM *base_buffer)
+int ff_slice_buffer_init(slice_buffer *buf, int line_count,
+ int max_allocated_lines, int line_width,
+ IDWTELEM *base_buffer)
{
int i;
@@ -53,6 +53,7 @@ void ff_slice_buffer_init(slice_buffer *buf, int line_count,
}
buf->data_stack_top = max_allocated_lines - 1;
+ return 0;
}
IDWTELEM *ff_slice_buffer_load_line(slice_buffer *buf, int line)
diff --git a/libavcodec/dwt.h b/libavcodec/dwt.h
index 6c28447cab..9229928f33 100644
--- a/libavcodec/dwt.h
+++ b/libavcodec/dwt.h
@@ -137,9 +137,9 @@ typedef struct DWTContext {
: ff_slice_buffer_load_line((slice_buf), \
(line_num)))
-void ff_slice_buffer_init(slice_buffer *buf, int line_count,
- int max_allocated_lines, int line_width,
- IDWTELEM *base_buffer);
+int 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);
diff --git a/libavcodec/snowdec.c b/libavcodec/snowdec.c
index ef5205d972..62ef5f11f4 100644
--- a/libavcodec/snowdec.c
+++ b/libavcodec/snowdec.c
@@ -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
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++){
Plane *p= &s->plane[plane_index];