[packages/mpd] upstream patch for dynamic samplerate selection with pipewire output plugin

atler atler at pld-linux.org
Mon Oct 18 17:14:13 CEST 2021


commit bcbeb87e6cde253ffc5d779b53d9a7e968a53570
Author: Jan Palus <atler at pld-linux.org>
Date:   Mon Oct 18 17:10:44 2021 +0200

    upstream patch for dynamic samplerate selection with pipewire output plugin
    
    see: https://github.com/MusicPlayerDaemon/MPD/issues/1283

 mpd.spec                        |  2 ++
 pipewire-graph-samplerate.patch | 31 +++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)
---
diff --git a/mpd.spec b/mpd.spec
index d1ce4d6..58f5287 100644
--- a/mpd.spec
+++ b/mpd.spec
@@ -20,6 +20,7 @@ Source2:	%{name}.init
 Source3:	%{name}.sysconfig
 Source4:	%{name}.tmpfiles
 Patch0:		smb.patch
+Patch1:		pipewire-graph-samplerate.patch
 URL:		http://www.musicpd.org/
 BuildRequires:	OpenAL-devel
 BuildRequires:	adplug-devel
@@ -173,6 +174,7 @@ Dokumentacja do Music Player Daemon (MPD).
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 %meson build \
diff --git a/pipewire-graph-samplerate.patch b/pipewire-graph-samplerate.patch
new file mode 100644
index 0000000..e62d56c
--- /dev/null
+++ b/pipewire-graph-samplerate.patch
@@ -0,0 +1,31 @@
+From d5be8c74b009cdfc16b2b637aa9c4edb11cf105d Mon Sep 17 00:00:00 2001
+From: Max Kellermann <max at musicpd.org>
+Date: Mon, 18 Oct 2021 16:45:21 +0200
+Subject: [PATCH] output/pipewire: attempt to change the graph sample rate
+
+Requires PipeWire 0.3.32.
+
+Closes https://github.com/MusicPlayerDaemon/MPD/issues/1283
+---
+ NEWS                                        | 1 +
+ src/output/plugins/PipeWireOutputPlugin.cxx | 7 +++++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/src/output/plugins/PipeWireOutputPlugin.cxx b/src/output/plugins/PipeWireOutputPlugin.cxx
+index 6579c93b6..db7c36823 100644
+--- a/src/output/plugins/PipeWireOutputPlugin.cxx
++++ b/src/output/plugins/PipeWireOutputPlugin.cxx
+@@ -383,6 +383,13 @@ PipeWireOutput::Open(AudioFormat &audio_format)
+ 	if (target != nullptr && target_id == PW_ID_ANY)
+ 		pw_properties_setf(props, PW_KEY_NODE_TARGET, "%s", target);
+ 
++#ifdef PW_KEY_NODE_RATE
++	/* ask PipeWire to change the graph sample rate to ours
++	   (requires PipeWire 0.3.32) */
++	pw_properties_setf(props, PW_KEY_NODE_RATE, "1/%u",
++			   audio_format.sample_rate);
++#endif
++
+ 	const PipeWire::ThreadLoopLock lock(thread_loop);
+ 
+ 	stream = pw_stream_new_simple(pw_thread_loop_get_loop(thread_loop),
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/mpd.git/commitdiff/bcbeb87e6cde253ffc5d779b53d9a7e968a53570



More information about the pld-cvs-commit mailing list