diff --git a/0004-alsa-force-playback-start-when-buffer-is-full.patch b/0004-alsa-force-playback-start-when-buffer-is-full.patch new file mode 100644 index 0000000..e9fe3d3 --- /dev/null +++ b/0004-alsa-force-playback-start-when-buffer-is-full.patch @@ -0,0 +1,30 @@ +From b46d8a8c921a8da6883610ad4b68da95bf59b59e Mon Sep 17 00:00:00 2001 +From: Wim Taymans +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 + diff --git a/pipewire.changes b/pipewire.changes index 18c1dd5..eaa97d9 100644 --- a/pipewire.changes +++ b/pipewire.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Nov 17 07:47:37 UTC 2022 - Antonio Larrosa + +- 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 + ------------------------------------------------------------------- Wed Nov 16 11:32:06 UTC 2022 - Antonio Larrosa diff --git a/pipewire.spec b/pipewire.spec index 5f40beb..4cb6de2 100644 --- a/pipewire.spec +++ b/pipewire.spec @@ -72,6 +72,8 @@ Patch2: 0001-audioadapter-perform-setup-again-after-a-PortConfig.patch Patch3: 0002-audioconvert-redo-setup-when-format-changes.patch # PATCH-FIX-UPSTREAM 0003-acp-do-probing-in-44100Hz-again.patch Patch4: 0003-acp-do-probing-in-44100Hz-again.patch +# PATCH-FIX-UPSTREAM 0004-alsa-force-playback-start-when-buffer-is-full.patch +Patch5: 0004-alsa-force-playback-start-when-buffer-is-full.patch BuildRequires: docutils BuildRequires: doxygen BuildRequires: fdupes @@ -348,6 +350,7 @@ This package provides a PulseAudio implementation based on PipeWire %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 %build %if %{pkg_vcmp gcc < 8}