665 Commits
Author SHA1 Message Date
izzy2lost b75429b103 Video working slow bad audio 2026-02-06 19:51:23 -05:00
Marc-André Lureau 05404916bf audio: deprecate HMP audio commands
The command is niche and better served by the host audio system.
There is no QMP equivalent, fortunately. You can capture the audio
stream via remote desktop protocols too (dbus, vnc, spice).

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Dr. David Alan Gilbert <dave@treblig.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20251022105753.1474739-1-marcandre.lureau@redhat.com>
2025-10-30 22:59:30 +04:00
Philippe Mathieu-DaudéandMarc-André Lureau 0d25431771 audio: Rename @endianness argument as @big_endian for clarity
@endianness is used as a boolean, rename for clarity.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-10-30 22:56:59 +04:00
Philippe Mathieu-DaudéandMarc-André Lureau b8afda6704 audio: Remove pointless local variables
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-10-30 22:56:59 +04:00
Marc-André Lureau 8da8bf74ae audio: drop needless audio_driver "descr" field
Was it ever used?

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:59 +04:00
Marc-André Lureau 9cba1ce936 audio: move capture API to own header
For modularity/clarity reasons, move the capture API in a specific
header.

The current audio/ header license is MIT.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:51 +04:00
Marc-André Lureau 690c82a271 audio: cleanup, use bool for booleans
Use slightly better types for the job.
Fix some checkpatch issues.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:51 +04:00
Marc-André Lureau 98e901ff9b audio: remove dependency on spice header
It is no longer required.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:51 +04:00
Marc-André Lureau 1e4ebc895a audio: move audio.h under include/qemu/
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
2025-10-30 22:56:51 +04:00
Marc-André Lureau 2d18978b7f audio/dbus: use a helper function to set the backend dbus server
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:37 +04:00
Marc-André Lureau 9628ad8a6e audio: remove QEMUSoundCard
There is no clear need for this extra intermediary structure between
the audio backend and its user.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:28 +04:00
Marc-André Lureau 7d75c12ad1 audio: rename AudioState -> AudioBackend
Naming is hard. But in general in QEMU, a host "backend" is the term
used to fullfill the request made by the device or frontend.

AudioBackend will become an abstract base class in a follow-up series.

Currently the frontend is QEMUSoundCard, we are going to drop that next.

Note that "audiodev" is the corresponding QAPI type name (or configuration).

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:28 +04:00
Marc-André Lureau 6fcd22cfdb audio: move internal APIs to audio_int.h
Fix some check-patch issues while at it.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:28 +04:00
Marc-André Lureau 04536d7045 audio/replay: fix type punning
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:28 +04:00
Marc-André Lureau d2b15ae407 audio: introduce AUD_set_volume_{in,out}_lr()
There are 2 sets of functions since the introduction of multi-channel
Volume structure: AUD_set_volume_{in,out} and audio_set_volume_{in,out}.

Use the AUD_ prefix for consistency with other audio.c functions. Rename
the stereo function with "_lr" suffix.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:28 +04:00
Marc-André Lureau eaeafe3074 audio: remove AUDIO_HOST_ENDIANNESS
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:28 +04:00
Marc-André Lureau 914cb0878f audio: remove some needless headers
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:28 +04:00
Marc-André Lureau f6d1f9b1b9 audio: initialize card_head during object init
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:28 +04:00
Marc-André Lureau 582ca26c99 audio: register and unregister vmstate with AudioState
Proper lifecycle management with QOM state.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 22:56:11 +04:00
Marc-André Lureau 7423b3aae6 audio: keep vmstate handle with AudioState
QOM-ification continues.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 13:30:06 +04:00
Marc-André Lureau 0eeb7b0554 audio: drop needless error message
The only reason it would fail to add the handler is if it's calling a
stub. But this cannot happen as audio is only supported with system qemu.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 13:30:06 +04:00
Marc-André Lureau ee2964259a audio: move period tick initialization
Part of QOM-ification.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 13:30:06 +04:00
Marc-André Lureau ebf3a6e856 audio: simplify audio_driver_init()
Catch and return from error early to avoid indentations and ease the
flow & return a bool for success value. All driver init() calls have
been checked to set errp on error.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 13:30:06 +04:00
Marc-André Lureau 952742ec6b audio/dsound: report init error via **errp
Whenever NULL is returned, errp should be set.

Inline SetCooperativeLevel call to simplify code.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 13:30:06 +04:00
Marc-André Lureau a9e0a4340e audio/dsound: simplify init()
Use dsound_audio_fini() on error & fail if the capture failed to
initialize too.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-10-30 13:30:06 +04:00