Revert "inputselector: Protect g_object_notify() with the object's mutex"

This reverts commit a37426c41c, it's
causing deadlocks with playbin2.
This commit is contained in:
Sebastian Dröge 2010-01-25 12:22:17 +01:00
parent a37426c41c
commit fcf2668b20

View file

@ -357,10 +357,10 @@ gst_selector_pad_event (GstPad * pad, GstEvent * event)
* is enabled */ * is enabled */
if (pad != active_sinkpad && !sel->select_all) if (pad != active_sinkpad && !sel->select_all)
forward = FALSE; forward = FALSE;
GST_INPUT_SELECTOR_UNLOCK (sel);
if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad)
g_object_notify (G_OBJECT (sel), "active-pad"); g_object_notify (G_OBJECT (sel), "active-pad");
GST_INPUT_SELECTOR_UNLOCK (sel);
switch (GST_EVENT_TYPE (event)) { switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_FLUSH_START: case GST_EVENT_FLUSH_START:
@ -422,9 +422,7 @@ gst_selector_pad_event (GstPad * pad, GstEvent * event)
GST_DEBUG_OBJECT (pad, "received tags %" GST_PTR_FORMAT, newtags); GST_DEBUG_OBJECT (pad, "received tags %" GST_PTR_FORMAT, newtags);
GST_OBJECT_UNLOCK (selpad); GST_OBJECT_UNLOCK (selpad);
GST_INPUT_SELECTOR_LOCK (sel);
g_object_notify (G_OBJECT (selpad), "tags"); g_object_notify (G_OBJECT (selpad), "tags");
GST_INPUT_SELECTOR_UNLOCK (sel);
break; break;
} }
case GST_EVENT_EOS: case GST_EVENT_EOS:
@ -504,11 +502,11 @@ gst_selector_pad_bufferalloc (GstPad * pad, guint64 offset,
if (pad != active_sinkpad) if (pad != active_sinkpad)
goto not_active; goto not_active;
GST_INPUT_SELECTOR_UNLOCK (sel);
if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad)
g_object_notify (G_OBJECT (sel), "active-pad"); g_object_notify (G_OBJECT (sel), "active-pad");
GST_INPUT_SELECTOR_UNLOCK (sel);
result = gst_pad_alloc_buffer (sel->srcpad, offset, size, caps, buf); result = gst_pad_alloc_buffer (sel->srcpad, offset, size, caps, buf);
done: done:
@ -626,10 +624,10 @@ gst_selector_pad_chain (GstPad * pad, GstBuffer * buf)
selpad->segment_pending = FALSE; selpad->segment_pending = FALSE;
} }
GST_INPUT_SELECTOR_UNLOCK (sel);
if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad)
g_object_notify (G_OBJECT (sel), "active-pad"); g_object_notify (G_OBJECT (sel), "active-pad");
GST_INPUT_SELECTOR_UNLOCK (sel);
if (close_event) if (close_event)
gst_pad_push_event (sel->srcpad, close_event); gst_pad_push_event (sel->srcpad, close_event);
@ -1413,10 +1411,10 @@ gst_input_selector_switch (GstInputSelector * self, GstPad * pad,
self->blocked = FALSE; self->blocked = FALSE;
GST_INPUT_SELECTOR_BROADCAST (self); GST_INPUT_SELECTOR_BROADCAST (self);
GST_INPUT_SELECTOR_UNLOCK (self);
if (changed) if (changed)
g_object_notify (G_OBJECT (self), "active-pad"); g_object_notify (G_OBJECT (self), "active-pad");
GST_INPUT_SELECTOR_UNLOCK (self);
} }
static gboolean static gboolean