summaryrefslogtreecommitdiffstats
path: root/source/l/pipewire/b46d8a8c921a8da6883610ad4b68da95bf59b59e.patch
blob: 70af7d0adb88211644163f67bcda53011a311a91 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
From b46d8a8c921a8da6883610ad4b68da95bf59b59e Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Wed, 16 Nov 2022 20:45:38 +0100
Subject: [PATCH] alsa: force playback start when buffer is full

When we try to play data but the ringbuffer is full, we need to start
the device or else we will stay in this situation forever and stay
silent.

Fixes #2830
---
 spa/plugins/alsa/alsa-pcm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c
index fed56e7bb..5e0a60b37 100644
--- a/spa/plugins/alsa/alsa-pcm.c
+++ b/spa/plugins/alsa/alsa-pcm.c
@@ -2128,7 +2128,7 @@ again:
 
 	state->sample_count += total_written;
 
-	if (SPA_UNLIKELY(!state->alsa_started && total_written > 0))
+	if (SPA_UNLIKELY(!state->alsa_started && (total_written > 0 || frames == 0)))
 		do_start(state);
 
 	return 0;
-- 
GitLab