diff options
author | Ravi Kiran K N <ravi.kiran@samsung.com> | 2014-08-27 17:06:57 +0530 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-09-04 12:55:06 +0300 |
commit | 6577bbc73fe378064172c3d2aeffa8d5fe9f0200 (patch) | |
tree | b8571c8515eb3f70ab717aca5109b3b8048ef0d3 | |
parent | 2356868a388d419bccc471de95f2e991203871ad (diff) | |
download | gstreamer-6577bbc73fe378064172c3d2aeffa8d5fe9f0200.tar.gz |
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
-rw-r--r-- | plugins/elements/gstoutputselector.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/plugins/elements/gstoutputselector.c b/plugins/elements/gstoutputselector.c index ec12e287b1..61e49a6397 100644 --- a/plugins/elements/gstoutputselector.c +++ b/plugins/elements/gstoutputselector.c @@ -534,29 +534,26 @@ gst_output_selector_event (GstPad * pad, GstObject * parent, GstEvent * event) sel = GST_OUTPUT_SELECTOR (parent); switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_EOS: + { + res = gst_output_selector_forward_event (sel, event); + break; + } case GST_EVENT_SEGMENT: { 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); - break; + /* fall through */ } default: { - if (GST_EVENT_IS_STICKY (event)) { - res = gst_output_selector_forward_event (sel, event); + active = gst_output_selector_get_active (sel); + if (active) { + res = gst_pad_push_event (active, event); + gst_object_unref (active); } else { - /* Send other events to pending or active src pad */ - 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); - } + gst_event_unref (event); } break; } |