summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sourceforge.net>2008-10-07 13:14:40 +0000
committerStefan Kost <ensonic@users.sourceforge.net>2008-10-07 13:14:40 +0000
commitae65d3945bd52f49fcf03b404f24555650b2b402 (patch)
tree48bef05fa408728e86089df0a1481065fd407d9b
parentdbc5475c97bfef43d6c6b2361036b4cc2a884f18 (diff)
downloadgst-plugins-bad-ae65d3945bd52f49fcf03b404f24555650b2b402.tar.gz
gst-plugins-bad-ae65d3945bd52f49fcf03b404f24555650b2b402.tar.bz2
gst-plugins-bad-ae65d3945bd52f49fcf03b404f24555650b2b402.zip
gst/selector/gstoutputselector.c: Choose right pad for sending events. Fixes #555244
Original commit message from CVS: * gst/selector/gstoutputselector.c: Choose right pad for sending events. Fixes #555244
-rw-r--r--ChangeLog5
-rw-r--r--gst/selector/gstoutputselector.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 2c09f796..95e5d696 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-10-07 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/selector/gstoutputselector.c:
+ Choose right pad for sending events. Fixes #555244
+
2008-10-07 Wim Taymans <wim.taymans@collabora.co.uk>
* gst/rtpmanager/gstrtpbin.c: (find_session_by_pad),
diff --git a/gst/selector/gstoutputselector.c b/gst/selector/gstoutputselector.c
index 0ea4d7e5..74191cb0 100644
--- a/gst/selector/gstoutputselector.c
+++ b/gst/selector/gstoutputselector.c
@@ -387,6 +387,7 @@ gst_output_selector_handle_sink_event (GstPad * pad, GstEvent * event)
{
gboolean res = TRUE;
GstOutputSelector *sel;
+ GstPad *output_pad = NULL;
sel = GST_OUTPUT_SELECTOR (gst_pad_get_parent (pad));
@@ -419,8 +420,10 @@ gst_output_selector_handle_sink_event (GstPad * pad, GstEvent * event)
gst_pad_event_default (pad, event);
break;
default:
- /* Send other events to active src pad */
- res = gst_pad_push_event (sel->active_srcpad, event);
+ /* Send other events to pending or active src pad */
+ output_pad =
+ sel->pending_srcpad ? sel->pending_srcpad : sel->active_srcpad;
+ res = gst_pad_push_event (output_pad, event);
break;
}