diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2015-03-06 21:12:52 -0500 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2015-04-01 22:39:26 -0400 |
commit | 5a6024850c2b6bb4e235ce2c71a127b2ea9871a5 (patch) | |
tree | c03c2e7a8427b6107530786295f1df5b335ea14f /gst-libs/gst/video | |
parent | 34a921c31b4be5290b8841fba6bb24ee1b309952 (diff) | |
download | gstreamer-plugins-bad-5a6024850c2b6bb4e235ce2c71a127b2ea9871a5.tar.gz |
aggregator: Query latency on first incoming buffer.
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
Diffstat (limited to 'gst-libs/gst/video')
-rw-r--r-- | gst-libs/gst/video/gstvideoaggregator.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index 272a35bba..b1cfc835a 100644 --- a/gst-libs/gst/video/gstvideoaggregator.c +++ b/gst-libs/gst/video/gstvideoaggregator.c @@ -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)) { |