From bf25fc138827561260158fc75d40bbefd90e2712 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Sat, 16 Jan 2021 17:16:02 +0100 Subject: [PATCH] pulse-server: always use rate_match value when available The minreq is just a fallback for when we don't know the exact amount of required samples to consume from the ringbuffer. --- src/modules/module-protocol-pulse/pulse-server.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c index c46745bbd..3b2aa0de4 100644 --- a/src/modules/module-protocol-pulse/pulse-server.c +++ b/src/modules/module-protocol-pulse/pulse-server.c @@ -1444,9 +1444,10 @@ static void stream_process(void *data) if (stream->direction == PW_DIRECTION_OUTPUT) { int32_t avail = spa_ringbuffer_get_read_index(&stream->ring, &pd.read_index); - minreq = SPA_MAX(stream->minblock, stream->attr.minreq); if (stream->rate_match) - minreq = SPA_MIN(minreq, stream->rate_match->size * stream->frame_size); + minreq = stream->rate_match->size * stream->frame_size; + else + minreq = SPA_MAX(stream->minblock, stream->attr.minreq); if (avail <= 0) { /* underrun, produce a silence buffer */ size = SPA_MIN(buf->datas[0].maxsize, minreq);