From 00413ed9c2fff416b3c1ee94b2e968e9c564c7bd Mon Sep 17 00:00:00 2001 From: Volker RĂ¼melin Date: Sun, 10 Jan 2021 11:02:34 +0100 Subject: paaudio: limit minreq to 75% of audio timer_rate Currently with the playback buffer attribute minreq = -1 and flag PA_STREAM_EARLY_REQUESTS PulseAudio uses minreq = tlength / 4. To improve audio playback with larger PulseAudio server side buffers, limit minreq to a maximum of 75% of audio timer_rate. That way there is a good chance qemu receives a stream buffer size update before it tries to write data to the playback stream. Signed-off-by: Volker RĂ¼melin Message-id: 9315afe5-5958-c0b4-ea1e-14769511a9d5@t-online.de Message-Id: <20210110100239.27588-18-vr_qemu@t-online.de> Signed-off-by: Gerd Hoffmann --- audio/paaudio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/audio/paaudio.c b/audio/paaudio.c index ff3dd01c96..3186868294 100644 --- a/audio/paaudio.c +++ b/audio/paaudio.c @@ -517,7 +517,8 @@ static int qpa_init_out(HWVoiceOut *hw, struct audsettings *as, ss.rate = as->freq; ba.tlength = pa_usec_to_bytes(ppdo->latency, &ss); - ba.minreq = -1; + ba.minreq = pa_usec_to_bytes(MIN(ppdo->latency >> 2, + (g->dev->timer_period >> 2) * 3), &ss); ba.maxlength = -1; ba.prebuf = -1; -- cgit v1.2.3-55-g7522