From: Eric Blake <eblake@redhat.com>
To: "\"Kővágó, Zoltán\"" <dirty.ice.hu@gmail.com>, qemu-devel@nongnu.org
Cc: Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 07/12] qapi: qapi for audio backends
Date: Fri, 12 Jun 2015 16:11:58 -0600 [thread overview]
Message-ID: <557B592E.20103@redhat.com> (raw)
In-Reply-To: <5dee9d7d95eb2260edcc0de0d1090366f159b03f.1434111578.git.DirtY.iCE.hu@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 5458 bytes --]
On 06/12/2015 06:33 AM, Kővágó, Zoltán wrote:
> This patch adds structures into qapi to replace the existing configuration
> structures used by audio backends currently. This qapi will be the base of the
> -audiodev command line parameter (that replaces the old environment variables
> based config).
>
> This is not a 1:1 translation of the old options, I've tried to make them much
> more consistent (e.g. almost every backend had an option to specify buffer size,
> but the name was different for every backend, and some backends required usecs,
> while some other required frames, samples or bytes). Also tried to reduce the
> number of abbreviations used by the config keys.
>
> Some of the more important changes:
> * use `in` and `out` instead of `ADC` and `DAC`, as the former is more user
> friendly imho
> * moved buffer settings into the global setting area (so it's the same for all
> backends that support it. Backends that can't change buffer size will simply
> ignore them). Also using usecs, as it's probably more user friendly than
> samples or bytes.
> * try-poll is now an alsa and oss backend specific option (as all other backends
> currently ignore it)
>
> Signed-off-by: Kővágó, Zoltán <DirtY.iCE.hu@gmail.com>
>
> ---
> +++ b/qapi/audio.json
> @@ -0,0 +1,217 @@
> +# -*- mode: python -*-
> +
> +##
> +# @AudiodevNoneOptions
Might be nice to include copyright/license, but this is not the first
.json file missing it.
> +#
> +# The none, coreaudio, sdl and spice audio backend has no options.
s/has/have/
> +#
> +# Since: 2.4
> +##
> +{ 'struct': 'AudiodevNoneOptions',
> + 'data': { } }
Maybe s/None/No/ (since it is shared by backends that have no options),
but I can live with it as-is (since it is used by the 'none' backend).
> +##
> +# @AudiodevAlsaOptions
> +#
> +# Options of the alsa audio backend.
> +#
> +# @in: #optional options of the capture stream
> +#
> +# @out: #optional options of the playback stream
Marked optional here...
> +#
> +# @threshold: #optional set the threshold (in frames) when playback starts
> +#
> +# Since: 2.4
> +##
> +{ 'struct': 'AudiodevAlsaOptions',
> + 'data': {
> + 'in': 'AudiodevAlsaPerDirectionOptions',
> + 'out': 'AudiodevAlsaPerDirectionOptions',
...but not here.
> + '*threshold': 'int' } }
> +
> +##
> +# @AudiodevDsoundOptions
> +#
> +# Options of the dsound audio backend.
> +#
> +# @latency-millis: #optional add extra latency to playback
> +#
> +# Since: 2.4
> +##
> +{ 'struct': 'AudiodevDsoundOptions',
> + 'data': {
> + '*latency-millis': 'int' } }
Style question - should we just call this 'latency', and document the
milliseconds unit in the description? But having the name latency_millis
in C code might not be all that bad, so you may not want to change this one.
> +##
> +# @AudiodevOssOptions
> +#
> +# Options of the oss audio backend.
> +#
> +# @in: #optional options of the capture stream
> +#
> +# @out: #optional options of the playback stream
> +#
> +# @mmap: #optional try using memory mapped access
> +#
> +# @exclusive: #optional open device in exclusive mode (vmix wont work)
s/wont/won't/
> +#
> +# @dsp-policy: #optional set the timing policy of the device, -1 to use fragment
> +# mode (option ignored on some platforms)
> +#
> +# Since: 2.4
> +##
> +{ 'struct': 'AudiodevOssOptions',
> + 'data': {
> + 'in': 'AudiodevOssPerDirectionOptions',
> + 'out': 'AudiodevOssPerDirectionOptions',
Again, inconsistent on the optional marking.
> +##
> +# @AudiodevPerDirectionOptions
> +#
> +# General audio backend options that are used for both playback and recording.
> +#
> +# @fixed-settings: #optional use fixed settings for host DAC/ADC
> +#
> +# @frequency: #optional frequency to use when using fixed settings
> +#
> +# @channels: #optional number of channels when using fixed settings
> +#
> +# @format: #optional sample fortmat to use when using fixed settings
s/fortmat/format/
> +#
> +# @buffer-usecs: #optional the buffer size in microseconds
> +#
> +# @buffer-count: #optional nuber of buffers
> +#
s/nuber/number/
> +# Since: 2.4
> +##
> +{ 'struct': 'AudiodevPerDirectionOptions',
> + 'data': {
> + '*fixed-settings': 'bool',
> + '*frequency': 'int',
> + '*channels': 'int',
> + '*voices': 'int',
> + '*format': 'AudioFormat',
> + '*buffer-usecs': 'int',
> + '*buffer-count': 'int' } }
> +
> +##
> +# @Audiodev
> +#
> +# Captures the configuration of an audio backend.
> +#
> +# @id: identifier of the backend
> +#
> +# @in: #optional options of the capture stream
> +#
> +# @out: #optional options of the playback stream
> +#
> +# @timer-period: #optional timer period in HZ (0 - use lowest possible)
> +#
> +# @opts: audio backend specific options
> +#
> +# Since: 2.4
> +##
> +{ 'struct': 'Audiodev',
> + 'data': {
> + '*id': 'str',
> + 'in': 'AudiodevPerDirectionOptions',
> + 'out': 'AudiodevPerDirectionOptions',
Another mismatch in optional marking.
> + '*timer-period': 'int',
> + 'opts': 'AudiodevBackendOptions' } }
>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2015-06-12 22:12 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-12 12:33 [Qemu-devel] [PATCH 00/12] -audiodev option Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 01/12] audio: remove LOG_TO_MONITOR along with default_mon Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 02/12] audio: remove plive Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 03/12] dsoundaudio: remove *_retries kludges Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 04/12] dsoundaudio: remove primary buffer Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 05/12] alsaaudio: use trace events instead of verbose Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 06/12] ossaudio: use trace events instead of debug config flag Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 07/12] qapi: qapi for audio backends Kővágó, Zoltán
2015-06-12 22:11 ` Eric Blake [this message]
2015-06-12 22:59 ` Kővágó Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 08/12] qapi: support nested structs in OptsVisitor Kővágó, Zoltán
2015-06-15 8:39 ` Gerd Hoffmann
2015-06-12 12:33 ` [Qemu-devel] [PATCH 09/12] opts: do not print separator before first item in qemu_opts_print Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 10/12] qapi: AllocVisitor Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 11/12] audio: use qapi AudioFormat instead of audfmt_e Kővágó, Zoltán
2015-06-12 12:33 ` [Qemu-devel] [PATCH 12/12] audio: -audiodev command line option Kővágó, Zoltán
2015-06-15 9:01 ` [Qemu-devel] [PATCH 00/12] -audiodev option Gerd Hoffmann
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=557B592E.20103@redhat.com \
--to=eblake@redhat.com \
--cc=dirty.ice.hu@gmail.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.