From e653068bc2b16d30ba18b5c0ea8c7d1c83ade70e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 18 Sep 2014 09:47:06 +0300 Subject: [PATCH] vtdec: Handle 0/1 framerates correctly by not calculating their frame duration --- sys/applemedia/vtdec.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c index efe8e6ddb7..0942165e1b 100644 --- a/sys/applemedia/vtdec.c +++ b/sys/applemedia/vtdec.c @@ -750,9 +750,17 @@ compute_h264_decode_picture_buffer_length (GstVtdec * vtdec, static void gst_vtdec_set_latency (GstVtdec * vtdec) { - GstClockTime frame_duration = gst_util_uint64_scale (GST_SECOND, + GstClockTime frame_duration; + GstClockTime latency; + + if (vtdec->video_info.fps_n == 0) { + GST_INFO_OBJECT (vtdec, "Framerate not known, can't set latency"); + return; + } + + duration = gst_util_uint64_scale (GST_SECOND, vtdec->video_info.fps_d, vtdec->video_info.fps_n); - GstClockTime latency = frame_duration * vtdec->reorder_queue_length; + latency = frame_duration * vtdec->reorder_queue_length; GST_INFO_OBJECT (vtdec, "setting latency frames:%d time:%" GST_TIME_FORMAT, vtdec->reorder_queue_length, GST_TIME_ARGS (latency));