pipewire/0004-alsa-force-playback-start-when-buffer-is-full.patch
Antonio Larrosa f817ff3995 Accepting request 1036402 from home:alarrosa:branches:multimedia:libs
- Add patch from upstream that fixes audio in qemu where the buffer
  is very small (glfo#pipewire/pipewire#2830):
  * 0004-alsa-force-playback-start-when-buffer-is-full.patch

OBS-URL: https://build.opensuse.org/request/show/1036402
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=86
2022-11-17 08:14:23 +00:00

31 lines
895 B
Diff

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