multiqueue: Ignore queue fullness for most events
Use gst_data_queue_push_force() for most events so they are immediately enqueued. Only gap events and actual buffer data will now block when the queue is full.
This fixes a problem with non-flushing seek handling where events following a segment-done event would block if they precede the SEGMENT event, since only SEGMENT events would clear the 'eos' state of the multiqueue queue.
- this makes multiqueue a bit more in-line with
queue
, which never blocks on 'fullness' for events. I mademultiqueue
still wait on GAP events here, since that seems more correct to me. There are still some other differences between the 2 queue implementations now though, sincequeue
doesn't handleSEGMENT_DONE
at all special. - Feedback on this fundamental change to
multiqueue
is welcome.