From e734c3cf134d2c57b5ffaaee585eedb19cf9bb1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 15 Jan 2015 12:49:20 +0100 Subject: [PATCH] decklinkvideosink: Also consider max-lateness property value before dropping late frames --- sys/decklink/gstdecklinkvideosink.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp index 72d0797e86..fb70216d05 100644 --- a/sys/decklink/gstdecklinkvideosink.cpp +++ b/sys/decklink/gstdecklinkvideosink.cpp @@ -300,14 +300,16 @@ 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; + GstClockTime clock_running_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; latency = gst_base_sink_get_latency (GST_BASE_SINK_CAST (self)); + max_lateness = gst_base_sink_get_max_lateness (GST_BASE_SINK_CAST (self)); - if (clock_running_time > running_time + running_time_duration + latency) { + if (clock_running_time > + running_time + running_time_duration + latency + max_lateness) { GST_DEBUG_OBJECT (self, "Late buffer: %" GST_TIME_FORMAT " > %" GST_TIME_FORMAT, GST_TIME_ARGS (clock_running_time),