[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 15/24] audio: add mixing-engine option (documentation)
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v4 15/24] audio: add mixing-engine option (documentation) |
Date: |
Mon, 23 Sep 2019 15:08:20 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
"Kővágó, Zoltán" <address@hidden> writes:
> This will allow us to disable mixeng when we use a decent backend.
>
> Disabling mixeng have a few advantages:
> * we no longer convert the audio output from one format to another, when
> the underlying audio system would just convert it to a third format.
> We no longer convert, only the underlying system, when needed.
> * the underlying system probably has better resampling and sample format
> converting methods anyway...
> * we may support formats that the mixeng currently does not support (S24
> or float samples, more than two channels)
> * when using an audio server (like pulseaudio) different sound card
> outputs will show up as separate streams, even if we use only one
> backend
>
> Disadvantages:
> * audio capturing no longer works (wavcapture, and vnc audio extension)
> * some backends only support a single playback stream or very picky
> about the audio format. In this case we can't disable mixeng.
>
> However mixeng is not removed, only made optional, so this shouldn't be
> a big concern.
>
> Signed-off-by: Kővágó, Zoltán <address@hidden>
> ---
>
> Notes:
> Changes from v1:
>
> * renamed mixeng to mixing-engine
>
> qapi/audio.json | 5 +++++
> qemu-options.hx | 6 ++++++
> 2 files changed, 11 insertions(+)
>
> diff --git a/qapi/audio.json b/qapi/audio.json
> index 9fefdf5186..0535eff794 100644
> --- a/qapi/audio.json
> +++ b/qapi/audio.json
> @@ -11,6 +11,10 @@
> # General audio backend options that are used for both playback and
> # recording.
> #
> +# @mixing-engine: use QEMU's mixing engine to mix all streams inside QEMU.
> When
> +# set to off, fixed-settings must be also off. Not every
> backend
> +# compatible with the off setting (default on, since 4.2)
> +#
Last sentence no verb.
Which backends are compatible?
What happens when you try the off setting with incompatible backends?
> # @fixed-settings: use fixed settings for host input/output. When off,
> # frequency, channels and format must not be
> # specified (default true)
> @@ -31,6 +35,7 @@
> ##
> { 'struct': 'AudiodevPerDirectionOptions',
> 'data': {
> + '*mixing-engine': 'bool',
> '*fixed-settings': 'bool',
> '*frequency': 'uint32',
> '*channels': 'uint32',
> diff --git a/qemu-options.hx b/qemu-options.hx
> index bbfd936d29..395427422a 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -433,6 +433,7 @@ DEF("audiodev", HAS_ARG, QEMU_OPTION_audiodev,
> " specifies the audio backend to use\n"
> " id= identifier of the backend\n"
> " timer-period= timer period in microseconds\n"
> + " in|out.mixing-engine= use mixing engine to mix streams
> inside QEMU\n"
> " in|out.fixed-settings= use fixed settings for host
> audio\n"
> " in|out.frequency= frequency to use with fixed
> settings\n"
> " in|out.channels= number of channels to use with fixed
> settings\n"
> @@ -503,6 +504,11 @@ Identifies the audio backend.
> Sets the timer @var{period} used by the audio subsystem in microseconds.
> Default is 10000 (10 ms).
>
> +@item in|out.mixing-engine=on|off
> +Use QEMU's mixing engine to mix all streams inside QEMU. When off,
> +@var{fixed-settings} must be off too. Not every backend is fully
> +compatible with the off setting. Default is on.
> +
> @item in|out.fixed-settings=on|off
> Use fixed settings for host audio. When off, it will change based on
> how the guest opens the sound card. In this case you must not specify
- [PATCH v4 01/24] audio: api for mixeng code free backends, (continued)
- [PATCH v4 01/24] audio: api for mixeng code free backends, Kővágó, Zoltán, 2019/09/19
- [PATCH v4 03/24] coreaudio: port to the new audio backend api, Kővágó, Zoltán, 2019/09/19
- [PATCH v4 05/24] noaudio: port to the new audio backend api, Kővágó, Zoltán, 2019/09/19
- [PATCH v4 04/24] dsoundaudio: port to the new audio backend api, Kővágó, Zoltán, 2019/09/19
- [PATCH v4 07/24] paaudio: port to the new audio backend api, Kővágó, Zoltán, 2019/09/19
- [PATCH v4 11/24] audio: remove remains of the old backend api, Kővágó, Zoltán, 2019/09/19
- [PATCH v4 06/24] ossaudio: port to the new audio backend api, Kővágó, Zoltán, 2019/09/19
- [PATCH v4 10/24] wavaudio: port to the new audio backend api, Kővágó, Zoltán, 2019/09/19
- [PATCH v4 08/24] sdlaudio: port to the new audio backend api, Kővágó, Zoltán, 2019/09/19
- [PATCH v4 15/24] audio: add mixing-engine option (documentation), Kővágó, Zoltán, 2019/09/19
- Re: [PATCH v4 15/24] audio: add mixing-engine option (documentation),
Markus Armbruster <=
[PATCH v4 13/24] audio: common rate control code for timer based outputs, Kővágó, Zoltán, 2019/09/19
[PATCH v4 12/24] audio: unify input and output mixeng buffer management, Kővágó, Zoltán, 2019/09/19
[PATCH v4 21/24] paaudio: channel-map option, Kővágó, Zoltán, 2019/09/19