mirror of
https://github.com/zebrajr/ladybird.git
synced 2026-01-15 12:15:15 +00:00
Implement PlaybackStream using WASAPI. The design is similar to PlaybackStreamAudioUnit in that it uses a task queue. A high priority thread is used to render the stream. All the stream controls save for the exit being requested which happens on destruction of the stream are managed by the render thread. Due to the design of the windows audio mixer the audio we receive must be resampled to match the sample rate of the mixer. We use a float based interleaved PCM stream which matches both our existing code and the audio mixer which internally usues floats. Having to use a mutex around a queue for the task queue is suboptimal, in a future PR a MPSC queue could be added to AK and used instead.