summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorArnaud Vrac <avrac@freebox.fr>2013-07-22 18:03:01 +0200
committerSebastian Dröge <slomo@circular-chaos.org>2013-07-23 08:59:07 +0200
commit9bc26c5f25b9a581c1add0c457f0646cb6e3c8cf (patch)
tree88e640bf61dfb9f3f9c98d335196e9809b01c4ad /plugins
parent0c513e3d97881471456af622115b17d027e6b5dc (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.c4
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");