diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2010-01-25 13:18:18 +0100 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2010-01-25 13:18:18 +0100 |
commit | 9aeafa25d124d93d0144cb6f4c2b3cc45ac38166 (patch) | |
tree | bd69b5911cfc949f5a92f76ba93498bf3cd5a679 | |
parent | 62f8c3c6725925bd6db4a7c903c4a8adf4961c92 (diff) | |
parent | fcf2668b208af31af584a161073019ca4ecf087b (diff) |
Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-base
-rw-r--r-- | gst/playback/gstinputselector.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/gst/playback/gstinputselector.c b/gst/playback/gstinputselector.c index 53a382297..72aa9ffca 100644 --- a/gst/playback/gstinputselector.c +++ b/gst/playback/gstinputselector.c @@ -357,10 +357,10 @@ gst_selector_pad_event (GstPad * pad, GstEvent * event) * 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: @@ -422,9 +422,7 @@ gst_selector_pad_event (GstPad * pad, GstEvent * event) 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: @@ -504,11 +502,11 @@ gst_selector_pad_bufferalloc (GstPad * pad, guint64 offset, 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: @@ -626,10 +624,10 @@ gst_selector_pad_chain (GstPad * pad, GstBuffer * buf) 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); @@ -1413,10 +1411,10 @@ gst_input_selector_switch (GstInputSelector * self, GstPad * pad, 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 |