mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 15:51:11 +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/3819>
This commit is contained in:
parent
db2b357791
commit
1a41344345
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);
|
||||
}
|
||||
|
||||
/* 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)
|
||||
{
|
||||
|
@ -3105,7 +3105,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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue