decodebin2: Handle flushing with multiple decode groups
authorEdward Hervey <edward@centricular.com>
Mon, 4 May 2015 09:19:28 +0000 (11:19 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Sat, 15 Aug 2015 16:50:06 +0000 (18:50 +0200)
commiteaf9ca90c7000f5c7156d13969b9135f7273fa79
tree032797a3c4dbcc38f64bfdf08367a9952d4c9394
parent2d3743e37dd13d2211e4ec2c596c5a420e944d18
decodebin2: Handle flushing with multiple decode groups

When an upstream element wants to flush downstream, we need to take
all chains/groups into consideration.

To that effect, when a FLUSH_START event is seen, after having it
sent downstream we mark all those chains/groups as "drained" (as if
they had seen a EOS event on the endpads).

When a FLUSH_STOP event is received, we check if we need to switch groups.
This is done by checking if there are next groups. If so, we will switch
over to the latest next_group. The actual switch will be done when
that group is blocked.

https://bugzilla.gnome.org/show_bug.cgi?id=606382
gst/playback/gstdecodebin2.c