qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Kővágó Zoltán" <dirty.ice.hu@gmail.com>
To: "Marc-André Lureau" <marcandre.lureau@gmail.com>
Cc: Markus Armbruster <armbru@redhat.com>,
	QEMU <qemu-devel@nongnu.org>, Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 22/25] audio: add mixeng option (documentation)
Date: Fri, 21 Aug 2015 15:46:34 +0200	[thread overview]
Message-ID: <55D72BBA.1060705@gmail.com> (raw)
In-Reply-To: <CAJ+F1CKPYDDaye6p-aJd8POBTUMKHdvCGTypGFkYMrP9vVR4ag@mail.gmail.com>

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 <dirty.ice.hu@gmail.com> 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 <DirtY.iCE.hu@gmail.com>
>> ---
>>   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).
>>
>> +@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.4.5
>>
>>
>
>
>

  reply	other threads:[~2015-08-21 13:46 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-06 18:28 [Qemu-devel] [PATCH 00/25] audio: -audiodev option, multiple options Kővágó, Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 01/25] qapi: support implicit structs in OptsVisitor Kővágó, Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 02/25] qapi: convert NumaOptions into a flat union Kővágó, Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 03/25] net: remove NetLegacy struct Kővágó, Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 04/25] net: use Netdev instead of NetClientOptions in client init Kővágó, Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 05/25] qapi: change Netdev into a flat union Kővágó, Zoltán
2015-08-20 15:03   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 06/25] qapi: reorder NetdevBase and Netdev Kővágó, Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 07/25] qapi: qapi for audio backends Kővágó, Zoltán
2015-08-20 15:30   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 08/25] qapi: support nested structs in OptsVisitor Kővágó, Zoltán
2015-08-20 15:55   ` Marc-André Lureau
2015-08-20 21:21     ` Kővágó Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 09/25] audio: use qapi AudioFormat instead of audfmt_e Kővágó, Zoltán
2015-08-20 16:00   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 10/25] audio: -audiodev command line option Kővágó, Zoltán
2015-08-20 17:17   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 11/25] audio: reduce glob_audio_state usage Kővágó, Zoltán
2015-08-20 17:39   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 12/25] audio: basic support for multi backend audio Kővágó, Zoltán
2015-08-20 18:01   ` Marc-André Lureau
2015-08-21 12:23     ` Kővágó Zoltán
2015-08-21 14:24       ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 13/25] audio: add audiodev properties to frontends Kővágó, Zoltán
2015-08-20 18:55   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 14/25] audio: audiodev= parameters no longer optional when -audiodev present Kővágó, Zoltán
2015-08-20 19:15   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 15/25] paaudio: do not create multiple connections to the same server Kővágó, Zoltán
2015-08-20 19:38   ` Marc-André Lureau
2015-08-21 12:41     ` Kővágó Zoltán
2015-08-21 14:36       ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 16/25] paaudio: properly disconnect streams in fini_* Kővágó, Zoltán
2015-08-20 20:29   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 17/25] audio: remove gcc specific audio_MIN, audio_MAX Kővágó, Zoltán
2015-08-19 18:17   ` Gerd Hoffmann
2015-08-19 23:31     ` Peter Maydell
2015-08-20 20:36   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 18/25] audio: do not run each backend in audio_run Kővágó, Zoltán
2015-08-20 20:49   ` Marc-André Lureau
2015-08-21 12:59     ` Kővágó Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 19/25] paaudio: fix playback glitches Kővágó, Zoltán
2015-08-20 22:08   ` Marc-André Lureau
2015-08-21 13:18     ` Kővágó Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 20/25] audio: remove mixeng specific code from backends Kővágó, Zoltán
2015-08-19 19:07   ` Gerd Hoffmann
2015-08-20 22:28     ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 21/25] audio: common rate control code for timer based outputs Kővágó, Zoltán
2015-08-20 22:37   ` Marc-André Lureau
2015-08-21 13:34     ` Kővágó Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 22/25] audio: add mixeng option (documentation) Kővágó, Zoltán
2015-08-20 22:49   ` Marc-André Lureau
2015-08-21 13:46     ` Kővágó Zoltán [this message]
2015-08-06 18:28 ` [Qemu-devel] [PATCH 23/25] audio: make mixeng optional Kővágó, Zoltán
2015-08-20 22:56   ` Marc-André Lureau
2015-08-06 18:28 ` [Qemu-devel] [PATCH 24/25] paaudio: get/put_buffer functions Kővágó, Zoltán
2015-08-06 18:28 ` [Qemu-devel] [PATCH 25/25] audio: split ctl_* functions into enable_* and volume_* Kővágó, Zoltán
2015-08-20 23:05   ` Marc-André Lureau

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=55D72BBA.1060705@gmail.com \
    --to=dirty.ice.hu@gmail.com \
    --cc=armbru@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=marcandre.lureau@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).