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.


Reply via email to