qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 22/25] audio: add mixeng option (documentation)


From: Kővágó Zoltán
Subject: Re: [Qemu-devel] [PATCH 22/25] audio: add mixeng option (documentation)
Date: Fri, 21 Aug 2015 15:46:34 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0

2015-08-21 00:49 keltezéssel, Marc-André Lureau írta:
Hi

On Thu, Aug 6, 2015 at 8:28 PM, Kővágó, Zoltán <address@hidden> wrote:
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.


Since the setting is so complicated, shouldn't it be a OnOffAuto? and
let the backend decide what's best for the user?

Because of the items under disadvantages, the default must be on for backward compatibility. And how would we choose the auto one? For the time being it's only useful in some specific cases (like my upcoming 5.1 support), so we should probably stay with OnOff (adding an auto option is possible later), expecting the user knows what he/she is doing if he/she disables it.


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>
---
  qapi/audio.json | 5 +++++
  qemu-options.hx | 6 ++++++
  2 files changed, 11 insertions(+)

diff --git a/qapi/audio.json b/qapi/audio.json
index b57b215..0216a10 100644
--- a/qapi/audio.json
+++ b/qapi/audio.json
@@ -184,6 +184,10 @@
  #
  # General audio backend options that are used for both playback and recording.
  #
+# @mixeng: #optional 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)
+#
  # @fixed-settings: #optional use fixed settings for host input/output.  When
  #                  off, frequency, channels and format must not be specified
  #                  (default on)
@@ -207,6 +211,7 @@
  ##
  { 'struct': 'AudiodevPerDirectionOptions',
    'data': {
+    '*mixeng':         'bool',
      '*fixed-settings': 'bool',
      '*frequency':      'int',
      '*channels':       'int',
diff --git a/qemu-options.hx b/qemu-options.hx
index 60a3563..bd922bf 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -329,6 +329,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.mixeng= use mixeng 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"
@@ -397,6 +398,11 @@ Identifies the audio backend.
  Sets the timer @var{period} used by the audio subsystem in microseconds.
  Default is 10000 (10 ms).

address@hidden in|out.mixeng=on|off
+Use QEMU's mixing engine to mix all streams inside QEMU.  When off,
address@hidden 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
--
2.4.5









reply via email to

[Prev in Thread] Current Thread [Next in Thread]