[FFmpeg-cvslog] avcodec/cavsdec: Check P/B frame mb decode which return error codes
Michael Niedermayer
git at videolan.org
Tue Aug 15 02:30:15 EEST 2017
ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Sun Aug 13 18:44:25 2017 +0200| [b9ce43625c43fe56aa2db726e147929380411790] | committer: Michael Niedermayer
avcodec/cavsdec: Check P/B frame mb decode which return error codes
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b9ce43625c43fe56aa2db726e147929380411790
---
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();
More information about the ffmpeg-cvslog
mailing list