diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-09-16 14:19:41 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-09-24 00:00:39 +0200 |
commit | 73f47846bd9bf62fed3b9d3f748b858ac7f0a674 (patch) | |
tree | 62fea0664fee82976257ca911b2944c68e09ce93 /libavcodec/msvideo1enc.c | |
parent | ad27326e2b51ba2566bd7b72bea8e8031c2bc4c5 (diff) | |
download | ffmpeg-73f47846bd9bf62fed3b9d3f748b858ac7f0a674.tar.gz |
avcodec/msvideo1enc: Check all calls to avpriv_elbg_do()
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec/msvideo1enc.c')
-rw-r--r-- | libavcodec/msvideo1enc.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/libavcodec/msvideo1enc.c b/libavcodec/msvideo1enc.c index d43013ba5f..79810ec8c3 100644 --- a/libavcodec/msvideo1enc.c +++ b/libavcodec/msvideo1enc.c @@ -118,8 +118,10 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, } // try to find optimal value to fill whole 4x4 block score = 0; - avpriv_elbg_do(&c->elbg, c->block, 3, 16, c->avg, - 1, 1, c->output, &c->rnd); + ret = avpriv_elbg_do(&c->elbg, c->block, 3, 16, c->avg, + 1, 1, c->output, &c->rnd); + if (ret < 0) + return ret; if(c->avg[0] == 1) // red component = 1 will be written as skip code c->avg[0] = 0; for(j = 0; j < 4; j++){ @@ -138,8 +140,10 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, } // search for optimal filling of 2-color block score = 0; - avpriv_elbg_do(&c->elbg, c->block, 3, 16, c->codebook, - 2, 1, c->output, &c->rnd); + ret = avpriv_elbg_do(&c->elbg, c->block, 3, 16, c->codebook, + 2, 1, c->output, &c->rnd); + if (ret < 0) + return ret; // last output value should be always 1, swap codebooks if needed if(!c->output[15]){ for(i = 0; i < 3; i++) @@ -164,9 +168,11 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, // search for optimal filling of 2-color 2x2 subblocks score = 0; for(i = 0; i < 4; i++){ - avpriv_elbg_do(&c->elbg, c->block2 + i * 4 * 3, 3, 4, - c->codebook2 + i * 2 * 3, 2, 1, - c->output2 + i*4, &c->rnd); + ret = avpriv_elbg_do(&c->elbg, c->block2 + i * 4 * 3, 3, 4, + c->codebook2 + i * 2 * 3, 2, 1, + c->output2 + i * 4, &c->rnd); + if (ret < 0) + return ret; } // last value should be always 1, swap codebooks if needed if(!c->output2[15]){ |