xref: /qemu/qapi/audio.json (revision 09be8a511a2e278b45729d7b065d30c68dd699d0)
18c3a7d00SKővágó, Zoltán# -*- mode: python -*-
27e7237cdSVictor Toso# vim: filetype=python
38c3a7d00SKővágó, Zoltán#
48c3a7d00SKővágó, Zoltán# Copyright (C) 2015-2019 Zoltán Kővágó <DirtY.iCE.hu@gmail.com>
58c3a7d00SKővágó, Zoltán#
68c3a7d00SKővágó, Zoltán# This work is licensed under the terms of the GNU GPL, version 2 or later.
78c3a7d00SKővágó, Zoltán# See the COPYING file in the top-level directory.
88c3a7d00SKővágó, Zoltán
98c3a7d00SKővágó, Zoltán##
10a1d12a21SMarkus Armbruster# = Audio
11a1d12a21SMarkus Armbruster##
12a1d12a21SMarkus Armbruster
13a1d12a21SMarkus Armbruster##
148c3a7d00SKővágó, Zoltán# @AudiodevPerDirectionOptions:
158c3a7d00SKővágó, Zoltán#
168c3a7d00SKővágó, Zoltán# General audio backend options that are used for both playback and
178c3a7d00SKővágó, Zoltán# recording.
188c3a7d00SKővágó, Zoltán#
19a937b6aaSMarkus Armbruster# @mixing-engine: use QEMU's mixing engine to mix all streams inside
20a937b6aaSMarkus Armbruster#     QEMU and convert audio formats when not supported by the
21a937b6aaSMarkus Armbruster#     backend.  When set to off, fixed-settings must be also off
22a937b6aaSMarkus Armbruster#     (default on, since 4.2)
238efac073SKővágó, Zoltán#
24a937b6aaSMarkus Armbruster# @fixed-settings: use fixed settings for host input/output.  When
25a937b6aaSMarkus Armbruster#     off, frequency, channels and format must not be specified
26a937b6aaSMarkus Armbruster#     (default true)
278c3a7d00SKővágó, Zoltán#
28a937b6aaSMarkus Armbruster# @frequency: frequency to use when using fixed settings (default
29a937b6aaSMarkus Armbruster#     44100)
308c3a7d00SKővágó, Zoltán#
318c3a7d00SKővágó, Zoltán# @channels: number of channels when using fixed settings (default 2)
328c3a7d00SKővágó, Zoltán#
338c3a7d00SKővágó, Zoltán# @voices: number of voices to use (default 1)
348c3a7d00SKővágó, Zoltán#
35a937b6aaSMarkus Armbruster# @format: sample format to use when using fixed settings (default
36a937b6aaSMarkus Armbruster#     s16)
378c3a7d00SKővágó, Zoltán#
388c3a7d00SKővágó, Zoltán# @buffer-length: the buffer length in microseconds
398c3a7d00SKővágó, Zoltán#
408c3a7d00SKővágó, Zoltán# Since: 4.0
418c3a7d00SKővágó, Zoltán##
428c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevPerDirectionOptions',
438c3a7d00SKővágó, Zoltán  'data': {
448efac073SKővágó, Zoltán    '*mixing-engine':  'bool',
458c3a7d00SKővágó, Zoltán    '*fixed-settings': 'bool',
468c3a7d00SKővágó, Zoltán    '*frequency':      'uint32',
478c3a7d00SKővágó, Zoltán    '*channels':       'uint32',
488c3a7d00SKővágó, Zoltán    '*voices':         'uint32',
498c3a7d00SKővágó, Zoltán    '*format':         'AudioFormat',
508c3a7d00SKővágó, Zoltán    '*buffer-length':  'uint32' } }
518c3a7d00SKővágó, Zoltán
528c3a7d00SKővágó, Zoltán##
538c3a7d00SKővágó, Zoltán# @AudiodevGenericOptions:
548c3a7d00SKővágó, Zoltán#
558c3a7d00SKővágó, Zoltán# Generic driver-specific options.
568c3a7d00SKővágó, Zoltán#
578c3a7d00SKővágó, Zoltán# @in: options of the capture stream
588c3a7d00SKővágó, Zoltán#
598c3a7d00SKővágó, Zoltán# @out: options of the playback stream
608c3a7d00SKővágó, Zoltán#
618c3a7d00SKővágó, Zoltán# Since: 4.0
628c3a7d00SKővágó, Zoltán##
638c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevGenericOptions',
648c3a7d00SKővágó, Zoltán  'data': {
658c3a7d00SKővágó, Zoltán    '*in':  'AudiodevPerDirectionOptions',
668c3a7d00SKővágó, Zoltán    '*out': 'AudiodevPerDirectionOptions' } }
678c3a7d00SKővágó, Zoltán
688c3a7d00SKővágó, Zoltán##
6919c628f2SMarc-André Lureau# @AudiodevDBusOptions:
7019c628f2SMarc-André Lureau#
7119c628f2SMarc-André Lureau# Options of the D-Bus audio backend.
7219c628f2SMarc-André Lureau#
7319c628f2SMarc-André Lureau# @in: options of the capture stream
7419c628f2SMarc-André Lureau#
7519c628f2SMarc-André Lureau# @out: options of the playback stream
7619c628f2SMarc-André Lureau#
7719c628f2SMarc-André Lureau# @nsamples: set the number of samples per read/write calls (default to 480,
7819c628f2SMarc-André Lureau# 10ms at 48kHz).
7919c628f2SMarc-André Lureau#
8019c628f2SMarc-André Lureau# Since: 10.0
8119c628f2SMarc-André Lureau##
8219c628f2SMarc-André Lureau{ 'struct': 'AudiodevDBusOptions',
8319c628f2SMarc-André Lureau  'data': {
8419c628f2SMarc-André Lureau    '*in':  'AudiodevPerDirectionOptions',
8519c628f2SMarc-André Lureau    '*out': 'AudiodevPerDirectionOptions',
8619c628f2SMarc-André Lureau    '*nsamples': 'uint32'} }
8719c628f2SMarc-André Lureau
8819c628f2SMarc-André Lureau##
898c3a7d00SKővágó, Zoltán# @AudiodevAlsaPerDirectionOptions:
908c3a7d00SKővágó, Zoltán#
918c3a7d00SKővágó, Zoltán# Options of the ALSA backend that are used for both playback and
928c3a7d00SKővágó, Zoltán# recording.
938c3a7d00SKővágó, Zoltán#
948c3a7d00SKővágó, Zoltán# @dev: the name of the ALSA device to use (default 'default')
958c3a7d00SKővágó, Zoltán#
968c3a7d00SKővágó, Zoltán# @period-length: the period length in microseconds
978c3a7d00SKővágó, Zoltán#
988c3a7d00SKővágó, Zoltán# @try-poll: attempt to use poll mode, falling back to non-polling
99f6ccfd5dSBALATON Zoltan#     access on failure (default false)
1008c3a7d00SKővágó, Zoltán#
1018c3a7d00SKővágó, Zoltán# Since: 4.0
1028c3a7d00SKővágó, Zoltán##
1038c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevAlsaPerDirectionOptions',
1048c3a7d00SKővágó, Zoltán  'base': 'AudiodevPerDirectionOptions',
1058c3a7d00SKővágó, Zoltán  'data': {
1068c3a7d00SKővágó, Zoltán    '*dev':           'str',
1078c3a7d00SKővágó, Zoltán    '*period-length': 'uint32',
1088c3a7d00SKővágó, Zoltán    '*try-poll':      'bool' } }
1098c3a7d00SKővágó, Zoltán
1108c3a7d00SKővágó, Zoltán##
1118c3a7d00SKővágó, Zoltán# @AudiodevAlsaOptions:
1128c3a7d00SKővágó, Zoltán#
1138c3a7d00SKővágó, Zoltán# Options of the ALSA audio backend.
1148c3a7d00SKővágó, Zoltán#
1158c3a7d00SKővágó, Zoltán# @in: options of the capture stream
1168c3a7d00SKővágó, Zoltán#
1178c3a7d00SKővágó, Zoltán# @out: options of the playback stream
1188c3a7d00SKővágó, Zoltán#
1198c3a7d00SKővágó, Zoltán# @threshold: set the threshold (in microseconds) when playback starts
1208c3a7d00SKővágó, Zoltán#
1218c3a7d00SKővágó, Zoltán# Since: 4.0
1228c3a7d00SKővágó, Zoltán##
1238c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevAlsaOptions',
1248c3a7d00SKővágó, Zoltán  'data': {
1258c3a7d00SKővágó, Zoltán    '*in':        'AudiodevAlsaPerDirectionOptions',
1268c3a7d00SKővágó, Zoltán    '*out':       'AudiodevAlsaPerDirectionOptions',
1278c3a7d00SKővágó, Zoltán    '*threshold': 'uint32' } }
1288c3a7d00SKővágó, Zoltán
1298c3a7d00SKővágó, Zoltán##
130663df1ccSAlexandre Ratchov# @AudiodevSndioOptions:
131663df1ccSAlexandre Ratchov#
132663df1ccSAlexandre Ratchov# Options of the sndio audio backend.
133663df1ccSAlexandre Ratchov#
134663df1ccSAlexandre Ratchov# @in: options of the capture stream
135663df1ccSAlexandre Ratchov#
136663df1ccSAlexandre Ratchov# @out: options of the playback stream
137663df1ccSAlexandre Ratchov#
138663df1ccSAlexandre Ratchov# @dev: the name of the sndio device to use (default 'default')
139663df1ccSAlexandre Ratchov#
140663df1ccSAlexandre Ratchov# @latency: play buffer size (in microseconds)
141663df1ccSAlexandre Ratchov#
142663df1ccSAlexandre Ratchov# Since: 7.2
143663df1ccSAlexandre Ratchov##
144663df1ccSAlexandre Ratchov{ 'struct': 'AudiodevSndioOptions',
145663df1ccSAlexandre Ratchov  'data': {
146663df1ccSAlexandre Ratchov    '*in':        'AudiodevPerDirectionOptions',
147663df1ccSAlexandre Ratchov    '*out':       'AudiodevPerDirectionOptions',
148663df1ccSAlexandre Ratchov    '*dev':       'str',
149663df1ccSAlexandre Ratchov    '*latency':   'uint32'} }
150663df1ccSAlexandre Ratchov
151663df1ccSAlexandre Ratchov##
1528c3a7d00SKővágó, Zoltán# @AudiodevCoreaudioPerDirectionOptions:
1538c3a7d00SKővágó, Zoltán#
154a937b6aaSMarkus Armbruster# Options of the Core Audio backend that are used for both playback
155a937b6aaSMarkus Armbruster# and recording.
1568c3a7d00SKővágó, Zoltán#
1578c3a7d00SKővágó, Zoltán# @buffer-count: number of buffers
1588c3a7d00SKővágó, Zoltán#
1598c3a7d00SKővágó, Zoltán# Since: 4.0
1608c3a7d00SKővágó, Zoltán##
1618c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevCoreaudioPerDirectionOptions',
1628c3a7d00SKővágó, Zoltán  'base': 'AudiodevPerDirectionOptions',
1638c3a7d00SKővágó, Zoltán  'data': {
1648c3a7d00SKővágó, Zoltán    '*buffer-count': 'uint32' } }
1658c3a7d00SKővágó, Zoltán
1668c3a7d00SKővágó, Zoltán##
1678c3a7d00SKővágó, Zoltán# @AudiodevCoreaudioOptions:
1688c3a7d00SKővágó, Zoltán#
1698c3a7d00SKővágó, Zoltán# Options of the coreaudio audio backend.
1708c3a7d00SKővágó, Zoltán#
1718c3a7d00SKővágó, Zoltán# @in: options of the capture stream
1728c3a7d00SKővágó, Zoltán#
1738c3a7d00SKővágó, Zoltán# @out: options of the playback stream
1748c3a7d00SKővágó, Zoltán#
1758c3a7d00SKővágó, Zoltán# Since: 4.0
1768c3a7d00SKővágó, Zoltán##
1778c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevCoreaudioOptions',
1788c3a7d00SKővágó, Zoltán  'data': {
1798c3a7d00SKővágó, Zoltán    '*in':  'AudiodevCoreaudioPerDirectionOptions',
1808c3a7d00SKővágó, Zoltán    '*out': 'AudiodevCoreaudioPerDirectionOptions' } }
1818c3a7d00SKővágó, Zoltán
1828c3a7d00SKővágó, Zoltán##
1838c3a7d00SKővágó, Zoltán# @AudiodevDsoundOptions:
1848c3a7d00SKővágó, Zoltán#
1858c3a7d00SKővágó, Zoltán# Options of the DirectSound audio backend.
1868c3a7d00SKővágó, Zoltán#
1878c3a7d00SKővágó, Zoltán# @in: options of the capture stream
1888c3a7d00SKővágó, Zoltán#
1898c3a7d00SKővágó, Zoltán# @out: options of the playback stream
1908c3a7d00SKővágó, Zoltán#
191a937b6aaSMarkus Armbruster# @latency: add extra latency to playback in microseconds (default
192a937b6aaSMarkus Armbruster#     10000)
1938c3a7d00SKővágó, Zoltán#
1948c3a7d00SKővágó, Zoltán# Since: 4.0
1958c3a7d00SKővágó, Zoltán##
1968c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevDsoundOptions',
1978c3a7d00SKővágó, Zoltán  'data': {
1988c3a7d00SKővágó, Zoltán    '*in':      'AudiodevPerDirectionOptions',
1998c3a7d00SKővágó, Zoltán    '*out':     'AudiodevPerDirectionOptions',
2008c3a7d00SKővágó, Zoltán    '*latency': 'uint32' } }
2018c3a7d00SKővágó, Zoltán
2028c3a7d00SKővágó, Zoltán##
2032e445703SGeoffrey McRae# @AudiodevJackPerDirectionOptions:
2042e445703SGeoffrey McRae#
2052e445703SGeoffrey McRae# Options of the JACK backend that are used for both playback and
2062e445703SGeoffrey McRae# recording.
2072e445703SGeoffrey McRae#
208a937b6aaSMarkus Armbruster# @server-name: select from among several possible concurrent server
209a937b6aaSMarkus Armbruster#     instances (default: environment variable $JACK_DEFAULT_SERVER if
210a937b6aaSMarkus Armbruster#     set, else "default")
2112e445703SGeoffrey McRae#
212a937b6aaSMarkus Armbruster# @client-name: the client name to use.  The server will modify this
213a937b6aaSMarkus Armbruster#     name to create a unique variant, if needed unless @exact-name is
214a937b6aaSMarkus Armbruster#     true (default: the guest's name)
2152e445703SGeoffrey McRae#
216a937b6aaSMarkus Armbruster# @connect-ports: if set, a regular expression of JACK client port
217a937b6aaSMarkus Armbruster#     name(s) to monitor for and automatically connect to
2182e445703SGeoffrey McRae#
219a937b6aaSMarkus Armbruster# @start-server: start a jack server process if one is not already
220a937b6aaSMarkus Armbruster#     present (default: false)
2212e445703SGeoffrey McRae#
222a937b6aaSMarkus Armbruster# @exact-name: use the exact name requested otherwise JACK
223a937b6aaSMarkus Armbruster#     automatically generates a unique one, if needed (default: false)
2242e445703SGeoffrey McRae#
2252e445703SGeoffrey McRae# Since: 5.1
2262e445703SGeoffrey McRae##
2272e445703SGeoffrey McRae{ 'struct': 'AudiodevJackPerDirectionOptions',
2282e445703SGeoffrey McRae  'base': 'AudiodevPerDirectionOptions',
2292e445703SGeoffrey McRae  'data': {
2302e445703SGeoffrey McRae    '*server-name':   'str',
2312e445703SGeoffrey McRae    '*client-name':   'str',
2322e445703SGeoffrey McRae    '*connect-ports': 'str',
2332e445703SGeoffrey McRae    '*start-server':  'bool',
2342e445703SGeoffrey McRae    '*exact-name':    'bool' } }
2352e445703SGeoffrey McRae
2362e445703SGeoffrey McRae##
2372e445703SGeoffrey McRae# @AudiodevJackOptions:
2382e445703SGeoffrey McRae#
2392e445703SGeoffrey McRae# Options of the JACK audio backend.
2402e445703SGeoffrey McRae#
2412e445703SGeoffrey McRae# @in: options of the capture stream
2422e445703SGeoffrey McRae#
2432e445703SGeoffrey McRae# @out: options of the playback stream
2442e445703SGeoffrey McRae#
2452e445703SGeoffrey McRae# Since: 5.1
2462e445703SGeoffrey McRae##
2472e445703SGeoffrey McRae{ 'struct': 'AudiodevJackOptions',
2482e445703SGeoffrey McRae  'data': {
2492e445703SGeoffrey McRae    '*in':  'AudiodevJackPerDirectionOptions',
2502e445703SGeoffrey McRae    '*out': 'AudiodevJackPerDirectionOptions' } }
2512e445703SGeoffrey McRae
2522e445703SGeoffrey McRae##
2538c3a7d00SKővágó, Zoltán# @AudiodevOssPerDirectionOptions:
2548c3a7d00SKővágó, Zoltán#
2558c3a7d00SKővágó, Zoltán# Options of the OSS backend that are used for both playback and
2568c3a7d00SKővágó, Zoltán# recording.
2578c3a7d00SKővágó, Zoltán#
2588c3a7d00SKővágó, Zoltán# @dev: file name of the OSS device (default '/dev/dsp')
2598c3a7d00SKővágó, Zoltán#
2608c3a7d00SKővágó, Zoltán# @buffer-count: number of buffers
2618c3a7d00SKővágó, Zoltán#
2628c3a7d00SKővágó, Zoltán# @try-poll: attempt to use poll mode, falling back to non-polling
2638c3a7d00SKővágó, Zoltán#     access on failure (default true)
2648c3a7d00SKővágó, Zoltán#
2658c3a7d00SKővágó, Zoltán# Since: 4.0
2668c3a7d00SKővágó, Zoltán##
2678c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevOssPerDirectionOptions',
2688c3a7d00SKővágó, Zoltán  'base': 'AudiodevPerDirectionOptions',
2698c3a7d00SKővágó, Zoltán  'data': {
2708c3a7d00SKővágó, Zoltán    '*dev':          'str',
2718c3a7d00SKővágó, Zoltán    '*buffer-count': 'uint32',
2728c3a7d00SKővágó, Zoltán    '*try-poll':     'bool' } }
2738c3a7d00SKővágó, Zoltán
2748c3a7d00SKővágó, Zoltán##
2758c3a7d00SKővágó, Zoltán# @AudiodevOssOptions:
2768c3a7d00SKővágó, Zoltán#
2778c3a7d00SKővágó, Zoltán# Options of the OSS audio backend.
2788c3a7d00SKővágó, Zoltán#
2798c3a7d00SKővágó, Zoltán# @in: options of the capture stream
2808c3a7d00SKővágó, Zoltán#
2818c3a7d00SKővágó, Zoltán# @out: options of the playback stream
2828c3a7d00SKővágó, Zoltán#
2838c3a7d00SKővágó, Zoltán# @try-mmap: try using memory-mapped access, falling back to
2848c3a7d00SKővágó, Zoltán#     non-memory-mapped access on failure (default true)
2858c3a7d00SKővágó, Zoltán#
286a937b6aaSMarkus Armbruster# @exclusive: open device in exclusive mode (vmix won't work) (default
287a937b6aaSMarkus Armbruster#     false)
2888c3a7d00SKővágó, Zoltán#
2898c3a7d00SKővágó, Zoltán# @dsp-policy: set the timing policy of the device (between 0 and 10,
290a937b6aaSMarkus Armbruster#     where smaller number means smaller latency but higher CPU usage)
291a937b6aaSMarkus Armbruster#     or -1 to use fragment mode (option ignored on some platforms)
292a937b6aaSMarkus Armbruster#     (default 5)
2938c3a7d00SKővágó, Zoltán#
2948c3a7d00SKővágó, Zoltán# Since: 4.0
2958c3a7d00SKővágó, Zoltán##
2968c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevOssOptions',
2978c3a7d00SKővágó, Zoltán  'data': {
2988c3a7d00SKővágó, Zoltán    '*in':         'AudiodevOssPerDirectionOptions',
2998c3a7d00SKővágó, Zoltán    '*out':        'AudiodevOssPerDirectionOptions',
3008c3a7d00SKővágó, Zoltán    '*try-mmap':   'bool',
3018c3a7d00SKővágó, Zoltán    '*exclusive':  'bool',
3028c3a7d00SKővágó, Zoltán    '*dsp-policy': 'uint32' } }
3038c3a7d00SKővágó, Zoltán
3048c3a7d00SKővágó, Zoltán##
3058c3a7d00SKővágó, Zoltán# @AudiodevPaPerDirectionOptions:
3068c3a7d00SKővágó, Zoltán#
307a937b6aaSMarkus Armbruster# Options of the Pulseaudio backend that are used for both playback
308a937b6aaSMarkus Armbruster# and recording.
3098c3a7d00SKővágó, Zoltán#
3108c3a7d00SKővágó, Zoltán# @name: name of the sink/source to use
3118c3a7d00SKővágó, Zoltán#
312*62632254SMarkus Armbruster# @stream-name: name of the PulseAudio stream created by QEMU.  Can be
313a937b6aaSMarkus Armbruster#     used to identify the stream in PulseAudio when you create
314*62632254SMarkus Armbruster#     multiple PulseAudio devices or run multiple QEMU instances
315a937b6aaSMarkus Armbruster#     (default: audiodev's id, since 4.2)
316f47dffe8SKővágó, Zoltán#
317f6142777SMartin Schrodt# @latency: latency you want PulseAudio to achieve in microseconds
318f6142777SMartin Schrodt#     (default 15000)
319f6142777SMartin Schrodt#
3208c3a7d00SKővágó, Zoltán# Since: 4.0
3218c3a7d00SKővágó, Zoltán##
3228c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevPaPerDirectionOptions',
3238c3a7d00SKővágó, Zoltán  'base': 'AudiodevPerDirectionOptions',
3248c3a7d00SKővágó, Zoltán  'data': {
325f6142777SMartin Schrodt    '*name': 'str',
326f47dffe8SKővágó, Zoltán    '*stream-name': 'str',
327f6142777SMartin Schrodt    '*latency': 'uint32' } }
3288c3a7d00SKővágó, Zoltán
3298c3a7d00SKővágó, Zoltán##
3308c3a7d00SKővágó, Zoltán# @AudiodevPaOptions:
3318c3a7d00SKővágó, Zoltán#
3328c3a7d00SKővágó, Zoltán# Options of the PulseAudio audio backend.
3338c3a7d00SKővágó, Zoltán#
3348c3a7d00SKővágó, Zoltán# @in: options of the capture stream
3358c3a7d00SKővágó, Zoltán#
3368c3a7d00SKővágó, Zoltán# @out: options of the playback stream
3378c3a7d00SKővágó, Zoltán#
3388c3a7d00SKővágó, Zoltán# @server: PulseAudio server address (default: let PulseAudio choose)
3398c3a7d00SKővágó, Zoltán#
3408c3a7d00SKővágó, Zoltán# Since: 4.0
3418c3a7d00SKővágó, Zoltán##
3428c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevPaOptions',
3438c3a7d00SKővágó, Zoltán  'data': {
3448c3a7d00SKővágó, Zoltán    '*in':     'AudiodevPaPerDirectionOptions',
3458c3a7d00SKővágó, Zoltán    '*out':    'AudiodevPaPerDirectionOptions',
3468c3a7d00SKővágó, Zoltán    '*server': 'str' } }
3478c3a7d00SKővágó, Zoltán
3488c3a7d00SKővágó, Zoltán##
349c2d3d1c2SDorinda Bassey# @AudiodevPipewirePerDirectionOptions:
350c2d3d1c2SDorinda Bassey#
35120c51248SMarc-André Lureau# Options of the PipeWire backend that are used for both playback and
352c2d3d1c2SDorinda Bassey# recording.
353c2d3d1c2SDorinda Bassey#
354c2d3d1c2SDorinda Bassey# @name: name of the sink/source to use
355c2d3d1c2SDorinda Bassey#
356*62632254SMarkus Armbruster# @stream-name: name of the PipeWire stream created by QEMU.  Can be
35720c51248SMarc-André Lureau#     used to identify the stream in PipeWire when you create multiple
358*62632254SMarkus Armbruster#     PipeWire devices or run multiple QEMU instances (default:
359a937b6aaSMarkus Armbruster#     audiodev's id)
360c2d3d1c2SDorinda Bassey#
36120c51248SMarc-André Lureau# @latency: latency you want PipeWire to achieve in microseconds
362c2d3d1c2SDorinda Bassey#     (default 46000)
363c2d3d1c2SDorinda Bassey#
364c2d3d1c2SDorinda Bassey# Since: 8.1
365c2d3d1c2SDorinda Bassey##
366c2d3d1c2SDorinda Bassey{ 'struct': 'AudiodevPipewirePerDirectionOptions',
367c2d3d1c2SDorinda Bassey  'base': 'AudiodevPerDirectionOptions',
368c2d3d1c2SDorinda Bassey  'data': {
369c2d3d1c2SDorinda Bassey    '*name': 'str',
370c2d3d1c2SDorinda Bassey    '*stream-name': 'str',
371c2d3d1c2SDorinda Bassey    '*latency': 'uint32' } }
372c2d3d1c2SDorinda Bassey
373c2d3d1c2SDorinda Bassey##
374c2d3d1c2SDorinda Bassey# @AudiodevPipewireOptions:
375c2d3d1c2SDorinda Bassey#
37620c51248SMarc-André Lureau# Options of the PipeWire audio backend.
377c2d3d1c2SDorinda Bassey#
378c2d3d1c2SDorinda Bassey# @in: options of the capture stream
379c2d3d1c2SDorinda Bassey#
380c2d3d1c2SDorinda Bassey# @out: options of the playback stream
381c2d3d1c2SDorinda Bassey#
382c2d3d1c2SDorinda Bassey# Since: 8.1
383c2d3d1c2SDorinda Bassey##
384c2d3d1c2SDorinda Bassey{ 'struct': 'AudiodevPipewireOptions',
385c2d3d1c2SDorinda Bassey  'data': {
386c2d3d1c2SDorinda Bassey    '*in':     'AudiodevPipewirePerDirectionOptions',
387c2d3d1c2SDorinda Bassey    '*out':    'AudiodevPipewirePerDirectionOptions' } }
388c2d3d1c2SDorinda Bassey
389c2d3d1c2SDorinda Bassey##
3905a0926c2SVolker Rümelin# @AudiodevSdlPerDirectionOptions:
3915a0926c2SVolker Rümelin#
3925a0926c2SVolker Rümelin# Options of the SDL audio backend that are used for both playback and
3935a0926c2SVolker Rümelin# recording.
3945a0926c2SVolker Rümelin#
3955a0926c2SVolker Rümelin# @buffer-count: number of buffers (default 4)
3965a0926c2SVolker Rümelin#
3975a0926c2SVolker Rümelin# Since: 6.0
3985a0926c2SVolker Rümelin##
3995a0926c2SVolker Rümelin{ 'struct': 'AudiodevSdlPerDirectionOptions',
4005a0926c2SVolker Rümelin  'base': 'AudiodevPerDirectionOptions',
4015a0926c2SVolker Rümelin  'data': {
4025a0926c2SVolker Rümelin    '*buffer-count': 'uint32' } }
4035a0926c2SVolker Rümelin
4045a0926c2SVolker Rümelin##
4055a0926c2SVolker Rümelin# @AudiodevSdlOptions:
4065a0926c2SVolker Rümelin#
4075a0926c2SVolker Rümelin# Options of the SDL audio backend.
4085a0926c2SVolker Rümelin#
4095a0926c2SVolker Rümelin# @in: options of the recording stream
4105a0926c2SVolker Rümelin#
4115a0926c2SVolker Rümelin# @out: options of the playback stream
4125a0926c2SVolker Rümelin#
4135a0926c2SVolker Rümelin# Since: 6.0
4145a0926c2SVolker Rümelin##
4155a0926c2SVolker Rümelin{ 'struct': 'AudiodevSdlOptions',
4165a0926c2SVolker Rümelin  'data': {
4175a0926c2SVolker Rümelin    '*in':  'AudiodevSdlPerDirectionOptions',
4185a0926c2SVolker Rümelin    '*out': 'AudiodevSdlPerDirectionOptions' } }
4195a0926c2SVolker Rümelin
4205a0926c2SVolker Rümelin##
4218c3a7d00SKővágó, Zoltán# @AudiodevWavOptions:
4228c3a7d00SKővágó, Zoltán#
4238c3a7d00SKővágó, Zoltán# Options of the wav audio backend.
4248c3a7d00SKővágó, Zoltán#
4258c3a7d00SKővágó, Zoltán# @in: options of the capture stream
4268c3a7d00SKővágó, Zoltán#
4278c3a7d00SKővágó, Zoltán# @out: options of the playback stream
4288c3a7d00SKővágó, Zoltán#
4298c3a7d00SKővágó, Zoltán# @path: name of the wav file to record (default 'qemu.wav')
4308c3a7d00SKővágó, Zoltán#
4318c3a7d00SKővágó, Zoltán# Since: 4.0
4328c3a7d00SKővágó, Zoltán##
4338c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevWavOptions',
4348c3a7d00SKővágó, Zoltán  'data': {
4358c3a7d00SKővágó, Zoltán    '*in':   'AudiodevPerDirectionOptions',
4368c3a7d00SKővágó, Zoltán    '*out':  'AudiodevPerDirectionOptions',
4378c3a7d00SKővágó, Zoltán    '*path': 'str' } }
4388c3a7d00SKővágó, Zoltán
4398c3a7d00SKővágó, Zoltán##
4408c3a7d00SKővágó, Zoltán# @AudioFormat:
4418c3a7d00SKővágó, Zoltán#
4428c3a7d00SKővágó, Zoltán# An enumeration of possible audio formats.
4438c3a7d00SKővágó, Zoltán#
444019b5ba7SVolker Rümelin# @u8: unsigned 8 bit integer
445019b5ba7SVolker Rümelin#
446019b5ba7SVolker Rümelin# @s8: signed 8 bit integer
447019b5ba7SVolker Rümelin#
448019b5ba7SVolker Rümelin# @u16: unsigned 16 bit integer
449019b5ba7SVolker Rümelin#
450019b5ba7SVolker Rümelin# @s16: signed 16 bit integer
451019b5ba7SVolker Rümelin#
452019b5ba7SVolker Rümelin# @u32: unsigned 32 bit integer
453019b5ba7SVolker Rümelin#
454019b5ba7SVolker Rümelin# @s32: signed 32 bit integer
455019b5ba7SVolker Rümelin#
456019b5ba7SVolker Rümelin# @f32: single precision floating-point (since 5.0)
457019b5ba7SVolker Rümelin#
4588c3a7d00SKővágó, Zoltán# Since: 4.0
4598c3a7d00SKővágó, Zoltán##
4608c3a7d00SKővágó, Zoltán{ 'enum': 'AudioFormat',
461ed2a4a79SKővágó, Zoltán  'data': [ 'u8', 's8', 'u16', 's16', 'u32', 's32', 'f32' ] }
4628c3a7d00SKővágó, Zoltán
4638c3a7d00SKővágó, Zoltán##
4648c3a7d00SKővágó, Zoltán# @AudiodevDriver:
4658c3a7d00SKővágó, Zoltán#
4668c3a7d00SKővágó, Zoltán# An enumeration of possible audio backend drivers.
4678c3a7d00SKővágó, Zoltán#
4682e445703SGeoffrey McRae# @jack: JACK audio backend (since 5.1)
4692e445703SGeoffrey McRae#
4708c3a7d00SKővágó, Zoltán# Since: 4.0
4718c3a7d00SKővágó, Zoltán##
4728c3a7d00SKővágó, Zoltán{ 'enum': 'AudiodevDriver',
4737a92a857SDaniel P. Berrangé  'data': [ 'none',
4747a92a857SDaniel P. Berrangé            { 'name': 'alsa', 'if': 'CONFIG_AUDIO_ALSA' },
4757a92a857SDaniel P. Berrangé            { 'name': 'coreaudio', 'if': 'CONFIG_AUDIO_COREAUDIO' },
4767a92a857SDaniel P. Berrangé            { 'name': 'dbus', 'if': 'CONFIG_DBUS_DISPLAY' },
4777a92a857SDaniel P. Berrangé            { 'name': 'dsound', 'if': 'CONFIG_AUDIO_DSOUND' },
4787a92a857SDaniel P. Berrangé            { 'name': 'jack', 'if': 'CONFIG_AUDIO_JACK' },
4797a92a857SDaniel P. Berrangé            { 'name': 'oss', 'if': 'CONFIG_AUDIO_OSS' },
4807a92a857SDaniel P. Berrangé            { 'name': 'pa', 'if': 'CONFIG_AUDIO_PA' },
481c2d3d1c2SDorinda Bassey            { 'name': 'pipewire', 'if': 'CONFIG_AUDIO_PIPEWIRE' },
4827a92a857SDaniel P. Berrangé            { 'name': 'sdl', 'if': 'CONFIG_AUDIO_SDL' },
4837a92a857SDaniel P. Berrangé            { 'name': 'sndio', 'if': 'CONFIG_AUDIO_SNDIO' },
4847a92a857SDaniel P. Berrangé            { 'name': 'spice', 'if': 'CONFIG_SPICE' },
4857a92a857SDaniel P. Berrangé            'wav' ] }
4868c3a7d00SKővágó, Zoltán
4878c3a7d00SKővágó, Zoltán##
4888c3a7d00SKővágó, Zoltán# @Audiodev:
4898c3a7d00SKővágó, Zoltán#
4908c3a7d00SKővágó, Zoltán# Options of an audio backend.
4918c3a7d00SKővágó, Zoltán#
4928c3a7d00SKővágó, Zoltán# @id: identifier of the backend
4938c3a7d00SKővágó, Zoltán#
4948c3a7d00SKővágó, Zoltán# @driver: the backend driver to use
4958c3a7d00SKővágó, Zoltán#
496a937b6aaSMarkus Armbruster# @timer-period: timer period (in microseconds, 0: use lowest
497a937b6aaSMarkus Armbruster#     possible)
4988c3a7d00SKővágó, Zoltán#
4998c3a7d00SKővágó, Zoltán# Since: 4.0
5008c3a7d00SKővágó, Zoltán##
5018c3a7d00SKővágó, Zoltán{ 'union': 'Audiodev',
5028c3a7d00SKővágó, Zoltán  'base': {
5038c3a7d00SKővágó, Zoltán    'id':            'str',
5048c3a7d00SKővágó, Zoltán    'driver':        'AudiodevDriver',
5058c3a7d00SKővágó, Zoltán    '*timer-period': 'uint32' },
5068c3a7d00SKővágó, Zoltán  'discriminator': 'driver',
5078c3a7d00SKővágó, Zoltán  'data': {
5088c3a7d00SKővágó, Zoltán    'none':      'AudiodevGenericOptions',
5097a92a857SDaniel P. Berrangé    'alsa':      { 'type': 'AudiodevAlsaOptions',
5107a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_ALSA' },
5117a92a857SDaniel P. Berrangé    'coreaudio': { 'type': 'AudiodevCoreaudioOptions',
5127a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_COREAUDIO' },
51319c628f2SMarc-André Lureau    'dbus':      { 'type': 'AudiodevDBusOptions',
5147a92a857SDaniel P. Berrangé                   'if': 'CONFIG_DBUS_DISPLAY' },
5157a92a857SDaniel P. Berrangé    'dsound':    { 'type': 'AudiodevDsoundOptions',
5167a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_DSOUND' },
5177a92a857SDaniel P. Berrangé    'jack':      { 'type': 'AudiodevJackOptions',
5187a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_JACK' },
5197a92a857SDaniel P. Berrangé    'oss':       { 'type': 'AudiodevOssOptions',
5207a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_OSS' },
5217a92a857SDaniel P. Berrangé    'pa':        { 'type': 'AudiodevPaOptions',
5227a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_PA' },
523c2d3d1c2SDorinda Bassey    'pipewire':  { 'type': 'AudiodevPipewireOptions',
524c2d3d1c2SDorinda Bassey                   'if': 'CONFIG_AUDIO_PIPEWIRE' },
5257a92a857SDaniel P. Berrangé    'sdl':       { 'type': 'AudiodevSdlOptions',
5267a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_SDL' },
5277a92a857SDaniel P. Berrangé    'sndio':     { 'type': 'AudiodevSndioOptions',
5287a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_SNDIO' },
5297a92a857SDaniel P. Berrangé    'spice':     { 'type': 'AudiodevGenericOptions',
5307a92a857SDaniel P. Berrangé                   'if': 'CONFIG_SPICE' },
5318c3a7d00SKővágó, Zoltán    'wav':       'AudiodevWavOptions' } }
532637d1809SDaniel P. Berrangé
533637d1809SDaniel P. Berrangé##
534637d1809SDaniel P. Berrangé# @query-audiodevs:
535637d1809SDaniel P. Berrangé#
536e1a80c32SPierrick Bouvier# Return information about audiodev configuration
537637d1809SDaniel P. Berrangé#
538637d1809SDaniel P. Berrangé# Returns: array of @Audiodev
539637d1809SDaniel P. Berrangé#
540637d1809SDaniel P. Berrangé# Since: 8.0
541637d1809SDaniel P. Berrangé##
542637d1809SDaniel P. Berrangé{ 'command': 'query-audiodevs',
543637d1809SDaniel P. Berrangé  'returns': ['Audiodev'] }
544