From edea65f60af65a7167fd764747d6665415e670f0 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Mon, 25 Jul 2016 19:15:15 +1000 Subject: [PATCH] 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. --- plugins/elements/gstinputselector.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c index a0889a4f4f..4af219047e 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