diff options
author | Jan Schmidt <jan@centricular.com> | 2016-07-25 19:15:15 +1000 |
---|---|---|
committer | Jan Schmidt <jan@centricular.com> | 2016-07-25 19:34:52 +1000 |
commit | 4981e09bc7ffe0d9e0c5eca73cc12df1ca3cb978 (patch) | |
tree | 0dbe92227ab5f744fc0a1de55d7dc35db4de5413 /plugins | |
parent | d052ae63d8632b78e933a8447e5f2c8aa25a6c17 (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.c | 4 |
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 |