mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 01:00:37 +00:00
aggregator: Always lock aggpad around update_time_level
`aggpad->segment` is protected by the `aggpad`'s object lock. We need to take the lock before calling `update_time_level`. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/611>
This commit is contained in:
parent
53707dc014
commit
08d4b0051a
1 changed files with 3 additions and 1 deletions
|
@ -1636,7 +1636,7 @@ gst_aggregator_flush_start (GstAggregator * self, GstAggregatorPad * aggpad,
|
||||||
PAD_FLUSH_UNLOCK (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
|
static void
|
||||||
update_time_level (GstAggregatorPad * aggpad, gboolean head)
|
update_time_level (GstAggregatorPad * aggpad, gboolean head)
|
||||||
{
|
{
|
||||||
|
@ -3101,7 +3101,9 @@ apply_buffer (GstAggregatorPad * aggpad, GstBuffer * buffer, gboolean head)
|
||||||
else
|
else
|
||||||
aggpad->priv->tail_position = timestamp;
|
aggpad->priv->tail_position = timestamp;
|
||||||
|
|
||||||
|
GST_OBJECT_LOCK (aggpad);
|
||||||
update_time_level (aggpad, head);
|
update_time_level (aggpad, head);
|
||||||
|
GST_OBJECT_UNLOCK (aggpad);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue