---
libavcodec/snow.c | 10 ++++++++--
libavcodec/snowdec.c | 7 ++++++-
libavcodec/snowenc.c | 7 +++++--
3 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/libavcodec/snow.c b/libavcodec/snow.c
index 821b81b..ee9c998 100644
--- a/libavcodec/snow.c
+++ b/libavcodec/snow.c
@@ -394,7 +394,7 @@ mca( 8, 8,8)
av_cold int ff_snow_common_init(AVCodecContext *avctx){
SnowContext *s = avctx->priv_data;
int width, height;
- int i, j;
+ int i, j, ret;
s->avctx= avctx;
s->max_ref_frames=1; //just make sure its not an invalid value in case of
no initial keyframe
@@ -456,8 +456,14 @@ av_cold int ff_snow_common_init(AVCodecContext *avctx){
for(j=0; j<MAX_REF_FRAMES; j++)
ff_scale_mv_ref[i][j] = 256*(i+1)/(j+1);
- s->avctx->get_buffer(s->avctx, &s->mconly_picture);
+ if ((ret = s->avctx->get_buffer(s->avctx, &s->mconly_picture)) < 0) {
+ av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed\n");
+ return ret;
+ }
s->scratchbuf = av_malloc(s->mconly_picture.linesize[0]*7*MB_SIZE);
+ if (!s->spatial_idwt_buffer || !s->spatial_dwt_buffer ||
+ !s->temp_dwt_buffer || !s->temp_idwt_buffer || !s->scratchbuf)
+ return AVERROR(ENOMEM);
return 0;
}
diff --git a/libavcodec/snowdec.c b/libavcodec/snowdec.c
index 5dec277..9ea8c49 100644
--- a/libavcodec/snowdec.c
+++ b/libavcodec/snowdec.c
@@ -354,9 +354,14 @@ static int decode_header(SnowContext *s){
static av_cold int decode_init(AVCodecContext *avctx)
{
+ int ret;
+
avctx->pix_fmt= PIX_FMT_YUV420P;
- ff_snow_common_init(avctx);
+ if ((ret = ff_snow_common_init(avctx)) < 0) {
+ ff_snow_common_end(avctx->priv_data);
+ return ret;
+ }
return 0;
}
diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c
index 7e3b68f..e584785 100644
--- a/libavcodec/snowenc.c
+++ b/libavcodec/snowenc.c
@@ -155,7 +155,7 @@ static void dwt_quantize(SnowContext *s, Plane *p, DWTELEM
*buffer, int width, i
static av_cold int encode_init(AVCodecContext *avctx)
{
SnowContext *s = avctx->priv_data;
- int plane_index;
+ int plane_index, ret;
if(avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL){
av_log(avctx, AV_LOG_ERROR, "This codec is under development, files
encoded with it may not be decodable with future versions!!!\n"
@@ -184,7 +184,10 @@ static av_cold int encode_init(AVCodecContext *avctx)
s->plane[plane_index].fast_mc= 1;
}
- ff_snow_common_init(avctx);
+ if ((ret = ff_snow_common_init(avctx)) < 0) {
+ ff_snow_common_end(avctx->priv_data);
+ return ret;
+ }
ff_snow_alloc_blocks(s);
s->version=0;
--
1.7.9.4
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel