pipewire/0001-pulse-server-don-t-underrun-when-draining.patch
DistroBaker 2b7f8a3af7 Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/pipewire.git#be385b8bead20dac22768069ec795e9366c11590
2020-11-01 16:55:09 +00:00

38 lines
1.2 KiB
Diff

From 98b1b8090dbffe1dfa6e1883b2550008833a568a Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Sat, 31 Oct 2020 15:22:32 +0100
Subject: [PATCH 1/3] pulse-server: don't underrun when draining
---
src/modules/module-protocol-pulse/pulse-server.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c
index a4162280..dbc52431 100644
--- a/src/modules/module-protocol-pulse/pulse-server.c
+++ b/src/modules/module-protocol-pulse/pulse-server.c
@@ -1276,13 +1276,15 @@ static void stream_process(void *data)
int32_t avail = spa_ringbuffer_get_read_index(&stream->ring, &pd.read_index);
if (avail <= 0) {
/* underrun */
- if (stream->drain_tag)
- pw_stream_flush(stream->stream, true);
-
size = buf->datas[0].maxsize;
memset(p, 0, size);
- pd.underrun_for = size;
- pd.underrun = true;
+
+ if (stream->drain_tag)
+ pw_stream_flush(stream->stream, true);
+ else {
+ pd.underrun_for = size;
+ pd.underrun = true;
+ }
} else if (avail > MAXLENGTH) {
/* overrun, handled by other side */
pw_log_warn(NAME" %p: overrun", stream);
--
2.28.0