diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | gst/selector/gstoutputselector.c | 7 |
2 files changed, 10 insertions, 2 deletions
@@ -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; } |