qemu/audio
Dorinda Bassey c2d3d1c294 audio/pwaudio.c: Add Pipewire audio backend for QEMU
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 <dbassey@redhat.com>
Reviewed-by: Volker Rümelin <vr_qemu@t-online.de>
Message-Id: <20230417105654.32328-1-dbassey@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2023-05-05 13:23:08 +04:00
..
alsaaudio.c alsaaudio: reintroduce default recording settings 2023-03-06 10:30:23 +04:00
audio-hmp-cmds.c audio: Move HMP commands from monitor/ to audio/ 2023-02-04 07:56:54 +01:00
audio.c audio/pwaudio.c: Add Pipewire audio backend for QEMU 2023-05-05 13:23:08 +04:00
audio.h audio: add help option for -audio and -audiodev 2022-09-19 15:15:59 +02:00
audio_int.h audio/dbus: there are no sender for p2p mode 2023-03-13 22:57:39 +04:00
audio_legacy.c qapi, audio: Make introspection reflect build configuration more closely 2023-01-30 15:43:55 +01:00
audio_template.h audio/pwaudio.c: Add Pipewire audio backend for QEMU 2023-05-05 13:23:08 +04:00
audio_win_int.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
audio_win_int.h Windows Waveform Audio driver (no ADC support yet) 2009-10-10 01:18:24 +04:00
coreaudio.m Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
dbusaudio.c audio/dbus: there are no sender for p2p mode 2023-03-13 22:57:39 +04:00
dsound_template.h dsoundaudio: replace GetForegroundWindow() 2021-01-15 11:25:22 +01:00
dsoundaudio.c Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
jackaudio.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
meson.build audio/pwaudio.c: Add Pipewire audio backend for QEMU 2023-05-05 13:23:08 +04:00
mixeng.c audio: make recording packet length calculation exact 2023-03-06 10:30:23 +04:00
mixeng.h audio: make recording packet length calculation exact 2023-03-06 10:30:23 +04:00
mixeng_template.h audio: fix saturation nonlinearity in clip_* functions 2020-03-16 10:18:07 +01:00
noaudio.c audio: swap audio_rate_get_bytes() function parameters 2022-10-11 10:17:08 +02:00
ossaudio.c qapi audio: Elide redundant has_FOO in generated C 2022-12-13 18:31:37 +01:00
paaudio.c qapi audio: Elide redundant has_FOO in generated C 2022-12-13 18:31:37 +01:00
pwaudio.c audio/pwaudio.c: Add Pipewire audio backend for QEMU 2023-05-05 13:23:08 +04:00
rate_template.h audio: make the resampling code greedy 2023-03-06 10:30:23 +04:00
sdlaudio.c Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
sndioaudio.c Fix non-first inclusions of qemu/osdep.h 2023-02-08 07:28:05 +01:00
spiceaudio.c audio: swap audio_rate_get_bytes() function parameters 2022-10-11 10:17:08 +02:00
trace-events audio/pwaudio.c: Add Pipewire audio backend for QEMU 2023-05-05 13:23:08 +04:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
wavaudio.c qapi audio: Elide redundant has_FOO in generated C 2022-12-13 18:31:37 +01:00
wavcapture.c monitor: Use getter/setter functions for cur_mon 2020-10-09 07:08:19 +02:00