multiqueue: Fix behaviour with not-linked and eos pads
authorEdward Hervey <edward@centricular.com>
Fri, 1 Jul 2016 07:44:12 +0000 (09:44 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Fri, 1 Jul 2016 07:47:31 +0000 (09:47 +0200)
commit530001661ddba6a0b1a7a07c9805688d83a05622
tree71037d5d14ebc2d2dc0bc55ec0781288740db06f
parent3623f168e96d32047b91e972b8017f1d4d8e1dac
multiqueue: Fix behaviour with not-linked and eos pads

This is an update on c9b6848885f4675d447e823c8fb117e247658252
multiqueue: Fix not-linked pad handling at EOS

While that commit did fix the behaviour if upstream sent a GST_EVENT_EOS,
it would break the same issue when *downstream* returns GST_FLOW_EOS
(which can happen for example when downstream decoders receive data
from after the segment stop).

GST_PAD_IS_EOS() is only TRUE when a GST_EVENT_EOS has flown through it
and not when a GST_EVENT_EOS has gone through it.

In order to handle both cases, also take into account the last flow
return.

https://bugzilla.gnome.org/show_bug.cgi?id=763770
plugins/elements/gstmultiqueue.c