diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-09-18 09:47:06 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-10-14 09:57:07 +0200 |
commit | 7fe921d578782e446c7592d7a0be9bd54e68e6f8 (patch) | |
tree | baeec0aebd7069c7ca57e157e2713cac181a3bf9 | |
parent | acb4f166d77cbebf3d61fab50c468a26db0f03c8 (diff) | |
download | gstreamer-plugins-bad-7fe921d578782e446c7592d7a0be9bd54e68e6f8.tar.gz |
vtdec: Handle 0/1 framerates correctly by not calculating their frame duration
-rw-r--r-- | sys/applemedia/vtdec.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c index efe8e6ddb..0942165e1 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)); |