output-selector: Send all events to active src pad and EOS to all src pads

Fixes tests/icles/output-selector-test

https://bugzilla.gnome.org/show_bug.cgi?id=729811
This commit is contained in:
Ravi Kiran K N 2014-08-27 17:06:57 +05:30 committed by Sebastian Dröge
parent 692606bdd2
commit 63a943aa82

View file

@ -534,29 +534,26 @@ gst_output_selector_event (GstPad * pad, GstObject * parent, GstEvent * event)
sel = GST_OUTPUT_SELECTOR (parent); sel = GST_OUTPUT_SELECTOR (parent);
switch (GST_EVENT_TYPE (event)) { switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEGMENT: case GST_EVENT_EOS:
{ {
gst_event_copy_segment (event, &sel->segment);
GST_DEBUG_OBJECT (sel, "configured SEGMENT %" GST_SEGMENT_FORMAT,
&sel->segment);
res = gst_output_selector_forward_event (sel, event); res = gst_output_selector_forward_event (sel, event);
break; break;
} }
case GST_EVENT_SEGMENT:
{
gst_event_copy_segment (event, &sel->segment);
GST_DEBUG_OBJECT (sel, "configured SEGMENT %" GST_SEGMENT_FORMAT,
&sel->segment);
/* fall through */
}
default: default:
{ {
if (GST_EVENT_IS_STICKY (event)) { active = gst_output_selector_get_active (sel);
res = gst_output_selector_forward_event (sel, event); if (active) {
res = gst_pad_push_event (active, event);
gst_object_unref (active);
} else { } else {
/* Send other events to pending or active src pad */ gst_event_unref (event);
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; break;
} }