summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2010-01-25 13:18:18 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2010-01-25 13:18:18 +0100
commit9aeafa25d124d93d0144cb6f4c2b3cc45ac38166 (patch)
treebd69b5911cfc949f5a92f76ba93498bf3cd5a679
parent62f8c3c6725925bd6db4a7c903c4a8adf4961c92 (diff)
parentfcf2668b208af31af584a161073019ca4ecf087b (diff)
Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-base
-rw-r--r--gst/playback/gstinputselector.c12
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