diff options
author | Arnaud Vrac <avrac@freebox.fr> | 2013-07-22 18:03:01 +0200 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2013-07-23 08:59:07 +0200 |
commit | 9bc26c5f25b9a581c1add0c457f0646cb6e3c8cf (patch) | |
tree | 88e640bf61dfb9f3f9c98d335196e9809b01c4ad /plugins | |
parent | 0c513e3d97881471456af622115b17d027e6b5dc (diff) |
input-selector: Fix missing pad activation notification
A new active pad might not be notified in some cases, which results
in the current track number not being set in playbin.
The active-pad notification is only sent in the chain and sink_event
functions, and only when the buffer or event that triggered the active
pad selection is from the newly activated pad. So in the other case
the notification will never be sent.
https://bugzilla.gnome.org/show_bug.cgi?id=704691
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/elements/gstinputselector.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c index 2be30fefd..7eda5a271 100644 --- a/plugins/elements/gstinputselector.c +++ b/plugins/elements/gstinputselector.c @@ -461,7 +461,7 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad); GST_INPUT_SELECTOR_UNLOCK (sel); - if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) { + if (prev_active_sinkpad != active_sinkpad) { if (prev_active_sinkpad) g_object_notify (G_OBJECT (prev_active_sinkpad), "active"); g_object_notify (G_OBJECT (active_sinkpad), "active"); @@ -1050,7 +1050,7 @@ gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) GST_INPUT_SELECTOR_UNLOCK (sel); - if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) { + if (prev_active_sinkpad != active_sinkpad) { if (prev_active_sinkpad) g_object_notify (G_OBJECT (prev_active_sinkpad), "active"); g_object_notify (G_OBJECT (active_sinkpad), "active"); |