pipewire: update to 0.3.31.

* add a libusb dependency to improve bluetooth device capabilities detection
* add experimental system services for pipewire and pipewire-pulse
This commit is contained in:
Michal Vasilek 2021-06-20 17:50:52 +02:00 committed by Érico Nogueira Rolim
parent 32b52f4616
commit 29b52e525c
6 changed files with 34 additions and 72 deletions

View file

@ -7,3 +7,7 @@ Optional dependencies:
* `libspa-jack` for running pipewire and jack side-by-side * `libspa-jack` for running pipewire and jack side-by-side
* `libspa-v4l2` for video camera support * `libspa-v4l2` for video camera support
* `rtkit` for realtime priority acquisition * `rtkit` for realtime priority acquisition
The system services /etc/sv/pipewire and /etc/sv/pipewire-pulse are
experimental and only needed in rare cases so using them should be
avoided in most setups.

View file

@ -0,0 +1,7 @@
#!/bin/sh
# this service is experimental and most setups should start pipewire as a user,
# for further information, please refer to the handbook
! [ -d /run/pulse ] && install -m 755 -g _pipewire -o _pipewire -d /run/pulse
umask 002
export PULSE_RUNTIME_PATH=/run
exec chpst -u _pipewire:_pipewire pipewire-pulse

View file

@ -0,0 +1,8 @@
#!/bin/sh
# this service is experimental and most setups should start pipewire as a user,
# for further information, please refer to the handbook
! [ -d /run/pipewire ] && install -m 755 -g _pipewire -o _pipewire -d /run/pipewire
umask 002
export PIPEWIRE_RUNTIME_DIR=/run/pipewire
export XDG_CONFIG_HOME=/var/lib
exec chpst -u _pipewire:_pipewire:audio:video pipewire

View file

@ -1,62 +0,0 @@
From 6df32666b44b5174aace3dcff39f39a58eba508f Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 20 May 2021 11:22:04 +0200
Subject: [PATCH] filter-chain: check external ports only once
When we duplicate the pipeline to match the channels, only check
if a port was used only once for the first instance. Makes
demonic filter work again.
---
src/modules/module-filter-chain.c | 18 ++++--------------
1 file changed, 4 insertions(+), 14 deletions(-)
diff --git a/src/modules/module-filter-chain.c b/src/modules/module-filter-chain.c
index b1e727069..bb346b6d8 100644
--- a/src/modules/module-filter-chain.c
+++ b/src/modules/module-filter-chain.c
@@ -972,16 +972,6 @@ static int parse_link(struct graph *graph, struct spa_json *json)
pw_log_error("unknown input port %s", input);
return -ENOENT;
}
- if (in_port->external != SPA_ID_INVALID) {
- pw_log_info("%s already used as graph input %d, use mixer",
- input, in_port->external);
- return -EINVAL;
- }
- if (out_port->external != SPA_ID_INVALID) {
- pw_log_info("%s already used as graph output %d, use copy",
- output, out_port->external);
- return -EINVAL;
- }
if (in_port->n_links > 0) {
pw_log_info("Can't have more than 1 link to %s, use a mixer", input);
return -ENOTSUP;
@@ -1334,10 +1324,10 @@ static int setup_graph(struct graph *graph, struct spa_json *inputs, struct spa_
} else {
desc = port->node->desc;
d = desc->desc;
- if (port->external != SPA_ID_INVALID) {
+ if (i == 0 && port->external != SPA_ID_INVALID) {
pw_log_error("input port %s[%d]:%s already used as input %d, use mixer",
port->node->name, i, d->PortNames[port->p],
- graph->n_input);
+ port->external);
res = -EBUSY;
goto error;
}
@@ -1382,10 +1372,10 @@ static int setup_graph(struct graph *graph, struct spa_json *inputs, struct spa_
} else {
desc = port->node->desc;
d = desc->desc;
- if (port->external != SPA_ID_INVALID) {
+ if (i == 0 && port->external != SPA_ID_INVALID) {
pw_log_error("output port %s[%d]:%s already used as output %d, use copy",
port->node->name, i, d->PortNames[port->p],
- graph->n_output);
+ port->external);
res = -EBUSY;
goto error;
}
--
GitLab

View file

@ -2,14 +2,14 @@ Upstream's config does not autostart pipewire-media-session anymore, which
is an essential component. It's not easy to start it externally in a script is an essential component. It's not easy to start it externally in a script
since it needs the pipewire socket up, and Void doesn't have a mechanism to since it needs the pipewire socket up, and Void doesn't have a mechanism to
ensure it (systemd socket activation). ensure it (systemd socket activation).
--- a/src/daemon/pipewire.conf.in 2021-03-18 17:45:02.025992827 +0100 --- a/src/daemon/pipewire.conf.in
+++ b/src/daemon/pipewire.conf.in 2021-03-18 17:47:17.606999440 +0100 +++ b/src/daemon/pipewire.conf.in
@@ -204,7 +204,7 @@ @@ -234,7 +234,7 @@
# but it is better to start it as a systemd service. # but it is better to start it as a systemd service.
# Run the session manager with -h for options. # Run the session manager with -h for options.
# #
- @comment@{ path = "@media_session_path@" args = "" } - @comment@{ path = "@session_manager_path@" args = "@session_manager_args@" }
+ { path = "@media_session_path@" args = "" } + { path = "@session_manager_path@" args = "@session_manager_args@" }
# #
# You can optionally start the pulseaudio-server here as well # You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service. # but it is better to start it as a systemd service.

View file

@ -1,24 +1,26 @@
# Template file for 'pipewire' # Template file for 'pipewire'
pkgname=pipewire pkgname=pipewire
version=0.3.28 version=0.3.31
revision=1 revision=1
build_style=meson build_style=meson
configure_args="-Dman=enabled -Dgstreamer=enabled -Ddocs=enabled -Dsystemd=disabled configure_args="-Dman=enabled -Dgstreamer=enabled -Ddocs=enabled -Dsystemd=disabled
-Dbluez5=enabled -Dffmpeg=enabled -Dpipewire-alsa=enabled -Dpipewire-jack=enabled -Dbluez5=enabled -Dffmpeg=enabled -Dpipewire-alsa=enabled -Dpipewire-jack=enabled
-Dvulkan=enabled -Dudevrulesdir=/usr/lib/udev/rules.d" -Dvulkan=enabled -Dudevrulesdir=/usr/lib/udev/rules.d -Db_ndebug=false"
hostmakedepends="doxygen graphviz pkg-config xmltoman gettext" hostmakedepends="doxygen graphviz pkg-config xmltoman gettext"
makedepends="ffmpeg-devel gst-plugins-base1-devel jack-devel sbc-devel v4l-utils-devel makedepends="ffmpeg-devel gst-plugins-base1-devel jack-devel sbc-devel v4l-utils-devel
libva-devel libbluetooth-devel ncurses-devel libopenaptx-devel fdk-aac-devel libva-devel libbluetooth-devel ncurses-devel libopenaptx-devel libusb-devel fdk-aac-devel
libsndfile-devel Vulkan-Headers vulkan-loader $(vopt_if sdl2 SDL2-devel)" libsndfile-devel Vulkan-Headers vulkan-loader $(vopt_if sdl2 SDL2-devel)"
depends="libspa-alsa>=${version}_${revision} libspa-audioconvert>=${version}_${revision} depends="libspa-alsa>=${version}_${revision} libspa-audioconvert>=${version}_${revision}
libspa-audiomixer>=${version}_${revision} libspa-control>=${version}_${revision}" libspa-audiomixer>=${version}_${revision} libspa-control>=${version}_${revision}"
short_desc="Server and user space API to deal with multimedia pipelines" short_desc="Server and user space API to deal with multimedia pipelines"
maintainer="Kridsada Thanabulpong <sirn@ogsite.net>" maintainer="Stefano Ragni <stefano.ragni@outlook.com>"
license="MIT" license="MIT"
homepage="https://pipewire.org/" homepage="https://pipewire.org/"
changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS" changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz" distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz"
checksum=1d9271e121a5049aef379e9bb7c50524faa6f971e668806637d7b9df1b7cab88 checksum=2fec0eb47dbfcad51fb8bb3d59c26fe57e09204d63c9d2776070dbdc08aaaaae
make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
system_accounts="_pipewire"
build_options="sdl2" build_options="sdl2"
@ -36,6 +38,8 @@ fi
post_install() { post_install() {
vlicense LICENSE vlicense LICENSE
vdoc "${FILESDIR}/README.voidlinux" vdoc "${FILESDIR}/README.voidlinux"
vsv pipewire
vsv pipewire-pulse
} }
libpipewire_package() { libpipewire_package() {
@ -150,6 +154,7 @@ libjack-pipewire_package() {
pkg_install() { pkg_install() {
vmove usr/lib/pipewire-0.3/jack vmove usr/lib/pipewire-0.3/jack
vmove usr/bin/pw-jack vmove usr/bin/pw-jack
vmove usr/share/man/man1/pw-jack.1
} }
} }