From b3a4772834ed16d48ee0bd79f686581b2d0172e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 28 Jan 2015 12:20:05 +0100 Subject: [PATCH] decklinkvideosink: Handle the clock returning GST_CLOCK_TIME_NONE properly --- sys/decklink/gstdecklinkvideosink.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp index daa0208d97..abaa5453e5 100644 --- a/sys/decklink/gstdecklinkvideosink.cpp +++ b/sys/decklink/gstdecklinkvideosink.cpp @@ -422,11 +422,13 @@ gst_decklink_video_sink_prepare (GstBaseSink * bsink, GstBuffer * buffer) // potentially overflowing the internal queue of the hardware clock = gst_element_get_clock (GST_ELEMENT_CAST (self)); if (clock) { - GstClockTime clock_running_time, latency, max_lateness; + GstClockTime clock_running_time, base_time, clock_time, latency, + max_lateness; - clock_running_time = gst_element_get_base_time (GST_ELEMENT_CAST (self)); - if (clock_running_time != GST_CLOCK_TIME_NONE) { - clock_running_time = gst_clock_get_time (clock) - clock_running_time; + base_time = gst_element_get_base_time (GST_ELEMENT_CAST (self)); + clock_time = gst_clock_get_time (clock); + if (base_time != GST_CLOCK_TIME_NONE && clock_time != GST_CLOCK_TIME_NONE) { + clock_running_time = clock_time - base_time; latency = gst_base_sink_get_latency (GST_BASE_SINK_CAST (self)); max_lateness = gst_base_sink_get_max_lateness (GST_BASE_SINK_CAST (self));