mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-23 04:24:35 +02:00
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>
This commit is contained in:
parent
2a68d3b1a5
commit
fe46d92c15
@ -281,6 +281,7 @@ static int clv_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
uint32_t frame_type;
|
uint32_t frame_type;
|
||||||
int i, j;
|
int i, j;
|
||||||
int ret;
|
int ret;
|
||||||
|
int mb_ret = 0;
|
||||||
|
|
||||||
bytestream2_init(&gb, buf, buf_size);
|
bytestream2_init(&gb, buf, buf_size);
|
||||||
if (avctx->codec_tag == MKTAG('C','L','V','1')) {
|
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 (j = 0; j < c->mb_height; j++) {
|
||||||
for (i = 0; i < c->mb_width; i++) {
|
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 {
|
} else {
|
||||||
@ -323,7 +326,7 @@ static int clv_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
|
|
||||||
*got_frame = 1;
|
*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)
|
static av_cold int clv_decode_init(AVCodecContext *avctx)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user