Rémi Bernon : winepulse.drv: Write data to pulse in pulse_release_render_buffer.
Module: wine Branch: master Commit: 033cd6013ea9852244b8d58360554c964a7bb540 URL: https://source.winehq.org/git/wine.git/?a=commit;h=033cd6013ea9852244b8d5836... Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Thu Dec 16 18:20:26 2021 +0100 winepulse.drv: Write data to pulse in pulse_release_render_buffer. Instead of waiting for the timer loop, which sometimes causes pulse buffer underflows. This greatly reduces the amount of underflows in Prince of Persia: The Forgotten Sands, as well as in Forza Horizon 4 introduction and menu audio, which are suffering from audio clicks since PE xaudio conversion. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52225 Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com> Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winepulse.drv/pulse.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c index fb8133e9e45..bd886e0d879 100644 --- a/dlls/winepulse.drv/pulse.c +++ b/dlls/winepulse.drv/pulse.c @@ -1675,6 +1675,9 @@ static NTSTATUS pulse_release_render_buffer(void *args) stream->clock_written += written_bytes; stream->locked = 0; + /* push as much data as we can to pulseaudio too */ + pulse_write(stream); + TRACE("Released %u, held %lu\n", params->written_frames, stream->held_bytes / pa_frame_size(&stream->ss)); pulse_unlock();
participants (1)
-
Alexandre Julliard