Browse Source

avcodec/clearvideo: Do not lose the return code of decode_mb()

Fixes CID1401671

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n3.3
Michael Niedermayer 8 years ago
parent
commit
fe46d92c15
1 changed files with 5 additions and 2 deletions
  1. +5
    -2
      libavcodec/clearvideo.c

+ 5
- 2
libavcodec/clearvideo.c View File

@@ -281,6 +281,7 @@ static int clv_decode_frame(AVCodecContext *avctx, void *data,
uint32_t frame_type;
int i, j;
int ret;
int mb_ret = 0;

bytestream2_init(&gb, buf, buf_size);
if (avctx->codec_tag == MKTAG('C','L','V','1')) {
@@ -312,7 +313,9 @@ static int clv_decode_frame(AVCodecContext *avctx, void *data,

for (j = 0; j < c->mb_height; j++) {
for (i = 0; i < c->mb_width; i++) {
ret |= decode_mb(c, i, j);
ret = decode_mb(c, i, j);
if (ret < 0)
mb_ret = ret;
}
}
} else {
@@ -323,7 +326,7 @@ static int clv_decode_frame(AVCodecContext *avctx, void *data,

*got_frame = 1;

return ret < 0 ? ret : buf_size;
return mb_ret < 0 ? mb_ret : buf_size;
}

static av_cold int clv_decode_init(AVCodecContext *avctx)


Loading…
Cancel
Save