BlastBufferQueue: Call ProducerListener callbacks asynchronously
When the IGBP is running on the client process, the ProducerListener
callbacks will run synchronously and if the callbacks call into the BQ,
we can deadlock. This is because If the IGBP was running on the server,
the ProducerListener callbacks are via a one way binder calls that do
not block.
Fix this by wrapping up the listener and running the callbacks in a
different thread.
Bug: b/168917217
Test: atest android.media.cts.MediaSyncTest#testPlayVideo
Test: go/wm-smoke
Test: atest BLASTBufferQueueTest
Change-Id: Ib8f45a04c457a15c64a4a8c82b0eb053ae652b86
3 files changed