diff options
-rw-r--r-- | gst/selector/gstinputselector.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gst/selector/gstinputselector.c b/gst/selector/gstinputselector.c index 7fc43686..6184b65f 100644 --- a/gst/selector/gstinputselector.c +++ b/gst/selector/gstinputselector.c @@ -342,14 +342,15 @@ gst_selector_pad_event (GstPad * pad, GstEvent * event) gboolean forward = TRUE; GstInputSelector *sel; GstSelectorPad *selpad; + GstPad *prev_active_sinkpad; GstPad *active_sinkpad; - gboolean notify; sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad)); selpad = GST_SELECTOR_PAD_CAST (pad); GST_INPUT_SELECTOR_LOCK (sel); - active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad, ¬ify); + prev_active_sinkpad = sel->active_sinkpad; + active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad); /* only forward if we are dealing with the active sinkpad or if select_all * is enabled */ @@ -357,7 +358,7 @@ gst_selector_pad_event (GstPad * pad, GstEvent * event) forward = FALSE; GST_INPUT_SELECTOR_UNLOCK (sel); - if (notify) + if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) g_object_notify (G_OBJECT (sel), "active-pad"); switch (GST_EVENT_TYPE (event)) { |