queue: Only calculate level if we have valid levels
authorEdward Hervey <edward@centricular.com>
Thu, 23 Nov 2017 14:28:39 +0000 (15:28 +0100)
committerEdward Hervey <bilboed@bilboed.com>
Thu, 23 Nov 2017 14:28:39 +0000 (15:28 +0100)
Doing calculations with GST_CLOCK_STIME_NONE would result in
completely bogus levels

plugins/elements/gstqueue.c

index 9c887c1..431dcdc 100644 (file)
@@ -547,7 +547,8 @@ update_time_level (GstQueue * queue)
   GST_LOG_OBJECT (queue, "sink %" GST_STIME_FORMAT ", src %" GST_STIME_FORMAT,
       GST_STIME_ARGS (sink_time), GST_STIME_ARGS (src_time));
 
-  if (sink_time >= src_time)
+  if (GST_CLOCK_STIME_IS_VALID (src_time)
+      && GST_CLOCK_STIME_IS_VALID (sink_time) && sink_time >= src_time)
     queue->cur_level.time = sink_time - src_time;
   else
     queue->cur_level.time = 0;