* is enabled */
if (pad != active_sinkpad && !sel->select_all)
forward = FALSE;
+ GST_INPUT_SELECTOR_UNLOCK (sel);
if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad)
g_object_notify (G_OBJECT (sel), "active-pad");
- GST_INPUT_SELECTOR_UNLOCK (sel);
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_FLUSH_START:
GST_DEBUG_OBJECT (pad, "received tags %" GST_PTR_FORMAT, newtags);
GST_OBJECT_UNLOCK (selpad);
- GST_INPUT_SELECTOR_LOCK (sel);
g_object_notify (G_OBJECT (selpad), "tags");
- GST_INPUT_SELECTOR_UNLOCK (sel);
break;
}
case GST_EVENT_EOS:
if (pad != active_sinkpad)
goto not_active;
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+
if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad)
g_object_notify (G_OBJECT (sel), "active-pad");
- GST_INPUT_SELECTOR_UNLOCK (sel);
-
result = gst_pad_alloc_buffer (sel->srcpad, offset, size, caps, buf);
done:
selpad->segment_pending = FALSE;
}
+ GST_INPUT_SELECTOR_UNLOCK (sel);
if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad)
g_object_notify (G_OBJECT (sel), "active-pad");
- GST_INPUT_SELECTOR_UNLOCK (sel);
if (close_event)
gst_pad_push_event (sel->srcpad, close_event);
self->blocked = FALSE;
GST_INPUT_SELECTOR_BROADCAST (self);
+ GST_INPUT_SELECTOR_UNLOCK (self);
if (changed)
g_object_notify (G_OBJECT (self), "active-pad");
- GST_INPUT_SELECTOR_UNLOCK (self);
}
static gboolean