From 1aa128091a64dfac73eb3459c4795f0a1c1e5e0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 20 Nov 2014 09:41:43 +0100 Subject: vtdec: Fix divide by zero in the picture buffer length calculation --- sys/applemedia/vtdec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c index 4aa26cf99..bcef530bd 100644 --- a/sys/applemedia/vtdec.c +++ b/sys/applemedia/vtdec.c @@ -726,8 +726,8 @@ compute_h264_decode_picture_buffer_length (GstVtdec * vtdec, int dpb_mb_size = 16; int max_dpb_size_frames = 16; int max_dpb_mb_s = -1; - int width_in_mb_s = vtdec->video_info.width / dpb_mb_size; - int height_in_mb_s = vtdec->video_info.height / dpb_mb_size; + int width_in_mb_s = GST_ROUND_UP_16 (vtdec->video_info.width) / dpb_mb_size; + int height_in_mb_s = GST_ROUND_UP_16 (vtdec->video_info.height) / dpb_mb_size; *length = 0; @@ -735,6 +735,9 @@ compute_h264_decode_picture_buffer_length (GstVtdec * vtdec, &profile, &level)) return FALSE; + if (vtdec->video_info.width == 0 || vtdec->video_info.height == 0) + return FALSE; + max_dpb_mb_s = get_dpb_max_mb_s_from_level (vtdec, level); if (max_dpb_mb_s == -1) { GST_ELEMENT_ERROR (vtdec, STREAM, DECODE, (NULL), -- cgit v1.2.1