summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorJan Schmidt <jan@centricular.com>2016-07-25 19:15:15 +1000
committerJan Schmidt <jan@centricular.com>2016-07-25 19:34:52 +1000
commit4981e09bc7ffe0d9e0c5eca73cc12df1ca3cb978 (patch)
tree0dbe92227ab5f744fc0a1de55d7dc35db4de5413 /plugins
parentd052ae63d8632b78e933a8447e5f2c8aa25a6c17 (diff)
inputselector: Wake other pads when selected goes EOS
Other pads that are waiting for the stream on the selected pad to advance before they finish waiting themselves should be given the chance to do so when the selected pad goes EOS. Fixes problems where input streams can end up waiting forever if the active stream goes EOS earlier than their own end time.
Diffstat (limited to 'plugins')
-rw-r--r--plugins/elements/gstinputselector.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c
index a0889a4f4..4af219047 100644
--- a/plugins/elements/gstinputselector.c
+++ b/plugins/elements/gstinputselector.c
@@ -477,6 +477,10 @@ gst_input_selector_eos_wait (GstInputSelector * self, GstSelectorPad * pad,
gst_pad_push_event (self->srcpad, gst_event_ref (eos_event));
GST_INPUT_SELECTOR_LOCK (self);
+ /* Wake up other pads so they can continue when syncing to
+ * running time, as this pad just switched to EOS and
+ * may enable others to progress */
+ GST_INPUT_SELECTOR_BROADCAST (self);
pad->eos_sent = TRUE;
} else {
/* we can be unlocked here when we are shutting down (flushing) or when we