+gst_output_selector_forward_event (GstOutputSelector * sel, GstEvent * event)
+{
+ gboolean res = TRUE;
+ GstPad *active;
+
+ switch (sel->pad_negotiation_mode) {
+ case GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_ALL:
+ /* Send to all src pads */
+ res = gst_pad_event_default (sel->sinkpad, GST_OBJECT_CAST (sel), event);
+ break;
+ case GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_NONE:
+ gst_event_unref (event);
+ break;
+ default:
+ active = gst_output_selector_get_active (sel);
+ if (active) {
+ res = gst_pad_push_event (active, event);
+ gst_object_unref (active);
+ } else {
+ gst_event_unref (event);
+ }
+ break;
+ }
+
+ return res;
+}
+
+static gboolean