All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Kővágó, Zoltán" <dirty.ice.hu@gmail.com>
To: qemu-devel@nongnu.org
Cc: Gerd Hoffmann <kraxel@redhat.com>, Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>
Subject: [Qemu-devel] [PATCH v3 41/50] audio: add mixeng option (documentation)
Date: Thu, 17 Jan 2019 00:37:14 +0100	[thread overview]
Message-ID: <48943170cf1619d5d2aadfaebf450a017316d8d2.1547681517.git.DirtY.iCE.hu@gmail.com> (raw)
In-Reply-To: <cover.1547681517.git.DirtY.iCE.hu@gmail.com>

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 <DirtY.iCE.hu@gmail.com>
---

Notes:
    Changes from v2:
    * removed #optional

 qapi/audio.json | 5 +++++
 qemu-options.hx | 6 ++++++
 2 files changed, 11 insertions(+)

diff --git a/qapi/audio.json b/qapi/audio.json
index bd6e2494bd..7bcea6240f 100644
--- a/qapi/audio.json
+++ b/qapi/audio.json
@@ -172,6 +172,10 @@
 #
 # General audio backend options that are used for both playback and recording.
 #
+# @mixeng: 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: use fixed settings for host input/output. When off,
 #                  frequency, channels and format must not be specified
 #                  (default on)
@@ -192,6 +196,7 @@
 ##
 { 'struct': 'AudiodevPerDirectionOptions',
   'data': {
+    '*mixeng':         'bool',
     '*fixed-settings': 'bool',
     '*frequency':      'uint32',
     '*channels':       'uint32',
diff --git a/qemu-options.hx b/qemu-options.hx
index 098508ce09..53fc5ef453 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -432,6 +432,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"
@@ -500,6 +501,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.mixeng=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
-- 
2.20.1

  parent reply	other threads:[~2019-01-16 23:38 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-16 23:36 [Qemu-devel] [PATCH v3 00/50] Audio 5.1 patches Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 01/50] qapi: qapi for audio backends Kővágó, Zoltán
2019-01-17  8:54   ` Gerd Hoffmann
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 02/50] audio: use qapi AudioFormat instead of audfmt_e Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 03/50] audio: -audiodev command line option: documentation Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 04/50] audio: -audiodev command line option basic implementation Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 05/50] alsaaudio: port to -audiodev config Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 06/50] coreaudio: " Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 07/50] dsoundaudio: " Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 08/50] noaudio: " Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 09/50] ossaudio: " Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 10/50] paaudio: " Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 11/50] sdlaudio: " Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 12/50] spiceaudio: " Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 13/50] wavaudio: " Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 14/50] audio: -audiodev command line option: cleanup Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 15/50] audio: reduce glob_audio_state usage Kővágó, Zoltán
2019-01-17  9:22   ` Gerd Hoffmann
2019-01-23 20:16     ` Zoltán Kővágó
2019-01-24  7:42       ` Gerd Hoffmann
2019-01-24 11:19         ` Gerd Hoffmann
2019-01-24 20:12           ` Zoltán Kővágó
2019-01-25  6:57             ` Gerd Hoffmann
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 16/50] audio: basic support for multi backend audio Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 17/50] audio: add audiodev properties to frontends Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 18/50] audio: audiodev= parameters no longer optional when -audiodev present Kővágó, Zoltán
2019-01-17  9:42   ` Gerd Hoffmann
2019-01-17  9:46   ` Gerd Hoffmann
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 19/50] paaudio: do not move stream when sink/source name is specified Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 20/50] paaudio: properly disconnect streams in fini_* Kővágó, Zoltán
2019-01-17  5:53   ` Marc-André Lureau
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 21/50] audio: remove audio_MIN, audio_MAX Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 22/50] audio: do not run each backend in audio_run Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 23/50] paaudio: fix playback glitches Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 24/50] audio: remove read and write pcm_ops Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 25/50] audio: use size_t where makes sense Kővágó, Zoltán
2019-01-16 23:36 ` [Qemu-devel] [PATCH v3 26/50] audio: api for mixeng code free backends Kővágó, Zoltán
2019-01-17  9:52   ` Gerd Hoffmann
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 27/50] alsaaudio: port to the new audio backend api Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 28/50] coreaudio: " Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 29/50] dsoundaudio: " Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 30/50] noaudio: " Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 31/50] ossaudio: " Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 32/50] paaudio: " Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 33/50] sdlaudio: " Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 34/50] spiceaudio: " Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 35/50] wavaudio: " Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 36/50] audio: remove remains of the old " Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 37/50] audio: unify input and output mixeng buffer management Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 38/50] audio: remove hw->samples, buffer_size_in/out pcm_ops Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 39/50] audio: common rate control code for timer based outputs Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 40/50] audio: split ctl_* functions into enable_* and volume_* Kővágó, Zoltán
2019-01-16 23:37 ` Kővágó, Zoltán [this message]
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 42/50] audio: make mixeng optional Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 43/50] paaudio: get/put_buffer functions Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 44/50] audio: support more than two channels in volume setting Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 45/50] audio: replace shift in audio_pcm_info with bytes_per_frame Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 46/50] audio: basic support for multichannel audio Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 47/50] paaudio: channel-map option Kővágó, Zoltán
2019-01-17 10:03   ` Gerd Hoffmann
2019-01-23 20:13     ` Zoltán Kővágó
2019-01-23 20:33       ` Eric Blake
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 48/50] usb-audio: do not count on avail bytes actually available Kővágó, Zoltán
2019-01-16 23:37 ` [Qemu-devel] [PATCH v3 50/50] usbaudio: change playback counters to 64 bit Kővágó, Zoltán

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48943170cf1619d5d2aadfaebf450a017316d8d2.1547681517.git.DirtY.iCE.hu@gmail.com \
    --to=dirty.ice.hu@gmail.com \
    --cc=armbru@redhat.com \
    --cc=eblake@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.