aboutsummaryrefslogtreecommitdiffstats
path: root/meta-multimedia/recipes-multimedia/pipewire
diff options
context:
space:
mode:
Diffstat (limited to 'meta-multimedia/recipes-multimedia/pipewire')
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2/0001-module-suspend-on-idle-Include-time.h-for-struct-tim.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb7
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb26
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.6.bb (renamed from meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb)201
4 files changed, 223 insertions, 54 deletions
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2/0001-module-suspend-on-idle-Include-time.h-for-struct-tim.patch b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2/0001-module-suspend-on-idle-Include-time.h-for-struct-tim.patch
new file mode 100644
index 0000000000..ce381a78b3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2/0001-module-suspend-on-idle-Include-time.h-for-struct-tim.patch
@@ -0,0 +1,43 @@
+From b1d911fdab4a583f276d18395037d90bfc305109 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 20 May 2024 18:12:23 -0700
+Subject: [PATCH] module-suspend-on-idle: Include time.h for struct timespec
+ decl
+
+This is flagged as error with gcc-14 on musl targets
+
+In file included from ../git/src/pipewire/loop.h:27,
+ from ../git/src/pipewire/core.h:44,
+ from ../git/src/modules/module-suspend-on-idle.c:26:
+../git/spa/include/spa/support/loop.h:184:37: warning: 'struct timespec' declared inside parameter list will not be visible outside of this definition or declaration
+ 184 | struct timespec *value,
+ | ^~~~~~~~
+../git/src/modules/module-suspend-on-idle.c: In function 'node_state_changed':
+../git/src/modules/module-suspend-on-idle.c:110:69: error: passing argument 2 of 'main_loop->utils->update_timer' from incompatible pointer type [-Wincompatible-pointer-types]
+ 110 | pw_loop_update_timer(main_loop, info->idle_timeout, &value, NULL, false);
+ | ^~~~~~
+ | |
+ | struct timespec *
+
+Upstream-Status: Inappropriate [Fixed in latest pipewire differently]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/modules/module-suspend-on-idle.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/modules/module-suspend-on-idle.c b/src/modules/module-suspend-on-idle.c
+index e5c1fcb30..4dba3be71 100644
+--- a/src/modules/module-suspend-on-idle.c
++++ b/src/modules/module-suspend-on-idle.c
+@@ -20,6 +20,7 @@
+ #include <string.h>
+ #include <stdio.h>
+ #include <errno.h>
++#include <time.h>
+
+ #include "config.h"
+
+--
+2.45.1
+
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
index d6dfd87fce..7c8afd3d51 100644
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
@@ -1,8 +1,7 @@
SUMMARY = "Multimedia processing server for Linux"
-AUTHOR = "Wim Taymans <wtaymans@redhat.com>"
HOMEPAGE = "https://pipewire.org"
SECTION = "multimedia"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = " \
file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \
file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
@@ -11,7 +10,9 @@ DEPENDS = "alsa-lib dbus udev"
SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d"
PV = "0.2.7"
-SRC_URI = "git://github.com/PipeWire/pipewire;branch=master;protocol=https"
+SRC_URI = "git://github.com/PipeWire/pipewire;branch=master;protocol=https \
+ file://0001-module-suspend-on-idle-Include-time.h-for-struct-tim.patch \
+ "
S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb
new file mode 100644
index 0000000000..8ae0624135
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "PipeWire Media Session is an example session manager for PipeWire"
+HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/media-session"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a"
+
+DEPENDS = " \
+ pipewire \
+ alsa-lib \
+ dbus \
+"
+
+SRC_URI = "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+SRCREV = "80dae7e24bec02b2befe09a72fbac6e2b38ccb5c"
+
+inherit meson pkgconfig
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2952
+CFLAGS += "-DPW_ENABLE_DEPRECATED"
+FILES:${PN} += " \
+ ${systemd_user_unitdir}/pipewire-media-session.service \
+ ${datadir}/pipewire/media-session.d/* \
+"
+
+RRECOMMENDS:${PN} += "pipewire"
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.6.bb
index 2abc64efb2..f60ede537b 100644
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.6.bb
@@ -1,18 +1,19 @@
-SUMMARY = "Multimedia processing server for Linux"
+SUMMARY = "Multimedia processing server for Linux"
DESCRIPTION = "Linux server for handling and routing audio and video streams between applications and multimedia I/O devices"
-HOMEPAGE = "https://pipewire.org/"
+HOMEPAGE = "https://pipewire.org/"
BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues"
+SECTION = "multimedia"
+
LICENSE = "MIT & LGPL-2.1-or-later & GPL-2.0-only"
LIC_FILES_CHKSUM = " \
file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \
file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \
"
-SECTION = "multimedia"
-DEPENDS = "dbus"
+DEPENDS = "dbus ncurses"
-SRCREV = "1924c2c29824955b5e763f1def6967f68e403c7c"
-SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
+SRCREV = "1b8b683a6d7ee9f1c5dcef3fce5f93069f1357c4"
+SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=1.0;protocol=https"
S = "${WORKDIR}/git"
@@ -27,36 +28,65 @@ USERADD_PARAM:${PN} = "--system --home / --no-create-home \
--gid pipewire --groups audio,video \
pipewire"
-SYSTEMD_PACKAGES = "${PN} ${PN}-media-session"
+SYSTEMD_PACKAGES = "${PN}"
# For "EVL", look up https://evlproject.org/ . It involves
# a specially prepared kernel, and is currently unavailable
# in Yocto.
#
-# FFmpeg and Vulkan aren't really supported - at the current
-# stage (version 0.3.22), these are just experiments, not
-# actual features.
-#
-# libcamera support currently does not build successfully.
#
# manpage generation requires xmltoman, which is not available.
+#
+# The session-managers list specifies which session managers Meson
+# shall download (via git clone) and build as subprojects. In OE,
+# this is not how a session manager should be built. Instead, they
+# should be integrated as separate OE recipes. To prevent PipeWire
+# from using this Meson feature, set an empty list.
+# This does not disable support or the need for session managers,
+# it just prevents this subproject feature.
+#
+# AptX and LDAC are not available in OE. Currently, neither
+# are lv2, ROC, and libmysofa.
+#
+# The RTKit module is deprecated in favor of the newer RT module.
+# It still exists for legacy setups that still include it in
+# their PipeWire configuration files.
EXTRA_OEMESON += " \
- -Daudiotestsrc=enabled \
-Devl=disabled \
-Dtests=disabled \
-Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \
- -Dvideotestsrc=enabled \
- -Dffmpeg=disabled \
- -Dvulkan=disabled \
- -Dlibcamera=disabled \
+ -Dsystemd-system-unit-dir=${systemd_system_unitdir} \
+ -Dsystemd-user-unit-dir=${systemd_user_unitdir} \
-Dman=disabled \
+ -Dsession-managers='[]' \
+ -Dlv2=disabled \
+ -Droc=disabled \
+ -Dbluez5-codec-aptx=disabled \
+ -Dbluez5-codec-ldac=disabled \
+ -Dlegacy-rtkit=false \
+ -Dlibmysofa=disabled \
"
-PACKAGECONFIG ??= "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service', '', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)} \
- gstreamer jack sndfile pw-cat v4l2 \
+# spa alsa plugin code uses typedef redefinition, which is officially a C11 feature.
+# Pipewire builds with 'c_std=gnu99' by default. Recent versions of gcc don't issue this warning in gnu99
+# mode but it looks like clang still does
+CFLAGS:append = " -Wno-typedef-redefinition"
+
+# According to wireplumber documentation only one session manager should be installed at a time
+# Possible options are media-session, which has fewer dependencies but is very simple,
+# or wireplumber, which is more powerful.
+PIPEWIRE_SESSION_MANAGER ??= "wireplumber"
+
+FFMPEG_AVAILABLE = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'ffmpeg', '', d)}"
+BLUETOOTH_AAC = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'bluez-aac', '', d)}"
+
+PACKAGECONFIG:class-target ??= " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez bluez-opus ${BLUETOOTH_AAC}', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \
+ ${PIPEWIRE_SESSION_MANAGER} \
+ ${FFMPEG_AVAILABLE} avahi flatpak gstreamer gsettings jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling libcamera readline \
"
# "jack" and "pipewire-jack" packageconfigs cannot be both enabled,
@@ -64,24 +94,49 @@ PACKAGECONFIG ??= "\
# libjack.so* files, thus colliding with the libpack package. This
# is why these two are marked in their respective packageconfigs
# as being in conflict.
-PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev"
+PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev,,pipewire-alsa pipewire-alsa-card-profile"
+PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi"
PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc"
-PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native"
-PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac"
+PACKAGECONFIG[bluez-opus] = "-Dbluez5-codec-opus=enabled,-Dbluez5-codec-opus=disabled,libopus"
+PACKAGECONFIG[bluez-lc3] = "-Dbluez5-codec-lc3=enabled,-Dbluez5-codec-lc3=disabled,liblc3"
+# From the pipewire git log:
+# "Some Linux phones doesn't use oFono but ModemManager to control the modem."
+# This packageconfig enables modemmanager specific code in the BlueZ backend.
+PACKAGECONFIG[bluez-backend-native-mm] = "-Dbluez5-backend-native-mm=enabled,-Dbluez5-backend-native-mm=disabled,modemmanager"
+PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native graphviz-native"
+PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg"
+PACKAGECONFIG[flatpak] = "-Dflatpak=enabled,-Dflatpak=disabled,glib-2.0"
+PACKAGECONFIG[gsettings] = "-Dgsettings=enabled,-Dgsettings=disabled,glib-2.0"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base,,gstreamer1.0-pipewire"
PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack"
-PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2"
+PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera libdrm"
+PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra"
+PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb"
+PACKAGECONFIG[media-session] = ",,,pipewire-media-session,,wireplumber"
+PACKAGECONFIG[pulseaudio] = "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio,,pipewire-pulse"
+PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib"
+PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,pipewire-jack,jack"
+PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled"
+PACKAGECONFIG[raop] = "-Draop=enabled,-Draop=disabled,openssl"
+# Starting with version 0.3.60, readline usage can be turned off in pw-cli.
+# If it is disabled, getline() is used as a fallback.
+PACKAGECONFIG[readline] = "-Dreadline=enabled,-Dreadline=disabled,readline"
+PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,libsdl2"
PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsystemd-system-service=disabled,systemd"
-# "systemd-user-service" packageconfig will only install service
+# "systemd-user-service" packageconfig will only install service
# files to rootfs but not enable them as systemd.bbclass
# currently lacks the feature of enabling user services.
PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd"
# pw-cat needs sndfile packageconfig to be enabled
-PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled"
+PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev"
PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev"
-PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib"
-PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack"
+PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled"
+PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader"
+PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing-1"
+PACKAGECONFIG[wireplumber] = ",,,wireplumber,,media-session"
PACKAGESPLITFUNCS:prepend = " split_dynamic_packages "
PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends "
@@ -96,6 +151,10 @@ remove_unused_installed_files() {
if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then
rm -f "${D}${datadir}/pipewire/jack.conf"
fi
+
+ # minimal.conf is an example of how to minimally configure the
+ # daemon and is not meant to be used for production.
+ rm -f "${D}${datadir}/pipewire/minimal.conf"
}
do_install[postfuncs] += "remove_unused_installed_files"
@@ -115,6 +174,9 @@ python set_dynamic_metapkg_rdepends () {
import os
import oe.utils
+ if bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('native', d):
+ return
+
# Go through all generated SPA plugin and PipeWire module packages
# (excluding the main package and the -meta package itself) and
# add them to the -meta package as RDEPENDS.
@@ -179,24 +241,34 @@ PACKAGES =+ "\
${PN}-pulse \
${PN}-alsa \
${PN}-jack \
- ${PN}-media-session \
${PN}-spa-plugins \
${PN}-spa-plugins-meta \
${PN}-spa-tools \
${PN}-modules \
${PN}-modules-meta \
${PN}-alsa-card-profile \
+ ${PN}-v4l2 \
+ ${PN}-aes67 \
gstreamer1.0-pipewire \
"
PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*"
+PACKAGES_DYNAMIC:class-native = ""
SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}"
CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf"
FILES:${PN} = " \
- ${datadir}/pipewire/pipewire.conf \
- ${systemd_user_unitdir}/pipewire.* \
+ ${datadir}/pipewire \
+ ${systemd_system_unitdir}/pipewire* \
+ ${systemd_user_unitdir} \
${bindir}/pipewire \
+ ${bindir}/pipewire-avb \
+ ${bindir}/pipewire-vulkan \
+"
+
+RRECOMMENDS:${PN}:class-target += " \
+ pipewire-modules-meta \
+ pipewire-spa-plugins-meta \
"
FILES:${PN}-dev += " \
@@ -217,7 +289,25 @@ RDEPENDS:libpipewire += " \
"
FILES:${PN}-tools = " \
- ${bindir}/pw-* \
+ ${bindir}/pw-cat \
+ ${bindir}/pw-cli \
+ ${bindir}/pw-config \
+ ${bindir}/pw-dot \
+ ${bindir}/pw-dsdplay \
+ ${bindir}/pw-dump \
+ ${bindir}/pw-encplay \
+ ${bindir}/pw-link \
+ ${bindir}/pw-loopback \
+ ${bindir}/pw-metadata \
+ ${bindir}/pw-mididump \
+ ${bindir}/pw-midiplay \
+ ${bindir}/pw-midirecord \
+ ${bindir}/pw-mon \
+ ${bindir}/pw-play \
+ ${bindir}/pw-profiler \
+ ${bindir}/pw-record \
+ ${bindir}/pw-reserve \
+ ${bindir}/pw-top \
"
# This is a shim daemon that is intended to be used as a
@@ -226,6 +316,7 @@ FILES:${PN}-tools = " \
CONFFILES:${PN}-pulse += "${datadir}/pipewire/pipewire-pulse.conf"
FILES:${PN}-pulse = " \
${datadir}/pipewire/pipewire-pulse.conf \
+ ${systemd_system_unitdir}/pipewire-pulse.* \
${systemd_user_unitdir}/pipewire-pulse.* \
${bindir}/pipewire-pulse \
"
@@ -233,45 +324,40 @@ RDEPENDS:${PN}-pulse += " \
${PN}-modules-protocol-pulse \
"
-# alsa plugin to redirect audio to pipewire
+# ALSA plugin to redirect audio to pipewire.
FILES:${PN}-alsa = "\
${libdir}/alsa-lib/* \
${datadir}/alsa/alsa.conf.d/* \
"
-# jack drop-in libraries to redirect audio to pipewire
+# JACK drop-in libraries to redirect audio to pipewire.
CONFFILES:${PN}-jack = "${datadir}/pipewire/jack.conf"
FILES:${PN}-jack = "\
+ ${bindir}/pw-jack \
${datadir}/pipewire/jack.conf \
${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \
"
-# Example session manager. Not intended for use in production.
-CONFFILES:${PN}-media-session = "${datadir}/pipewire/media-session.d/*"
-SYSTEMD_SERVICE:${PN}-media-session = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire-media-session.service', '', d)}"
-FILES:${PN}-media-session = " \
- ${bindir}/pipewire-media-session \
- ${datadir}/pipewire/media-session.d/* \
- ${systemd_system_unitdir}/pipewire-media-session.service \
- ${systemd_user_unitdir}/pipewire-media-session.service \
-"
-RPROVIDES:${PN}-media-session = "virtual-pipewire-sessionmanager"
-
-# Dynamic packages (see set_dynamic_metapkg_rdepends).
+# Dynamic SPA plugin packages (see set_dynamic_metapkg_rdepends).
FILES:${PN}-spa-plugins = ""
RRECOMMENDS:${PN}-spa-plugins += "${PN}-spa-plugins-meta"
+FILES:${PN}-spa-plugins-bluez5 += " \
+ ${datadir}/${SPA_SUBDIR}/bluez5/* \
+"
+
FILES:${PN}-spa-tools = " \
${bindir}/spa-* \
"
-# Dynamic packages (see set_dynamic_metapkg_rdepends).
+# Dynamic PipeWire module packages (see set_dynamic_metapkg_rdepends).
FILES:${PN}-modules = ""
RRECOMMENDS:${PN}-modules += "${PN}-modules-meta"
-CONFFILES:${PN}-modules-rtkit = "${datadir}/pipewire/client-rt.conf"
-FILES:${PN}-modules-rtkit += " \
+CONFFILES:${PN}-modules-rt = "${datadir}/pipewire/client-rt.conf"
+FILES:${PN}-modules-rt += " \
${datadir}/pipewire/client-rt.conf \
+ ${sysconfdir}/security/limits.d/* \
"
CONFFILES:${PN}-modules-filter-chain = "${datadir}/pipewire/filter-chain/*"
@@ -284,6 +370,19 @@ FILES:${PN}-alsa-card-profile = " \
${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \
"
+# V4L2 interface emulator for sending/receiving data between PipeWire and V4L2 applications.
+FILES:${PN}-v4l2 += " \
+ ${bindir}/pw-v4l2 \
+ ${libdir}/${PW_MODULE_SUBDIR}/v4l2/libpw-v4l2.so \
+"
+
+# AES67 is a standard for audio over IP, from the Audio Engineering Society (AES).
+FILES:${PN}-aes67 += " \
+ ${bindir}/pipewire-aes67 \
+"
+
FILES:gstreamer1.0-pipewire = " \
${libdir}/gstreamer-1.0/* \
"
+
+BBCLASSEXTEND = "native nativesdk"