On Friday, February 17, 2023 6:07:32 PM CET Dorinda Bassey wrote: > This commit adds a new audiodev backend to allow QEMU to use Pipewire as > both an audio sink and source. This backend is available on most systems > > Add Pipewire entry points for QEMU Pipewire audio backend > Add wrappers for QEMU Pipewire audio backend in qpw_pcm_ops() > qpw_write function returns the current state of the stream to pwaudio > and Writes some data to the server for playback streams using pipewire > spa_ringbuffer implementation. > qpw_read function returns the current state of the stream to pwaudio and > reads some data from the server for capture streams using pipewire > spa_ringbuffer implementation. These functions qpw_write and qpw_read > are called during playback and capture. > Added some functions that convert pw audio formats to QEMU audio format > and vice versa which would be needed in the pipewire audio sink and > source functions qpw_init_in() & qpw_init_out(). > These methods that implement playback and recording will create streams > for playback and capture that will start processing and will result in > the on_process callbacks to be called. > Built a connection to the Pipewire sound system server in the > qpw_audio_init() method. > > Signed-off-by: Dorinda Bassey <dbas...@redhat.com>
Acked-by: Christian Schoenebeck <qemu_...@crudebyte.com> > --- > fix typo > raise version dependency > > audio/audio.c | 3 + > audio/audio_template.h | 4 + > audio/meson.build | 1 + > audio/pwaudio.c | 827 ++++++++++++++++++++++++++++++++++ > meson.build | 8 + > meson_options.txt | 4 +- > qapi/audio.json | 45 ++ > qemu-options.hx | 17 + > scripts/meson-buildoptions.sh | 8 +- > 9 files changed, 914 insertions(+), 3 deletions(-) > create mode 100644 audio/pwaudio.c