From ac3555d6fca37893c2a6672ce77e51c094493718 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 28 Jan 2021 17:56:32 +0100 Subject: [PATCH] pulse-server: skip underrun more aggressively Skip all of the underrun bytes immediately. See #638 --- src/modules/module-protocol-pulse/pulse-server.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c index b6a3f1e0e..9769f5364 100644 --- a/src/modules/module-protocol-pulse/pulse-server.c +++ b/src/modules/module-protocol-pulse/pulse-server.c @@ -1550,6 +1550,10 @@ static void stream_process(void *data) size = SPA_MIN(buf->datas[0].maxsize, minreq); memset(p, 0, size); + /* skip the remainder, avail can be negative and thus + * we can skip a lot here. */ + size = (int32_t)minreq - avail; + if (stream->draining) { stream->draining = false; pw_stream_flush(stream->stream, true);