summaryrefslogtreecommitdiff
path: root/media-video/pipewire/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-06-07 15:42:35 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-06-07 15:42:35 +0100
commita693a49d235bea057923bcbc2ee6a40cce4bb060 (patch)
tree7b927ab3d5df3dce15e8c6a727db1831137f9a00 /media-video/pipewire/files
parentbba809b22a050e394e6ce550572ee7f6c6e02a6e (diff)
gentoo auto-resync : 07:06:2023 - 15:42:35
Diffstat (limited to 'media-video/pipewire/files')
-rw-r--r--media-video/pipewire/files/0.3.69/0001-context-improve-state-calculations.patch59
-rw-r--r--media-video/pipewire/files/0.3.69/0002-revert-alsa-mixer-control-element.patch38
-rw-r--r--media-video/pipewire/files/0.3.69/0003-filter-chain-biquads.patch21
-rw-r--r--media-video/pipewire/files/gentoo-pipewire-launcher.in-r277
-rw-r--r--media-video/pipewire/files/pipewire.desktop-r212
5 files changed, 89 insertions, 118 deletions
diff --git a/media-video/pipewire/files/0.3.69/0001-context-improve-state-calculations.patch b/media-video/pipewire/files/0.3.69/0001-context-improve-state-calculations.patch
deleted file mode 100644
index 29469205cf48..000000000000
--- a/media-video/pipewire/files/0.3.69/0001-context-improve-state-calculations.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a275e825c75c93775baaeb17479e38d035d9b79a
-
-From a275e825c75c93775baaeb17479e38d035d9b79a Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Fri, 14 Apr 2023 12:01:03 +0200
-Subject: [PATCH] context: improve state calculations
-
-Always make peers of non-passive links runnable, even if we already
-visited the peer node. This makes non-passive links between drivers set the
-drivers to runnable. (midi-bridge, source to sink). It also makes nodes
-collected from the (link-)group runnable when they are linked together.
-
-To calculate the runnable state of the other nodes, only start from
-non-driver runnable nodes (like we already did when following links).
-
-This makes a link from echo-cancel-source to echo-cancel-sink activate
-the echo-canceler chain instead of staying idle.
---- a/src/pipewire/context.c
-+++ b/src/pipewire/context.c
-@@ -788,9 +788,6 @@ static inline int run_nodes(struct pw_context *context, struct pw_impl_node *nod
- struct pw_impl_port *p;
- struct pw_impl_link *l;
-
-- if (!node->runnable)
-- return 0;
--
- pw_log_debug("node %p: '%s'", node, node->name);
-
- spa_list_for_each(p, &node->input_ports, link) {
-@@ -885,7 +882,7 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node,
-
- pw_impl_link_prepare(l);
-
-- if (!l->prepared || (t != n && t->visited))
-+ if (!l->prepared)
- continue;
-
- if (!l->passive)
-@@ -906,7 +903,7 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node,
-
- pw_impl_link_prepare(l);
-
-- if (!l->prepared || (t != n && t->visited))
-+ if (!l->prepared)
- continue;
-
- if (!l->passive)
-@@ -936,7 +933,8 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node,
- pw_log_debug(" next node %p: '%s' runnable:%u", n, n->name, n->runnable);
- }
- spa_list_for_each(n, collect, sort_link)
-- run_nodes(context, n, collect);
-+ if (!n->driver && n->runnable)
-+ run_nodes(context, n, collect);
-
- return 0;
- }
---
-GitLab
diff --git a/media-video/pipewire/files/0.3.69/0002-revert-alsa-mixer-control-element.patch b/media-video/pipewire/files/0.3.69/0002-revert-alsa-mixer-control-element.patch
deleted file mode 100644
index 1076ad101d0f..000000000000
--- a/media-video/pipewire/files/0.3.69/0002-revert-alsa-mixer-control-element.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/916f1cdfbfdc414d83031aef941a9909d1e603bd
-
-From 916f1cdfbfdc414d83031aef941a9909d1e603bd Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Fri, 14 Apr 2023 16:32:18 +0200
-Subject: [PATCH] Revert "alsa-mixer: allow to re-attach the mixer control
- element"
-
-This reverts commit b554fc20e9ff97064721c89eb15b1b45870584e5.
---- a/spa/plugins/alsa/acp/alsa-util.c
-+++ b/spa/plugins/alsa/acp/alsa-util.c
-@@ -1648,20 +1648,12 @@ static int mixer_class_event(snd_mixer_class_t *class, unsigned int mask,
- } else if (mask & SND_CTL_EVENT_MASK_ADD) {
- snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
- if (iface == SND_CTL_ELEM_IFACE_CARD || iface == SND_CTL_ELEM_IFACE_PCM) {
-- snd_mixer_t *mixer = snd_mixer_class_get_mixer(class);
-- snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
-- const char *name = snd_hctl_elem_get_name(helem);
-- const int index = snd_hctl_elem_get_index(helem);
-- const int device = snd_hctl_elem_get_device(helem);
- snd_mixer_elem_t *new_melem;
-
-- new_melem = pa_alsa_mixer_find(mixer, iface, name, index, device);
-- if (!new_melem) {
-- /* Put the hctl pointer as our private data - it will be useful for callbacks */
-- if ((err = snd_mixer_elem_new(&new_melem, SND_MIXER_ELEM_PULSEAUDIO, 0, helem, NULL)) < 0) {
-- pa_log_warn("snd_mixer_elem_new failed: %s", pa_alsa_strerror(err));
-- return 0;
-- }
-+ /* Put the hctl pointer as our private data - it will be useful for callbacks */
-+ if ((err = snd_mixer_elem_new(&new_melem, SND_MIXER_ELEM_PULSEAUDIO, 0, helem, NULL)) < 0) {
-+ pa_log_warn("snd_mixer_elem_new failed: %s", pa_alsa_strerror(err));
-+ return 0;
- }
-
- if ((err = snd_mixer_elem_attach(new_melem, helem)) < 0) {
---
-GitLab
diff --git a/media-video/pipewire/files/0.3.69/0003-filter-chain-biquads.patch b/media-video/pipewire/files/0.3.69/0003-filter-chain-biquads.patch
deleted file mode 100644
index f01362604f51..000000000000
--- a/media-video/pipewire/files/0.3.69/0003-filter-chain-biquads.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/381be87e379996c502786883f90a19ac49e84c10
-
-From 381be87e379996c502786883f90a19ac49e84c10 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Sun, 16 Apr 2023 18:38:52 +0200
-Subject: [PATCH] filter-chain: config is only required for bq_raw
-
-Fixes #3161
---- a/src/modules/module-filter-chain/builtin_plugin.c
-+++ b/src/modules/module-filter-chain/builtin_plugin.c
-@@ -287,6 +287,8 @@ static void *bq_instantiate(const struct fc_descriptor * Descriptor,
- impl->rate = SampleRate;
- impl->b0 = impl->a0 = 1.0f;
- impl->type = bq_type_from_name(Descriptor->name);
-+ if (impl->type != BQ_NONE)
-+ return impl;
-
- if (config == NULL)
- goto error;
---
-GitLab
diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2 b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2
new file mode 100644
index 000000000000..ea2032b74b42
--- /dev/null
+++ b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+# PipeWire launcher script for XDG compliant desktops on OpenRC.
+#
+# systemd users are very _STRONGLY_ advised to use the much
+# more reliable and predictable user units instead.
+
+# WARNING: This script assumes being run inside XDG compliant session,
+# which means D-Bus session instance is expected to be correctly set up
+# prior to this script starting. If that is not true, things may break!
+
+DATE_FORMAT='+%Y-%m-%dT%H:%M:%S%Z'
+
+CONF="${XDG_CONFIG_HOME}/gentoo-pipewire-launcher.conf"
+if [ -f "${CONF}" ]
+then
+ . "${CONF}"
+else
+ GENTOO_PIPEWIRE_LOG='/dev/null'
+ GENTOO_PIPEWIRE_PULSE_LOG='/dev/null'
+ GENTOO_WIREPLUMBER_LOG='/dev/null'
+fi
+for L in \
+ "${GENTOO_PIPEWIRE_LOG}" \
+ "${GENTOO_PIPEWIRE_PULSE_LOG}" \
+ "${GENTOO_WIREPLUMBER_LOG}"
+do
+ if [ ! -e "${L}" ]
+ then
+ touch "${L}"
+ fi
+done
+
+restart () {
+ echo "Terminating PipeWire processes ..."
+ pkill -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1
+ pwait -u "${USER}" -x pipewire\|wireplumber
+ echo "PipeWire terminated."
+}
+
+if [ "${#}" -gt 0 ]
+then
+ if [ "${1}" = 'restart' ]
+ then
+ restart
+ else
+ echo "Unrecognised argument." >&2
+ echo "Usage: gentoo-pipewire-launcher [restart]" >&2
+ exit 1
+ fi
+fi
+
+if pgrep -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1
+then
+ echo "PipeWire already running, exiting." >&2
+ echo "(Use 'gentoo-pipewire-launcher restart' to restart PipeWire and WirePlumber.)" >&2
+ exit 1
+fi
+
+# The core daemon which by itself does probably nothing.
+echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire." 1>>"${GENTOO_PIPEWIRE_LOG}"
+@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire 1>>"${GENTOO_PIPEWIRE_LOG}" 2>&1 &
+
+# The so called pipewire-pulse daemon used for PulseAudio compatibility.
+# Commenting this out will stop the PA proxying daemon from starting,
+# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using
+# clients will still have access to audio and may end up clashing with
+# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon).
+echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire-Pulse." 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}"
+@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire -c pipewire-pulse.conf 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}" 2>&1 &
+
+# Hack for bug #822498
+sleep 1
+
+# Finally a session manager is required for PipeWire to do anything.
+echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting WirePlumber." 1>>"${GENTOO_WIREPLUMBER_LOG}"
+exec @GENTOO_PORTAGE_EPREFIX@/usr/bin/wireplumber 1>>"${GENTOO_WIREPLUMBER_LOG}" 2>&1
diff --git a/media-video/pipewire/files/pipewire.desktop-r2 b/media-video/pipewire/files/pipewire.desktop-r2
new file mode 100644
index 000000000000..1e8564dbe370
--- /dev/null
+++ b/media-video/pipewire/files/pipewire.desktop-r2
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=1.0
+Name[de]=PipeWire Mediensystem
+Name=PipeWire Media System
+Comment[de]=Das PipeWire Mediensystem starten
+Comment=Start the PipeWire Media System
+Exec=/usr/bin/gentoo-pipewire-launcher restart
+Terminal=false
+Type=Application
+X-GNOME-HiddenUnderSystemd=true
+X-KDE-HiddenUnderSystemd=true
+X-systemd-skip=true