summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRavi Kiran K N <ravi.kiran@samsung.com>2014-08-27 17:06:57 +0530
committerSebastian Dröge <sebastian@centricular.com>2014-09-04 12:55:06 +0300
commit6577bbc73fe378064172c3d2aeffa8d5fe9f0200 (patch)
treeb8571c8515eb3f70ab717aca5109b3b8048ef0d3
parent2356868a388d419bccc471de95f2e991203871ad (diff)
downloadgstreamer-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.c25
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;
}