On 23/01/2026 07:49, [email protected] wrote:
Hi
This patch series is part of an ongoing effort to clean up audio/, initiated in
QEMU 10.2. Some of the patches were previously posted as part of the "[RFC
00/24] audio: add GStreamer backend" series.
The complete series finalizes the migration to QOM and improves error handling
and logging.
Marc-André Lureau (37):
audio: remove obsolete/obscure functions
adlib: remove dead code
audio/adlib: drop ts_helper HWVoice field
audio/dbus: make "dbus" the default backend when using -display dbus
qemu-options.hx: clarify default audio backend selection
audio: replace vm_running with runstate_is_running()
audio: list backends as modules
build-sys: create a libaudio
scripts/modinfo: add type annotations
scripts/modinfo: remove trailing ;
scripts/modinfo: use in instead of find()
scripts/modinfo: use f-strings
scripts/modinfo: use argparse
scripts/modinfo: make --devices optional
scripts/modinfo: add --skip-missing-deps
tests: start manual audio backend test
audio: constify audsettings argument
audio: introduce AudioMixengBackend
audio: simplify audio_init()
audio: move object creation to audio_driver_init()
audio: add QOM module-objects for each backend
audio: remove set_dbus_server from audio_driver
audio: lookup "audio-" object types, and realize them
audio: drop audio driver registration
module: remove audio module support
audio: keep a strong reference on the backend
audio: make list type declaration private
audio: make create_pdos() private
replay: remove dependency on audio/
audio: make all the backend-specific APIs take the be
audio: make AudioBackend truly abstract
audio: split AudioBackend
audio: AUD_ -> audio_be_
audio-be: add common pre-conditions
audio-be: add some state trace for debugging
audio: split AudioMixengBackend code in audio-mixeng-be.c
audio: make audio_driver init() & fini() optional
meson.build | 25 +-
audio/audio_int.h | 59 +-
audio/audio_template.h | 78 +-
include/qemu/audio-capture.h | 24 +-
include/qemu/audio.h | 132 +-
include/qemu/module.h | 3 +-
include/system/replay.h | 11 +-
replay/replay-internal.h | 2 +
audio/alsaaudio.c | 30 +-
audio/audio-be.c | 276 ++
audio/audio-mixeng-be.c | 1983 +++++++++++++++
audio/audio.c | 2245 ++---------------
audio/dbusaudio.c | 46 +-
audio/dsoundaudio.c | 27 +-
audio/jackaudio.c | 27 +-
audio/noaudio.c | 27 +-
audio/ossaudio.c | 31 +-
audio/paaudio.c | 27 +-
audio/pwaudio.c | 27 +-
audio/sdlaudio.c | 27 +-
audio/sndioaudio.c | 27 +-
audio/spiceaudio.c | 27 +-
audio/wavaudio.c | 27 +-
audio/wavcapture.c | 7 +-
hw/audio/ac97.c | 42 +-
hw/audio/adlib.c | 31 +-
hw/audio/asc.c | 20 +-
hw/audio/cs4231a.c | 18 +-
hw/audio/es1370.c | 26 +-
hw/audio/gus.c | 11 +-
hw/audio/hda-codec.c | 36 +-
hw/audio/lm4549.c | 20 +-
hw/audio/pcspk.c | 8 +-
hw/audio/sb16.c | 22 +-
hw/audio/via-ac97.c | 20 +-
hw/audio/virtio-snd.c | 36 +-
hw/audio/wm8750.c | 43 +-
hw/display/xlnx_dp.c | 16 +-
hw/usb/dev-audio.c | 18 +-
replay/replay-audio.c | 51 +-
replay/replay.c | 2 +-
replay/stubs-system.c | 8 +-
tests/audio/audio-stubs.c | 53 +
tests/audio/test-audio.c | 582 +++++
ui/dbus.c | 20 +-
ui/vnc.c | 4 +-
audio/coreaudio.m | 27 +-
audio/meson.build | 10 +-
audio/trace-events | 4 +
qemu-options.hx | 22 +-
.../codeconverter/test_regexps.py | 1 -
scripts/modinfo-generate.py | 146 +-
tests/audio/meson.build | 18 +
tests/meson.build | 1 +
54 files changed, 3999 insertions(+), 2512 deletions(-)
create mode 100644 audio/audio-be.c
create mode 100644 audio/audio-mixeng-be.c
create mode 100644 tests/audio/audio-stubs.c
create mode 100644 tests/audio/test-audio.c
create mode 100644 tests/audio/meson.build
Thanks for the work on the series - QOMification of the audio backends
has been something that has been on my wish-list for some time :)
I wanted to do some local testing, however when I try and apply the
series I get the following error:
Applying: audio: split AudioMixengBackend code in audio-mixeng-be.c
error: sha1 information is lacking or useless (audio/audio.c).
error: could not build fake ancestor
Patch failed at 0036 audio: split AudioMixengBackend code in
audio-mixeng-be.c
hint: Use 'git am --show-current-patch=diff' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
Is there a branch somewhere that I can pull from directly?
ATB,
Mark.