From 222ef88704c37cbaddc963444a375ccd1c6acb57 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 7 Jan 2022 10:59:41 +0100 Subject: [PATCH] pulse-server: request more data when seeking backwards Immediately ask for more data when we seek backwards so that we don't underrun in the next process cycle. See #1981 --- src/modules/module-protocol-pulse/server.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/modules/module-protocol-pulse/server.c b/src/modules/module-protocol-pulse/server.c index 27bfd25c5..63b042411 100644 --- a/src/modules/module-protocol-pulse/server.c +++ b/src/modules/module-protocol-pulse/server.c @@ -188,6 +188,14 @@ static int handle_memblock(struct client *client, struct message *msg) spa_ringbuffer_write_update(&stream->ring, index); stream->requested -= SPA_MIN(msg->length, stream->requested); + if (diff < 0) { + /* when we seek backwards, ask for the additional missing data + * immediately so that we don't underrun in the next process */ + pw_log_info("client %p [%s]: backwards seek of: %" PRIi64, + client, client->name, diff); + stream_send_request(stream); + } + finish: message_free(impl, msg, false, false); return res;