summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;
}