[pulseaudio-discuss] Can pa_stream_write be executed at the other thread ?
Sean Greenslade
sean at seangreenslade.com
Sat Feb 26 07:14:42 UTC 2022
On Sat, Feb 26, 2022 at 01:14:12AM +0800, su wrote:
> My application is to play a single stream with pulseaudio Asynchronous API based on "Main Loop - A minimal but fast implementation based on poll()." implementation . I am going to set up an independent thread for pulseaudio context and the related stream setup and I would like to use "Polled" model instead of "Asynchronous " model to feed the audio raw data .
>
>
> The point is : data is transferred with pa_stream_write() at "Polled" model at the other thread. Namely , at the other thread , both pa_stream_writable_size() and pa_stream_write() will be executed from time to time . Will it work ?
There is some useful information about thread safety in the docs here:
https://freedesktop.org/software/pulseaudio/doxygen/threaded_mainloop.html
The short answer is that you must use locks to prevent concurrent calls
to the pulse APIs. It is not safe for two threads to execute calls to
pa_stream_write() simultaneously.
--Sean
More information about the pulseaudio-discuss
mailing list