decodebin3: Release selection lock when pushing EOS
authorEdward Hervey <edward@centricular.com>
Fri, 11 Dec 2020 09:13:59 +0000 (10:13 +0100)
committerSebastian Dröge <slomo@coaxion.net>
Fri, 11 Dec 2020 18:36:30 +0000 (18:36 +0000)
commit56e05f63f5815c72d831e646786a68afeb01960d
tree441d8740353c94f029b0cccc88f36c3af5c95cb9
parent030ccaedb57dcc6524e8770f50c763141d9b90e7
decodebin3: Release selection lock when pushing EOS

We can't keep the lock otherwise this would lock other actions. In order to keep
it safe, we grab a list of peer pads to send EOS to with the lock taken, then
send to the peer pads with the lock released.

Also make sure the selection lock is taken for another call to this function

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/847

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/971>
gst/playback/gstdecodebin3-parse.c