multiqueue: Improve incoming SEGMENT handling
authorEdward Hervey <edward@centricular.com>
Thu, 15 Oct 2015 14:32:42 +0000 (16:32 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Mon, 19 Oct 2015 12:38:51 +0000 (14:38 +0200)
commitebeee60c3f6e4cdaf54e3d5f5569cadc5019f0f3
treef6eeeb4fa935e0744e3bfff20e69a2c5221e38a2
parent72a7bf590eb9b135cadf33c1a345dcfb43f125c4
multiqueue: Improve incoming SEGMENT handling

Previously this code was just blindly setting the cached flow return
of downstream to GST_FLOW_OK when we get a SEGMENT.

The problem is that this can not be done blindly. If downstream was
not linked, the corresponding sinqlequeue source pad thread might be
waiting for the next ID to be woken up upon.

By blindly setting the cached return value to GST_FLOW_OK, and if that
stream was the only one that was NOT_LINKED, then the next time we
check (from any other thread) to see if we need to wake up a source pad
thread ... we won't even try, because none of the cached flow return
are equal to GST_FLOW_NOT_LINKED.

This would result in that thread never being woken up

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