gst/selector/gstoutputselector.c: Choose right pad for sending events. Fixes #555244
authorStefan Kost <ensonic@users.sourceforge.net>
Tue, 7 Oct 2008 13:14:40 +0000 (13:14 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Tue, 7 Oct 2008 13:14:40 +0000 (13:14 +0000)
Original commit message from CVS:
* gst/selector/gstoutputselector.c:
Choose right pad for sending events. Fixes #555244

ChangeLog
gst/selector/gstoutputselector.c

index 2c09f79..95e5d69 100644 (file)
--- 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),
index 0ea4d7e..74191cb 100644 (file)
@@ -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;
   }