vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
authorFreyr666 <sky_rider_93@mail.ru>
Tue, 28 May 2019 09:09:36 +0000 (12:09 +0300)
committerEugen Klim <freyrnjordrson@gmail.com>
Thu, 30 May 2019 07:08:35 +0000 (07:08 +0000)
commit53d86ff519e93343636f38b1ff4d38314755fb06
treee6814c96764bec0459f80bc2145bdde6d32fa29f
parentdf3989865ea2050ecdde046f9597931be1ceebe1
vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function

This fixes a deadlock in gst_vaapiencode_change_state, which was due to
srcpad's chain function was locked waiting for available buffers. Since the
coded buffers in codedbuf_queue become available after sinkpad consume the
encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
available buffers and holds the stream_lock of the srcpad.
gst/vaapi/gstvaapiencode.c