Revert "pad: Don't drop LATENCY queries with default implementation"
authorSebastian Dröge <sebastian@centricular.com>
Fri, 31 Aug 2018 09:12:13 +0000 (12:12 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Fri, 31 Aug 2018 09:16:43 +0000 (12:16 +0300)
This reverts commit 794944f779f954375fc74a3fffcc2067bba6a3e5.

Accumulating non-live latency values generally makes no sense and often
gives invalid results with min>max

gst/gstpad.c

index 3c363ad..3e177f2 100644 (file)
@@ -3242,7 +3242,6 @@ done:
 /* Default latency implementation */
 typedef struct
 {
-  guint count;
   gboolean live;
   GstClockTime min, max;
 } LatencyFoldData;
@@ -3274,8 +3273,7 @@ query_latency_default_fold (const GValue * item, GValue * ret,
     GST_LOG_OBJECT (pad, "got latency live:%s min:%" G_GINT64_FORMAT
         " max:%" G_GINT64_FORMAT, live ? "true" : "false", min, max);
 
-    /* FIXME : Why do we only take values into account if it's live ? */
-    if (live || fold_data->count == 0) {
+    if (live) {
       if (min > fold_data->min)
         fold_data->min = min;
 
@@ -3284,9 +3282,8 @@ query_latency_default_fold (const GValue * item, GValue * ret,
       else if (max < fold_data->max)
         fold_data->max = max;
 
-      fold_data->live = live;
+      fold_data->live = TRUE;
     }
-    fold_data->count += 1;
   } else if (peer) {
     GST_DEBUG_OBJECT (pad, "latency query failed");
     g_value_set_boolean (ret, FALSE);
@@ -3317,7 +3314,6 @@ gst_pad_query_latency_default (GstPad * pad, GstQuery * query)
   g_value_init (&ret, G_TYPE_BOOLEAN);
 
 retry:
-  fold_data.count = 0;
   fold_data.live = FALSE;
   fold_data.min = 0;
   fold_data.max = GST_CLOCK_TIME_NONE;