aboutsummaryrefslogtreecommitdiff
path: root/audio/paaudio.c
diff options
context:
space:
mode:
authorVolker RĂ¼melin <vr_qemu@t-online.de>2021-01-10 11:02:34 +0100
committerGerd Hoffmann <kraxel@redhat.com>2021-01-15 11:25:22 +0100
commit00413ed9c2fff416b3c1ee94b2e968e9c564c7bd (patch)
tree507823945827fa1967ed74b4351fcd3daa4372bd /audio/paaudio.c
parentcffd2fdf2c121804ac97a43f051a8d8cd71508b4 (diff)
downloadqemu-00413ed9c2fff416b3c1ee94b2e968e9c564c7bd.zip
qemu-00413ed9c2fff416b3c1ee94b2e968e9c564c7bd.tar.gz
qemu-00413ed9c2fff416b3c1ee94b2e968e9c564c7bd.tar.bz2
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 <vr_qemu@t-online.de> 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 <kraxel@redhat.com>
Diffstat (limited to 'audio/paaudio.c')
-rw-r--r--audio/paaudio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/audio/paaudio.c b/audio/paaudio.c
index ff3dd01..3186868 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;