https://bugzilla.gnome.org/show_bug.cgi?id=742684
{
GstAggregatorPadClass *klass = GST_AGGREGATOR_PAD_GET_CLASS (aggpad);
+ PAD_LOCK (aggpad);
aggpad->eos = FALSE;
aggpad->priv->flushing = FALSE;
+ PAD_UNLOCK (aggpad);
if (klass->flush)
return klass->flush (aggpad, agg);
for (l = sinkpads; l != NULL; l = l->next) {
pad = l->data;
- if (pad->buffer == NULL && !pad->eos)
+ PAD_LOCK (pad);
+ if (pad->buffer == NULL && !pad->eos) {
+ GST_OBJECT_UNLOCK (pad);
goto pad_not_ready;
+ }
+ PAD_UNLOCK (pad);
+
}
GST_OBJECT_UNLOCK (self);
{
GstPad parent;
+ /* Protected by the pad's object lock */
GstBuffer * buffer;
GstSegment segment;
gboolean eos;