aggregator: Query latency on first incoming buffer.
authorOlivier Crête <olivier.crete@collabora.com>
Sat, 7 Mar 2015 02:12:52 +0000 (21:12 -0500)
committerOlivier Crête <olivier.crete@collabora.com>
Thu, 2 Apr 2015 02:39:26 +0000 (22:39 -0400)
And keep on querying upstream until we get a reply.

Also, the _get_latency_unlocked() method required being calld
with a private lock, so removed the _unlocked() variant from the API.
And it now returns GST_CLOCK_TIME_NONE when the element is not live as
we think that 0 upstream latency is possible.

https://bugzilla.gnome.org/show_bug.cgi?id=745768

gst-libs/gst/video/gstvideoaggregator.c

index 272a35b..b1cfc83 100644 (file)
@@ -880,9 +880,11 @@ gst_videoaggregator_update_qos (GstVideoAggregator * vagg, gdouble proportion,
       GST_TIME_FORMAT, proportion, (diff < 0) ? "-" : "",
       GST_TIME_ARGS (ABS (diff)), GST_TIME_ARGS (timestamp));
 
+  live =
+      GST_CLOCK_TIME_IS_VALID (gst_aggregator_get_latency (GST_AGGREGATOR
+          (vagg)));
+
   GST_OBJECT_LOCK (vagg);
-  gst_aggregator_get_latency_unlocked (GST_AGGREGATOR (vagg), &live, NULL,
-      NULL);
 
   vagg->priv->proportion = proportion;
   if (G_LIKELY (timestamp != GST_CLOCK_TIME_NONE)) {