From 41d26673d676eb8ad424211abfe0116b281182c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Wed, 21 Jan 2015 19:43:12 -0500 Subject: [PATCH] aggregator: Document locking for gst_aggregator_get_latency_unlocked() Renamed it to _unlocked() to make it clear. https://bugzilla.gnome.org/show_bug.cgi?id=742684 --- gst-libs/gst/base/gstaggregator.c | 10 +++++++--- gst-libs/gst/base/gstaggregator.h | 2 +- gst-libs/gst/video/gstvideoaggregator.c | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gst-libs/gst/base/gstaggregator.c b/gst-libs/gst/base/gstaggregator.c index a22531076b..73a655f2ac 100644 --- a/gst-libs/gst/base/gstaggregator.c +++ b/gst-libs/gst/base/gstaggregator.c @@ -524,7 +524,9 @@ gst_aggregator_wait_and_check (GstAggregator * self, gboolean * timeout) SRC_STREAM_LOCK (self); - gst_aggregator_get_latency (self, &live, &latency_min, &latency_max); + GST_OBJECT_LOCK (self); + gst_aggregator_get_latency_unlocked (self, &live, &latency_min, &latency_max); + GST_OBJECT_UNLOCK (self); if (gst_aggregator_check_pads_ready (self)) { GST_DEBUG_OBJECT (self, "all pads have data"); @@ -1111,7 +1113,7 @@ gst_aggregator_query_sink_latency_foreach (GstAggregator * self, } /** - * gst_aggregator_get_latency: + * gst_aggregator_get_latency_unlocked: * @self: a #GstAggregator * @live: (out) (allow-none): whether @self is live * @min_latency: (out) (allow-none): the configured minimum latency of @self @@ -1121,9 +1123,11 @@ gst_aggregator_query_sink_latency_foreach (GstAggregator * self, * query. * * Typically only called by subclasses. + * + * MUST be called with the object lock held. */ void -gst_aggregator_get_latency (GstAggregator * self, gboolean * live, +gst_aggregator_get_latency_unlocked (GstAggregator * self, gboolean * live, GstClockTime * min_latency, GstClockTime * max_latency) { GstClockTime our_latency; diff --git a/gst-libs/gst/base/gstaggregator.h b/gst-libs/gst/base/gstaggregator.h index a4ede1d89e..636e84e362 100644 --- a/gst-libs/gst/base/gstaggregator.h +++ b/gst-libs/gst/base/gstaggregator.h @@ -271,7 +271,7 @@ gboolean gst_aggregator_iterate_sinkpads (GstAggregator GstAggregatorPadForeachFunc func, gpointer user_data); -void gst_aggregator_get_latency (GstAggregator * self, +void gst_aggregator_get_latency_unlocked (GstAggregator * self, gboolean * live, GstClockTime * min, GstClockTime * max); diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index b16f1c100b..9cd233c2d3 100644 --- a/gst-libs/gst/video/gstvideoaggregator.c +++ b/gst-libs/gst/video/gstvideoaggregator.c @@ -879,7 +879,8 @@ gst_videoaggregator_update_qos (GstVideoAggregator * vagg, gdouble proportion, GST_TIME_ARGS (ABS (diff)), GST_TIME_ARGS (timestamp)); GST_OBJECT_LOCK (vagg); - gst_aggregator_get_latency (GST_AGGREGATOR (vagg), &live, NULL, NULL); + gst_aggregator_get_latency_unlocked (GST_AGGREGATOR (vagg), &live, NULL, + NULL); vagg->priv->proportion = proportion; if (G_LIKELY (timestamp != GST_CLOCK_TIME_NONE)) {