From: ologantr <ologantr@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: [PR PATCH] cmus: patch to fix freeze with PipeWire-PulseAudio
Date: Mon, 19 Sep 2022 20:57:56 +0200 [thread overview]
Message-ID: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-39375@inbox.vuxu.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 824 bytes --]
There is a new pull request by ologantr against master on the void-packages repository
https://github.com/ologantr/void-packages cmus-pipewire-fix
https://github.com/void-linux/void-packages/pull/39375
cmus: patch to fix freeze with PipeWire-PulseAudio
This patch fixes cmus freezing on exit using
both cmus-pulseaudio and pipewire-pulse.
Original bug report: https://github.com/cmus/cmus/issues/1184
Patch from: https://github.com/cmus/cmus/pull/1172
Debian: https://salsa.debian.org/multimedia-team/cmus/-/commit/2e20a489bc58a604a0093830d71e43a5ac2b6c51
#### Testing the changes
- I tested the changes in this PR: **YES**
#### Local build testing
- I built this PR locally for my native architecture (x86_64-glibc)
A patch file from https://github.com/void-linux/void-packages/pull/39375.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-cmus-pipewire-fix-39375.patch --]
[-- Type: text/x-diff, Size: 3376 bytes --]
From b5a712138927a4d19017a75ca2c62664fda2701a Mon Sep 17 00:00:00 2001
From: ologantr <mrphyber@protonmail.com>
Date: Mon, 19 Sep 2022 20:50:46 +0200
Subject: [PATCH] cmus: patch to fix freeze with PipeWire-PulseAudio
This patch fixes cmus freezing on exit using
both cmus-pulseaudio and pipewire-pulse.
Original bug report: https://github.com/cmus/cmus/issues/1184
Patch from: https://github.com/cmus/cmus/pull/1172
Debian: https://salsa.debian.org/multimedia-team/cmus/-/commit/2e20a489bc58a604a0093830d71e43a5ac2b6c51
---
.../patches/0004-Fix-freeze-on-exit.patch | 74 +++++++++++++++++++
srcpkgs/cmus/template | 2 +-
2 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/cmus/patches/0004-Fix-freeze-on-exit.patch
diff --git a/srcpkgs/cmus/patches/0004-Fix-freeze-on-exit.patch b/srcpkgs/cmus/patches/0004-Fix-freeze-on-exit.patch
new file mode 100644
index 000000000000..a8dfa0e91f9f
--- /dev/null
+++ b/srcpkgs/cmus/patches/0004-Fix-freeze-on-exit.patch
@@ -0,0 +1,74 @@
+Description: Fix freeze when exiting cmus
+Origin: upstream, https://github.com/cmus/cmus/pull/1172
+Bug: https://github.com/cmus/cmus/issues/1184
+Date: Thu, 14 Jul 2022 18:21:59 +0200
+
+---
+ op/pulse.c | 24 +++++++++++++++++++++++-
+ 1 file changed, 23 insertions(+), 1 deletion(-)
+
+diff --git a/op/pulse.c b/op/pulse.c
+index c8a6d6a..78ec066 100644
+--- a/op/pulse.c
++++ b/op/pulse.c
+@@ -17,7 +17,9 @@
+ */
+
+ #include <string.h>
++#include <stdbool.h>
+
++#include <pulse/introspect.h>
+ #include <pulse/pulseaudio.h>
+
+ #include "../op.h"
+@@ -33,6 +35,8 @@ static pa_channel_map pa_cmap;
+ static pa_cvolume pa_vol;
+ static pa_sample_spec pa_ss;
+
++static bool is_pipewire = false;
++
+ static int mixer_notify_in;
+ static int mixer_notify_out;
+
+@@ -175,6 +179,20 @@ static void _pa_sink_input_info_cb(pa_context *c,
+ }
+ }
+
++static void _pa_server_info_cb(pa_context *c,
++ const pa_server_info *i,
++ void *data)
++{
++ is_pipewire = false;
++ if (i) {
++ if (strstr(i->server_name, "PipeWire") != NULL) {
++ // server is PipeWire
++ d_print("Pulseaudio server is pipewire. Disabling _pa_stream_drain()\n");
++ is_pipewire = true;
++ }
++ }
++}
++
+ static void _pa_stream_success_cb(pa_stream *s, int success, void *data)
+ {
+ pa_threaded_mainloop_signal(pa_ml, 0);
+@@ -422,6 +440,8 @@ static int op_pulse_open(sample_format_t sf, const channel_position_t *channel_m
+ pa_context_get_sink_input_info(pa_ctx, pa_stream_get_index(pa_s),
+ _pa_sink_input_info_cb, NULL);
+
++ pa_context_get_server_info(pa_ctx, _pa_server_info_cb, NULL);
++
+ pa_threaded_mainloop_unlock(pa_ml);
+
+ return OP_ERROR_SUCCESS;
+@@ -440,8 +460,10 @@ static int op_pulse_close(void)
+ * If this _pa_stream_drain() will be moved below following
+ * pa_threaded_mainloop_lock(), PulseAudio 0.9.19 will hang.
+ */
+- if (pa_s)
++
++ if (pa_s && !is_pipewire){
+ _pa_stream_drain();
++ }
+
+ pa_threaded_mainloop_lock(pa_ml);
+
diff --git a/srcpkgs/cmus/template b/srcpkgs/cmus/template
index 0fcb424ce336..05b77d0fecae 100644
--- a/srcpkgs/cmus/template
+++ b/srcpkgs/cmus/template
@@ -1,7 +1,7 @@
# Template file for 'cmus'
pkgname=cmus
version=2.10.0
-revision=1
+revision=2
build_style=configure
configure_args="prefix=/usr LD=$CC"
hostmakedepends="pkg-config"
next reply other threads:[~2022-09-19 18:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-19 18:57 ologantr [this message]
2022-09-19 19:43 ` Duncaen
2022-09-19 19:48 ` Duncaen
2022-09-21 11:27 ` ologantr
2022-12-21 1:55 ` github-actions
2023-01-04 1:59 ` [PR PATCH] [Closed]: " github-actions
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-39375@inbox.vuxu.org \
--to=ologantr@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).