The problem lies in the fact that multiqueue will now operate somewhat
similarly to the flow aggregation logic of demuxers and therefore
will stopp whenever all downstream pads return NOT_LINKED and/or
UNEXPECTED and there's no more buffers to push.
The latest commits should not affect any regular use-case, but the bug
report will be kept open so the previous behaviour can be re-established
if needed.
Fixes #609486
/* Wait while the buffers are processed */
g_mutex_lock (mutex);
- while (eos_seen < 5) {
+ /* We wait until EOS has been pushed on all linked pads */
+ while (eos_seen < n_linked) {
g_cond_wait (cond, mutex);
}
g_mutex_unlock (mutex);
/* Clean up */
- for (i = 0; i < 5; i++) {
+ for (i = 0; i < NPADS; i++) {
GstPad *mq_input = gst_pad_get_peer (inputpads[i]);
gst_pad_unlink (inputpads[i], mq_input);