diff options
-rw-r--r-- | audio/paaudio.c | 12 | ||||
-rw-r--r-- | qapi/audio.json | 6 |
2 files changed, 11 insertions, 7 deletions
diff --git a/audio/paaudio.c b/audio/paaudio.c index ab2a37bbdb..be27c73f09 100644 --- a/audio/paaudio.c +++ b/audio/paaudio.c @@ -549,12 +549,8 @@ static int qpa_init_out(HWVoiceOut *hw, struct audsettings *as, ss.channels = as->nchannels; ss.rate = as->freq; - /* - * qemu audio tick runs at 100 Hz (by default), so processing - * data chunks worth 10 ms of sound should be a good fit. - */ - ba.tlength = pa_usec_to_bytes (10 * 1000, &ss); - ba.minreq = pa_usec_to_bytes (5 * 1000, &ss); + ba.tlength = pa_usec_to_bytes(ppdo->latency, &ss); + ba.minreq = -1; ba.maxlength = -1; ba.prebuf = -1; @@ -818,6 +814,10 @@ static int qpa_validate_per_direction_opts(Audiodev *dev, pdo->has_buffer_length = true; pdo->buffer_length = 46440; } + if (!pdo->has_latency) { + pdo->has_latency = true; + pdo->latency = 15000; + } return 1; } diff --git a/qapi/audio.json b/qapi/audio.json index 97aee37288..9fefdf5186 100644 --- a/qapi/audio.json +++ b/qapi/audio.json @@ -206,12 +206,16 @@ # # @name: name of the sink/source to use # +# @latency: latency you want PulseAudio to achieve in microseconds +# (default 15000) +# # Since: 4.0 ## { 'struct': 'AudiodevPaPerDirectionOptions', 'base': 'AudiodevPerDirectionOptions', 'data': { - '*name': 'str' } } + '*name': 'str', + '*latency': 'uint32' } } ## # @AudiodevPaOptions: |