diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2015-01-28 12:20:05 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-01-28 16:13:16 +0100 |
commit | b3a4772834ed16d48ee0bd79f686581b2d0172e5 (patch) | |
tree | 0facc9aebbd99497790de9f3969fd9ef8aae545f /sys | |
parent | 8a5d2c561cdb38d49e9de9f933b48eef409412f7 (diff) | |
download | gstreamer-plugins-bad-b3a4772834ed16d48ee0bd79f686581b2d0172e5.tar.gz |
decklinkvideosink: Handle the clock returning GST_CLOCK_TIME_NONE properly
Diffstat (limited to 'sys')
-rw-r--r-- | sys/decklink/gstdecklinkvideosink.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp index daa0208d9..abaa5453e 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)); |