[FFmpeg-devel] [PATCH 2/2] avcodec/cavsdec: Check P/B frame mb decode which return error codes
Michael Niedermayer
michael at niedermayer.cc
Sun Aug 13 21:38:39 EEST 2017
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
libavcodec/cavsdec.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/libavcodec/cavsdec.c b/libavcodec/cavsdec.c
index 02b3d213a9..06c752735e 100644
--- a/libavcodec/cavsdec.c
+++ b/libavcodec/cavsdec.c
@@ -1090,10 +1090,12 @@ static int decode_pic(AVSContext *h)
} else {
mb_type = get_ue_golomb(&h->gb) + P_SKIP + h->skip_mode_flag;
if (mb_type > P_8X8)
- decode_mb_i(h, mb_type - P_8X8 - 1);
+ ret = decode_mb_i(h, mb_type - P_8X8 - 1);
else
decode_mb_p(h, mb_type);
}
+ if (ret < 0)
+ break;
} while (ff_cavs_next_mb(h));
} else { /* AV_PICTURE_TYPE_B */
do {
@@ -1102,14 +1104,16 @@ static int decode_pic(AVSContext *h)
if (h->skip_mode_flag && (skip_count < 0))
skip_count = get_ue_golomb(&h->gb);
if (h->skip_mode_flag && skip_count--) {
- decode_mb_b(h, B_SKIP);
+ ret = decode_mb_b(h, B_SKIP);
} else {
mb_type = get_ue_golomb(&h->gb) + B_SKIP + h->skip_mode_flag;
if (mb_type > B_8X8)
- decode_mb_i(h, mb_type - B_8X8 - 1);
+ ret = decode_mb_i(h, mb_type - B_8X8 - 1);
else
- decode_mb_b(h, mb_type);
+ ret = decode_mb_b(h, mb_type);
}
+ if (ret < 0)
+ break;
} while (ff_cavs_next_mb(h));
}
emms_c();
--
2.13.0
More information about the ffmpeg-devel
mailing list