diff --git a/subprojects/gstreamer/libs/gst/base/gstaggregator.c b/subprojects/gstreamer/libs/gst/base/gstaggregator.c index 956c1c895d..4abb14247c 100644 --- a/subprojects/gstreamer/libs/gst/base/gstaggregator.c +++ b/subprojects/gstreamer/libs/gst/base/gstaggregator.c @@ -1636,7 +1636,7 @@ gst_aggregator_flush_start (GstAggregator * self, GstAggregatorPad * aggpad, PAD_FLUSH_UNLOCK (aggpad); } -/* Must be called with the the PAD_LOCK held */ +/* Must be called with the PAD_LOCK and OBJECT_LOCK held */ static void update_time_level (GstAggregatorPad * aggpad, gboolean head) { @@ -3101,7 +3101,9 @@ apply_buffer (GstAggregatorPad * aggpad, GstBuffer * buffer, gboolean head) else aggpad->priv->tail_position = timestamp; + GST_OBJECT_LOCK (aggpad); update_time_level (aggpad, head); + GST_OBJECT_UNLOCK (aggpad); } /*