audio.json (eb5c3932a383ba1ef3a911232c644f2e053ef66c) audio.json (a937b6aa739f65f2cae2ad9a7eb65a309ad2a359)
1# -*- mode: python -*-
2# vim: filetype=python
3#
4# Copyright (C) 2015-2019 Zoltán Kővágó <DirtY.iCE.hu@gmail.com>
5#
6# This work is licensed under the terms of the GNU GPL, version 2 or later.
7# See the COPYING file in the top-level directory.
8
9##
10# = Audio
11##
12
13##
14# @AudiodevPerDirectionOptions:
15#
16# General audio backend options that are used for both playback and
17# recording.
18#
1# -*- mode: python -*-
2# vim: filetype=python
3#
4# Copyright (C) 2015-2019 Zoltán Kővágó <DirtY.iCE.hu@gmail.com>
5#
6# This work is licensed under the terms of the GNU GPL, version 2 or later.
7# See the COPYING file in the top-level directory.
8
9##
10# = Audio
11##
12
13##
14# @AudiodevPerDirectionOptions:
15#
16# General audio backend options that are used for both playback and
17# recording.
18#
19# @mixing-engine: use QEMU's mixing engine to mix all streams inside QEMU and
20# convert audio formats when not supported by the backend. When
21# set to off, fixed-settings must be also off (default on,
22# since 4.2)
19# @mixing-engine: use QEMU's mixing engine to mix all streams inside
20# QEMU and convert audio formats when not supported by the
21# backend. When set to off, fixed-settings must be also off
22# (default on, since 4.2)
23#
23#
24# @fixed-settings: use fixed settings for host input/output. When off,
25# frequency, channels and format must not be
26# specified (default true)
24# @fixed-settings: use fixed settings for host input/output. When
25# off, frequency, channels and format must not be specified
26# (default true)
27#
27#
28# @frequency: frequency to use when using fixed settings
29# (default 44100)
28# @frequency: frequency to use when using fixed settings (default
29# 44100)
30#
31# @channels: number of channels when using fixed settings (default 2)
32#
33# @voices: number of voices to use (default 1)
34#
30#
31# @channels: number of channels when using fixed settings (default 2)
32#
33# @voices: number of voices to use (default 1)
34#
35# @format: sample format to use when using fixed settings
36# (default s16)
35# @format: sample format to use when using fixed settings (default
36# s16)
37#
38# @buffer-length: the buffer length in microseconds
39#
40# Since: 4.0
41##
42{ 'struct': 'AudiodevPerDirectionOptions',
43 'data': {
44 '*mixing-engine': 'bool',

--- 26 unchanged lines hidden (view full) ---

71# Options of the ALSA backend that are used for both playback and
72# recording.
73#
74# @dev: the name of the ALSA device to use (default 'default')
75#
76# @period-length: the period length in microseconds
77#
78# @try-poll: attempt to use poll mode, falling back to non-polling
37#
38# @buffer-length: the buffer length in microseconds
39#
40# Since: 4.0
41##
42{ 'struct': 'AudiodevPerDirectionOptions',
43 'data': {
44 '*mixing-engine': 'bool',

--- 26 unchanged lines hidden (view full) ---

71# Options of the ALSA backend that are used for both playback and
72# recording.
73#
74# @dev: the name of the ALSA device to use (default 'default')
75#
76# @period-length: the period length in microseconds
77#
78# @try-poll: attempt to use poll mode, falling back to non-polling
79# access on failure (default true)
79# access on failure (default true)
80#
81# Since: 4.0
82##
83{ 'struct': 'AudiodevAlsaPerDirectionOptions',
84 'base': 'AudiodevPerDirectionOptions',
85 'data': {
86 '*dev': 'str',
87 '*period-length': 'uint32',

--- 38 unchanged lines hidden (view full) ---

126 '*in': 'AudiodevPerDirectionOptions',
127 '*out': 'AudiodevPerDirectionOptions',
128 '*dev': 'str',
129 '*latency': 'uint32'} }
130
131##
132# @AudiodevCoreaudioPerDirectionOptions:
133#
80#
81# Since: 4.0
82##
83{ 'struct': 'AudiodevAlsaPerDirectionOptions',
84 'base': 'AudiodevPerDirectionOptions',
85 'data': {
86 '*dev': 'str',
87 '*period-length': 'uint32',

--- 38 unchanged lines hidden (view full) ---

126 '*in': 'AudiodevPerDirectionOptions',
127 '*out': 'AudiodevPerDirectionOptions',
128 '*dev': 'str',
129 '*latency': 'uint32'} }
130
131##
132# @AudiodevCoreaudioPerDirectionOptions:
133#
134# Options of the Core Audio backend that are used for both playback and
135# recording.
134# Options of the Core Audio backend that are used for both playback
135# and recording.
136#
137# @buffer-count: number of buffers
138#
139# Since: 4.0
140##
141{ 'struct': 'AudiodevCoreaudioPerDirectionOptions',
142 'base': 'AudiodevPerDirectionOptions',
143 'data': {

--- 19 unchanged lines hidden (view full) ---

163# @AudiodevDsoundOptions:
164#
165# Options of the DirectSound audio backend.
166#
167# @in: options of the capture stream
168#
169# @out: options of the playback stream
170#
136#
137# @buffer-count: number of buffers
138#
139# Since: 4.0
140##
141{ 'struct': 'AudiodevCoreaudioPerDirectionOptions',
142 'base': 'AudiodevPerDirectionOptions',
143 'data': {

--- 19 unchanged lines hidden (view full) ---

163# @AudiodevDsoundOptions:
164#
165# Options of the DirectSound audio backend.
166#
167# @in: options of the capture stream
168#
169# @out: options of the playback stream
170#
171# @latency: add extra latency to playback in microseconds
172# (default 10000)
171# @latency: add extra latency to playback in microseconds (default
172# 10000)
173#
174# Since: 4.0
175##
176{ 'struct': 'AudiodevDsoundOptions',
177 'data': {
178 '*in': 'AudiodevPerDirectionOptions',
179 '*out': 'AudiodevPerDirectionOptions',
180 '*latency': 'uint32' } }
181
182##
183# @AudiodevJackPerDirectionOptions:
184#
185# Options of the JACK backend that are used for both playback and
186# recording.
187#
173#
174# Since: 4.0
175##
176{ 'struct': 'AudiodevDsoundOptions',
177 'data': {
178 '*in': 'AudiodevPerDirectionOptions',
179 '*out': 'AudiodevPerDirectionOptions',
180 '*latency': 'uint32' } }
181
182##
183# @AudiodevJackPerDirectionOptions:
184#
185# Options of the JACK backend that are used for both playback and
186# recording.
187#
188# @server-name: select from among several possible concurrent server instances
189# (default: environment variable $JACK_DEFAULT_SERVER if set, else "default")
188# @server-name: select from among several possible concurrent server
189# instances (default: environment variable $JACK_DEFAULT_SERVER if
190# set, else "default")
190#
191#
191# @client-name: the client name to use. The server will modify this name to
192# create a unique variant, if needed unless @exact-name is true (default: the
193# guest's name)
192# @client-name: the client name to use. The server will modify this
193# name to create a unique variant, if needed unless @exact-name is
194# true (default: the guest's name)
194#
195#
195# @connect-ports: if set, a regular expression of JACK client port name(s) to
196# monitor for and automatically connect to
196# @connect-ports: if set, a regular expression of JACK client port
197# name(s) to monitor for and automatically connect to
197#
198#
198# @start-server: start a jack server process if one is not already present
199# (default: false)
199# @start-server: start a jack server process if one is not already
200# present (default: false)
200#
201#
201# @exact-name: use the exact name requested otherwise JACK automatically
202# generates a unique one, if needed (default: false)
202# @exact-name: use the exact name requested otherwise JACK
203# automatically generates a unique one, if needed (default: false)
203#
204# Since: 5.1
205##
206{ 'struct': 'AudiodevJackPerDirectionOptions',
207 'base': 'AudiodevPerDirectionOptions',
208 'data': {
209 '*server-name': 'str',
210 '*client-name': 'str',

--- 23 unchanged lines hidden (view full) ---

234# Options of the OSS backend that are used for both playback and
235# recording.
236#
237# @dev: file name of the OSS device (default '/dev/dsp')
238#
239# @buffer-count: number of buffers
240#
241# @try-poll: attempt to use poll mode, falling back to non-polling
204#
205# Since: 5.1
206##
207{ 'struct': 'AudiodevJackPerDirectionOptions',
208 'base': 'AudiodevPerDirectionOptions',
209 'data': {
210 '*server-name': 'str',
211 '*client-name': 'str',

--- 23 unchanged lines hidden (view full) ---

235# Options of the OSS backend that are used for both playback and
236# recording.
237#
238# @dev: file name of the OSS device (default '/dev/dsp')
239#
240# @buffer-count: number of buffers
241#
242# @try-poll: attempt to use poll mode, falling back to non-polling
242# access on failure (default true)
243# access on failure (default true)
243#
244# Since: 4.0
245##
246{ 'struct': 'AudiodevOssPerDirectionOptions',
247 'base': 'AudiodevPerDirectionOptions',
248 'data': {
249 '*dev': 'str',
250 '*buffer-count': 'uint32',

--- 4 unchanged lines hidden (view full) ---

255#
256# Options of the OSS audio backend.
257#
258# @in: options of the capture stream
259#
260# @out: options of the playback stream
261#
262# @try-mmap: try using memory-mapped access, falling back to
244#
245# Since: 4.0
246##
247{ 'struct': 'AudiodevOssPerDirectionOptions',
248 'base': 'AudiodevPerDirectionOptions',
249 'data': {
250 '*dev': 'str',
251 '*buffer-count': 'uint32',

--- 4 unchanged lines hidden (view full) ---

256#
257# Options of the OSS audio backend.
258#
259# @in: options of the capture stream
260#
261# @out: options of the playback stream
262#
263# @try-mmap: try using memory-mapped access, falling back to
263# non-memory-mapped access on failure (default true)
264# non-memory-mapped access on failure (default true)
264#
265#
265# @exclusive: open device in exclusive mode (vmix won't work)
266# (default false)
266# @exclusive: open device in exclusive mode (vmix won't work) (default
267# false)
267#
268# @dsp-policy: set the timing policy of the device (between 0 and 10,
268#
269# @dsp-policy: set the timing policy of the device (between 0 and 10,
269# where smaller number means smaller latency but higher
270# CPU usage) or -1 to use fragment mode (option ignored
271# on some platforms) (default 5)
270# where smaller number means smaller latency but higher CPU usage)
271# or -1 to use fragment mode (option ignored on some platforms)
272# (default 5)
272#
273# Since: 4.0
274##
275{ 'struct': 'AudiodevOssOptions',
276 'data': {
277 '*in': 'AudiodevOssPerDirectionOptions',
278 '*out': 'AudiodevOssPerDirectionOptions',
279 '*try-mmap': 'bool',
280 '*exclusive': 'bool',
281 '*dsp-policy': 'uint32' } }
282
283##
284# @AudiodevPaPerDirectionOptions:
285#
273#
274# Since: 4.0
275##
276{ 'struct': 'AudiodevOssOptions',
277 'data': {
278 '*in': 'AudiodevOssPerDirectionOptions',
279 '*out': 'AudiodevOssPerDirectionOptions',
280 '*try-mmap': 'bool',
281 '*exclusive': 'bool',
282 '*dsp-policy': 'uint32' } }
283
284##
285# @AudiodevPaPerDirectionOptions:
286#
286# Options of the Pulseaudio backend that are used for both playback and
287# recording.
287# Options of the Pulseaudio backend that are used for both playback
288# and recording.
288#
289# @name: name of the sink/source to use
290#
291# @stream-name: name of the PulseAudio stream created by qemu. Can be
289#
290# @name: name of the sink/source to use
291#
292# @stream-name: name of the PulseAudio stream created by qemu. Can be
292# used to identify the stream in PulseAudio when you
293# create multiple PulseAudio devices or run multiple qemu
294# instances (default: audiodev's id, since 4.2)
293# used to identify the stream in PulseAudio when you create
294# multiple PulseAudio devices or run multiple qemu instances
295# (default: audiodev's id, since 4.2)
295#
296# @latency: latency you want PulseAudio to achieve in microseconds
296#
297# @latency: latency you want PulseAudio to achieve in microseconds
297# (default 15000)
298# (default 15000)
298#
299# Since: 4.0
300##
301{ 'struct': 'AudiodevPaPerDirectionOptions',
302 'base': 'AudiodevPerDirectionOptions',
303 'data': {
304 '*name': 'str',
305 '*stream-name': 'str',

--- 22 unchanged lines hidden (view full) ---

328# @AudiodevPipewirePerDirectionOptions:
329#
330# Options of the Pipewire backend that are used for both playback and
331# recording.
332#
333# @name: name of the sink/source to use
334#
335# @stream-name: name of the Pipewire stream created by qemu. Can be
299#
300# Since: 4.0
301##
302{ 'struct': 'AudiodevPaPerDirectionOptions',
303 'base': 'AudiodevPerDirectionOptions',
304 'data': {
305 '*name': 'str',
306 '*stream-name': 'str',

--- 22 unchanged lines hidden (view full) ---

329# @AudiodevPipewirePerDirectionOptions:
330#
331# Options of the Pipewire backend that are used for both playback and
332# recording.
333#
334# @name: name of the sink/source to use
335#
336# @stream-name: name of the Pipewire stream created by qemu. Can be
336# used to identify the stream in Pipewire when you
337# create multiple Pipewire devices or run multiple qemu
338# instances (default: audiodev's id)
337# used to identify the stream in Pipewire when you create multiple
338# Pipewire devices or run multiple qemu instances (default:
339# audiodev's id)
339#
340# @latency: latency you want Pipewire to achieve in microseconds
340#
341# @latency: latency you want Pipewire to achieve in microseconds
341# (default 46000)
342# (default 46000)
342#
343# Since: 8.1
344##
345{ 'struct': 'AudiodevPipewirePerDirectionOptions',
346 'base': 'AudiodevPerDirectionOptions',
347 'data': {
348 '*name': 'str',
349 '*stream-name': 'str',

--- 117 unchanged lines hidden (view full) ---

467# @Audiodev:
468#
469# Options of an audio backend.
470#
471# @id: identifier of the backend
472#
473# @driver: the backend driver to use
474#
343#
344# Since: 8.1
345##
346{ 'struct': 'AudiodevPipewirePerDirectionOptions',
347 'base': 'AudiodevPerDirectionOptions',
348 'data': {
349 '*name': 'str',
350 '*stream-name': 'str',

--- 117 unchanged lines hidden (view full) ---

468# @Audiodev:
469#
470# Options of an audio backend.
471#
472# @id: identifier of the backend
473#
474# @driver: the backend driver to use
475#
475# @timer-period: timer period (in microseconds, 0: use lowest possible)
476# @timer-period: timer period (in microseconds, 0: use lowest
477# possible)
476#
477# Since: 4.0
478##
479{ 'union': 'Audiodev',
480 'base': {
481 'id': 'str',
482 'driver': 'AudiodevDriver',
483 '*timer-period': 'uint32' },

--- 27 unchanged lines hidden (view full) ---

511##
512# @query-audiodevs:
513#
514# Returns information about audiodev configuration
515#
516# Returns: array of @Audiodev
517#
518# Since: 8.0
478#
479# Since: 4.0
480##
481{ 'union': 'Audiodev',
482 'base': {
483 'id': 'str',
484 'driver': 'AudiodevDriver',
485 '*timer-period': 'uint32' },

--- 27 unchanged lines hidden (view full) ---

513##
514# @query-audiodevs:
515#
516# Returns information about audiodev configuration
517#
518# Returns: array of @Audiodev
519#
520# Since: 8.0
519#
520##
521{ 'command': 'query-audiodevs',
522 'returns': ['Audiodev'] }
521##
522{ 'command': 'query-audiodevs',
523 'returns': ['Audiodev'] }