summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-09-18 09:47:06 +0300
committerSebastian Dröge <sebastian@centricular.com>2014-10-14 09:57:07 +0200
commit7fe921d578782e446c7592d7a0be9bd54e68e6f8 (patch)
treebaeec0aebd7069c7ca57e157e2713cac181a3bf9
parentacb4f166d77cbebf3d61fab50c468a26db0f03c8 (diff)
downloadgstreamer-plugins-bad-7fe921d578782e446c7592d7a0be9bd54e68e6f8.tar.gz
vtdec: Handle 0/1 framerates correctly by not calculating their frame duration
-rw-r--r--sys/applemedia/vtdec.c12
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));