qemu: wire up support for timer period audio setting

Closes: https://gitlab.com/libvirt/libvirt/-/issues/171
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2021-06-03 09:15:36 +01:00
parent dfffcefff6
commit 558fe27600
25 changed files with 32 additions and 16 deletions

View File

@ -7602,6 +7602,10 @@ qemuBuildAudioCommandLineArg(virCommand *cmd,
def->id,
qemuAudioDriverTypeToString(def->type));
if (def->timerPeriod)
virBufferAsprintf(&buf, ",timer-period=%u",
def->timerPeriod);
qemuBuildAudioCommonArg(&buf, "in", &def->input);
qemuBuildAudioCommonArg(&buf, "out", &def->output);
@ -7791,6 +7795,10 @@ qemuBuildAudioCommandLineEnv(virCommand *cmd,
virCommandAddEnvPair(cmd, "QEMU_AUDIO_DRV",
qemuAudioDriverTypeToString(audio->type));
if (audio->timerPeriod)
virCommandAddEnvFormat(cmd, "QEMU_AUDIO_TIMER_PERIOD=%u",
audio->timerPeriod);
qemuBuildAudioCommonEnv(cmd, "QEMU_AUDIO_ADC_", &audio->input);
qemuBuildAudioCommonEnv(cmd, "QEMU_AUDIO_DAC_", &audio->output);

View File

@ -7,6 +7,7 @@ XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
QEMU_AUDIO_DRV=alsa \
QEMU_AUDIO_TIMER_PERIOD=50 \
QEMU_AUDIO_ADC_FIXED_SETTINGS=on \
QEMU_AUDIO_ADC_VOICES=1 \
QEMU_AUDIO_ADC_FIXED_FREQ=44100 \

View File

@ -30,6 +30,6 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
-blockdev '{"driver":"host_cdrom","filename":"/dev/cdrom","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
-audiodev id=audio1,driver=alsa,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32,in.dev=/dev/dsp0,out.dev=/dev/dsp1 \
-audiodev id=audio1,driver=alsa,timer-period=50,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32,in.dev=/dev/dsp0,out.dev=/dev/dsp1 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on

View File

@ -30,7 +30,7 @@
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='alsa'>
<audio id='1' type='alsa' timerPeriod='50'>
<input mixingEngine='yes' fixedSettings='yes' voices='1' dev='/dev/dsp0'>
<settings frequency='44100' channels='2' format='s16'/>
</input>

View File

@ -7,6 +7,7 @@ XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
QEMU_AUDIO_DRV=coreaudio \
QEMU_AUDIO_TIMER_PERIOD=50 \
QEMU_AUDIO_ADC_FIXED_SETTINGS=on \
QEMU_AUDIO_ADC_VOICES=1 \
QEMU_AUDIO_ADC_FIXED_FREQ=44100 \

View File

@ -30,6 +30,6 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
-blockdev '{"driver":"host_cdrom","filename":"/dev/cdrom","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
-audiodev id=audio1,driver=coreaudio,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.buffer-length=200,out.frequency=22050,out.channels=4,out.format=f32,out.buffer-count=42 \
-audiodev id=audio1,driver=coreaudio,timer-period=50,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.buffer-length=200,out.frequency=22050,out.channels=4,out.format=f32,out.buffer-count=42 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on

View File

@ -30,7 +30,7 @@
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='coreaudio'>
<audio id='1' type='coreaudio' timerPeriod='50'>
<input mixingEngine='yes' fixedSettings='yes' voices='1'>
<settings frequency='44100' channels='2' format='s16'/>
</input>

View File

@ -7,6 +7,7 @@ XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
QEMU_AUDIO_DRV=wav \
QEMU_AUDIO_TIMER_PERIOD=50 \
QEMU_AUDIO_ADC_FIXED_SETTINGS=on \
QEMU_AUDIO_ADC_VOICES=1 \
QEMU_AUDIO_ADC_FIXED_FREQ=44100 \

View File

@ -30,6 +30,6 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
-blockdev '{"driver":"host_cdrom","filename":"/dev/cdrom","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
-audiodev id=audio1,driver=wav,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32,path=audio.wav \
-audiodev id=audio1,driver=wav,timer-period=50,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32,path=audio.wav \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on

View File

@ -30,7 +30,7 @@
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='file' path='audio.wav'>
<audio id='1' type='file' timerPeriod='50' path='audio.wav'>
<input mixingEngine='yes' fixedSettings='yes' voices='1'>
<settings frequency='44100' channels='2' format='s16'/>
</input>

View File

@ -7,6 +7,7 @@ XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
QEMU_AUDIO_DRV=none \
QEMU_AUDIO_TIMER_PERIOD=50 \
QEMU_AUDIO_ADC_FIXED_SETTINGS=on \
QEMU_AUDIO_ADC_VOICES=1 \
QEMU_AUDIO_ADC_FIXED_FREQ=44100 \

View File

@ -30,6 +30,6 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
-blockdev '{"driver":"host_cdrom","filename":"/dev/cdrom","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
-audiodev id=audio1,driver=none,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32 \
-audiodev id=audio1,driver=none,timer-period=50,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on

View File

@ -30,7 +30,7 @@
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='none'>
<audio id='1' type='none' timerPeriod='50'>
<input mixingEngine='yes' fixedSettings='yes' voices='1'>
<settings frequency='44100' channels='2' format='s16'/>
</input>

View File

@ -7,6 +7,7 @@ XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
QEMU_AUDIO_DRV=oss \
QEMU_AUDIO_TIMER_PERIOD=50 \
QEMU_AUDIO_ADC_FIXED_SETTINGS=on \
QEMU_AUDIO_ADC_VOICES=1 \
QEMU_AUDIO_ADC_FIXED_FREQ=44100 \

View File

@ -30,6 +30,6 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
-blockdev '{"driver":"host_cdrom","filename":"/dev/cdrom","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
-audiodev id=audio1,driver=oss,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32,in.dev=/dev/dsp0,in.buffer-count=30,in.try-poll=on,out.dev=/dev/dsp1,out.buffer-count=30,out.try-poll=off \
-audiodev id=audio1,driver=oss,timer-period=50,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32,in.dev=/dev/dsp0,in.buffer-count=30,in.try-poll=on,out.dev=/dev/dsp1,out.buffer-count=30,out.try-poll=off \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on

View File

@ -30,7 +30,7 @@
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='oss'>
<audio id='1' type='oss' timerPeriod='50'>
<input mixingEngine='yes' fixedSettings='yes' voices='1' dev='/dev/dsp0' bufferCount='30' tryPoll='yes'>
<settings frequency='44100' channels='2' format='s16'/>
</input>

View File

@ -7,6 +7,7 @@ XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
QEMU_AUDIO_DRV=pa \
QEMU_AUDIO_TIMER_PERIOD=50 \
QEMU_AUDIO_ADC_FIXED_SETTINGS=on \
QEMU_AUDIO_ADC_VOICES=1 \
QEMU_AUDIO_ADC_FIXED_FREQ=44100 \

View File

@ -30,6 +30,6 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
-blockdev '{"driver":"host_cdrom","filename":"/dev/cdrom","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
-audiodev id=audio1,driver=pa,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.buffer-length=200,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.buffer-length=200,out.frequency=22050,out.channels=4,out.format=f32,in.name=fish,out.name=fish,server=acme.example.org \
-audiodev id=audio1,driver=pa,timer-period=50,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.buffer-length=200,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.buffer-length=200,out.frequency=22050,out.channels=4,out.format=f32,in.name=fish,out.name=fish,server=acme.example.org \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on

View File

@ -30,7 +30,7 @@
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='pulseaudio' serverName='acme.example.org'>
<audio id='1' type='pulseaudio' timerPeriod='50' serverName='acme.example.org'>
<input mixingEngine='yes' fixedSettings='yes' voices='1' bufferLength='200' name='fish'>
<settings frequency='44100' channels='2' format='s16'/>
</input>

View File

@ -7,6 +7,7 @@ XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
QEMU_AUDIO_DRV=sdl \
QEMU_AUDIO_TIMER_PERIOD=50 \
QEMU_AUDIO_ADC_FIXED_SETTINGS=on \
QEMU_AUDIO_ADC_VOICES=1 \
QEMU_AUDIO_ADC_FIXED_FREQ=44100 \

View File

@ -31,6 +31,6 @@ SDL_AUDIODRIVER=pulseaudio \
-blockdev '{"driver":"host_cdrom","filename":"/dev/cdrom","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
-audiodev id=audio1,driver=sdl,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.buffer-length=200,out.frequency=22050,out.channels=4,out.format=f32 \
-audiodev id=audio1,driver=sdl,timer-period=50,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.buffer-length=200,out.frequency=22050,out.channels=4,out.format=f32 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on

View File

@ -30,7 +30,7 @@
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='sdl' driver='pulseaudio'>
<audio id='1' type='sdl' timerPeriod='50' driver='pulseaudio'>
<input mixingEngine='yes' fixedSettings='yes' voices='1'>
<settings frequency='44100' channels='2' format='s16'/>
</input>

View File

@ -7,6 +7,7 @@ XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
QEMU_AUDIO_DRV=spice \
QEMU_AUDIO_TIMER_PERIOD=50 \
QEMU_AUDIO_ADC_FIXED_SETTINGS=on \
QEMU_AUDIO_ADC_VOICES=1 \
QEMU_AUDIO_ADC_FIXED_FREQ=44100 \

View File

@ -30,6 +30,6 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
-blockdev '{"driver":"host_cdrom","filename":"/dev/cdrom","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
-audiodev id=audio1,driver=spice,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32 \
-audiodev id=audio1,driver=spice,timer-period=50,in.mixing-engine=on,in.fixed-settings=on,in.voices=1,in.frequency=44100,in.channels=2,in.format=s16,out.mixing-engine=on,out.fixed-settings=on,out.voices=2,out.frequency=22050,out.channels=4,out.format=f32 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on

View File

@ -30,7 +30,7 @@
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='spice'>
<audio id='1' type='spice' timerPeriod='50'>
<input mixingEngine='yes' fixedSettings='yes' voices='1'>
<settings frequency='44100' channels='2' format='s16'/>
</input>