summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-multimedia/recipes-multimedia
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2021-03-06 00:23:11 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2021-03-15 14:02:06 +0300
commit97771a30474a164ca08efd09209692a1fb8a4574 (patch)
treee350c1e654a41e7a090a1c6fe64f01d69bd28ac3 /meta-openembedded/meta-multimedia/recipes-multimedia
parent8b1392834def7d17263b45bd1aab35759235fb3e (diff)
downloadopenbmc-97771a30474a164ca08efd09209692a1fb8a4574.tar.xz
meta-openembedded: subtree update:7206f7f5bc..98175fd0cc
Adam Miartus (4): libcereal: update to newer version libcereal: pick up additional licenses of cereal components libcereal: add dev package that can be included into toolchain sdk cereal: Remove Alejandro Hernandez Samaniego (2): freerdp: Upgrade 2.2.0 -> 2.3.0 remmina: Upgrade 1.4.10 -> 1.4.11 Anatol Belski (2): abseil-cpp: Relax build requirements grpc: Upgrade 1.24.3 -> 1.35.0 Andrei Gherzan (1): nss: Fix warnings generated by getcwd Bartosz Golaszewski (1): pydbus-manager: new package Carlos Rafael Giani (2): pipewire: Move to meta-multimedia pipewire: Rework 0.3 recipe and upgrade to 0.3.22 Christian B. Sørensen (1): libgpiod: packageqa problem => static python lib to ${PN}-staticdev Clément Péron (2): grpc: Add PackageConfig to build only required plugins grpc: remove gflags dependency Diego Santa Cruz (1): php: split out phpdbg into a separate package Enrico Jörns (1): python3-aiohttp: add missing RDEPENDS on python3-typing-extensions Gianfranco (1): mosquitto: Upgrade 2.0.7 -> 2.0.8 Hongxu Jia (1): lvm2/libdevmapper: 2.03.06 -> 2.03.11 Kai Kang (2): xfsprogs: 5.9.0 -> 5.10.0 libinih: install header files without prefix dir inih Khem Raj (39): yelp-xsl: Mark native libxml2 in rdeps liburing: Do not build examples on risc/musl aom: Disable neon on arm when not present in TUNE_FEATURES python3-grpcio: Upgrade to 1.35.0 python3-grpcio-tools: Upgrade to 1.35.0 recipes: Update common-licenses references to match new names openldap: Refresh patches to remove fuzz abseil-cpp: Remove libexecinfo band-aid for musl nss: Add powerpc64 little endian support luajit: Upgrade to latest on v2.1 release influxdb: Generate checksums for term module libauthen-sasl-perl,libhtml-tree-perl: allow PERL_USE_UNSAFE_INC dvb-apps: Allow insecure inc paths glog: Upgrade to 0.4.0 mpd: Upgrade to 0.22 series mbedtls: Fix gcc11 stringop-overflow warning v4l-utils: Package systemd fragment for systemd-udevd.service.d mpich: Upgrade to 3.4.1 srt: Backport fix for missing <limits> header gerbera: Update to 1.7.0 nautilus: Drop use of volatile vlc: Fix build with gcc 11 squid: Include <limits> for using std::numeric_limits minifi-cpp: include limits header for numeric_limits definition opencv: Upgrade to 4.5.1 mozjs: Drop using JS_VOLATILE_ARM opengl-es-cts: Disable -Wuninitialized for external/amber grpc: Upgrade to 1.36.1 mongodb: Include <optional> c++ header libyui,libyui-ncurses: Upgrade to 4.0.0 libyui-ncurses: Disable Werror libyui: Adopt to new cmake option to disable Werror libyui-ncurses: Pass -DNCURSES_WIDECHAR in CXXFLAGS gimp: Add missing dependencies gimp: Disable svg icons on arm libcamera: Update to latest abseil-cpp: Ask for C++14 std explicitly opencv: Add packageconfig for building tests opencv: Remove duplicate patch Leon Anavi (30): python3-h5py: Upgrade 2.10.0 -> 3.1.0 python3-transitions: Upgrade 0.8.6 -> 0.8.7 python3-tabulate: Upgrade 0.8.7 -> 0.8.9 python3-pyperclip: Upgrade 1.8.1 -> 1.8.2 python3-elementpath: Upgrade 2.1.3 -> 2.1.4 python3-mpmath: Upgrade 1.1.0 -> 1.2.1 python3-prompt-toolkit: Upgrade 3.0.14 -> 3.0.16 python3-pkgconfig: Upgrade 1.5.1 -> 1.5.2 python3-mypy: Upgrade 0.800 -> 0.812 python3-typeguard: Upgrade 2.11.0 -> 2.11.1 python3-httplib2: Upgrade 0.18.1 -> 0.19.0 python3-autobahn: Upgrade 20.12.3 -> 21.2.1 python3-iso8601: Upgrade 0.1.13 -> 0.1.14 python3-alembic: Upgrade 1.5.4 -> 1.5.5 python3-txaio: Upgrade 20.12.1 -> 21.2.1 python3-watchdog: Upgrade 2.0.0 -> 2.0.2 python3-rsa: Upgrade 4.7 -> 4.7.1 python3-pandas: Upgrade 1.2.1 -> 1.2.2 python3-cffi: Upgrade 1.14.4 -> 1.14.5 python3-pymisp: Upgrade 2.4.137.3 -> 2.4.138 python3-pytest-runner: Upgrade 5.2 -> 5.3.0 python3-markdown: Upgrade 3.3.3 -> 3.3.4 python3-pulsectl: Upgrade 20.5.1 -> 21.2.0 python3-cvxopt: Upgrade 1.2.5 -> 1.2.6 python3-rsa: Upgrade 4.7.1 -> 4.7.2 python3-pyzmq: Upgrade 22.0.2 -> 22.0.3 python3-tqdm: Upgrade 4.57.0 -> 4.58.0 python3-autobahn: Upgrade 21.2.1 -> 21.2.2 python3-aiohttp: Upgrade 3.7.3 -> 3.7.4 python3-semantic-version: Add recipe Matteo Croce (1): recipes-kernel: add libbpf Michael Vetter (1): jasper: upgrade 2.0.24 -> 2.0.25 Mingli Yu (3): crash: add support for lockless ringbuffer gtkmm3: use relative path mcelog: Upgrade to 175 Oleksandr Kravchuk (21): rfkill: update to 1.0 python3-idna: update to 3.1 python3-pika: update to 1.2.0 python3-protobuf: update to 3.14.0 python3-pychromecast: update to 8.1.0 python3-pykickstart: update to 3.32 python3-watchdog: update to 2.0.0 wolfssl: updae to 4.7.0 ncmpc: update to 0.45 rocksdb: update to 6.15.5 stm32flash: update to 0.6 python3-astroid: update to 2.5 python3-configargparse: update to 1.3 python3-cryptography-vectors: update to 3.4.6 python3-periphery: update to 2.3.0 python3-sentry-sdk: update to 0.20.3 python3-soupsieve: update to 2.2 python3-supervisor: update to 4.2.1 python3-tqdm: update 4.57.0 python3-typeguard: update to 2.11.0 python3-xmlschema: update to 1.5.1 Oleksiy Obitotskyy (2): wireshark-src: improve reproducibility smartmontools: Improve reproducibility Patrick Williams (2): boost-url: update to latest catch2: upgrade to 2.13.4 Peter Kjellerstedt (1): librcereal: A couple of improvements Randy MacLeod (2): libssh2: remove the recipe since it moved to oe-core libgit2: remove the recipe since it moved to oe-core Ross Burton (1): python3-intelhex: add recipe for the intelhex package Sean Nyekjaer (3): nodejs: 12.20.1 -> 12.20.2 zstd: split bin into separate package can-utils: split into more packages Ulrich ?lmann (1): v4l-utils: update to 1.20.0 Wang Mingyu (7): stunnel: upgrade 5.57 -> 5.58 iwd: upgrade 1.11 -> 1.12 protobuf: upgrade 3.14.0 -> 3.15.2 redis-plus-plus: upgrade 1.2.1 -> 1.2.2 tesseract-lang: upgrade 4.0.0 -> 4.1.0 gphoto2: upgrade 2.5.26 -> 2.5.27 libgphoto2: upgrade 2.5.26 -> 2.5.27 Yanfei Xu (1): lmbench: Install cache command and fix typos in manual page Yi Fan Yu (4): rsyslog: upgrade 8.2006.0->8.2012.0 tcpdump: update 4.9.3 -> 4.99.0 rsyslog: Add imhttp to packageconfig rsyslog: Update 8.2012.0 -> 8.2102.0 Yi Zhao (1): vsftpd: allow newfstatat and pselect6 syscalls in the seccomp sandbox akuster (1): softhsm: update to 2.6.1 and align zangrc (11): fuse3: upgrade 3.10.1 -> 3.10.2 enca: upgrade 1.9 -> 1.19 gensio: upgrade 2.2.3 -> 2.2.4 lcms: upgrade 2.11 -> 2.12 libburn: upgrade 1.5.2 -> 1.5.4 opensaf: upgrade 5.20.11 -> 5.21.03 openvpn: upgrade 2.5.0 -> 2.5.1 strongswan: upgrade 5.9.1 -> 5.9.2 wireguard-tools: upgrade 1.0.20200827 -> 1.0.20210223 hwdata: upgrade 0.343 -> 0.345 mailcap: upgrade 2.1.49 -> 2.1.52 zhengruoqin (7): libjcat: upgrade 0.1.4 -> 0.1.6 postgresql: upgrade 13.1 -> 13.2 ser2net: upgrade 4.3.0 -> 4.3.3 Fix do_package error when enable multilib. nano: upgrade 5.5 -> 5.6 qpdf: upgrade 10.0.4 -> 10.2.0 sigrok-cli: upgrade 0.7.1 -> 0.7.2 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: Ibbbafaa846b1dcc3c03ac585e7d5075826e4ee37
Diffstat (limited to 'meta-openembedded/meta-multimedia/recipes-multimedia')
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_2.0.0.bb2
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb2
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch32
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb (renamed from meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.6.0.bb)5
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb7
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-uvcvideo-Use-auto-variable-to-avoid-range-loop-warni.patch38
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-StringBuffer-Include-cstddef-for-size_t.patch27
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0002-Include-stdexcept-for-runtime_error.patch38
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb103
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.6.bb96
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb (renamed from meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.38.bb)4
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb65
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.22.bb273
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch43
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb1
15 files changed, 562 insertions, 174 deletions
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_2.0.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_2.0.0.bb
index c5ad1f806..1ad457710 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_2.0.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_2.0.0.bb
@@ -18,3 +18,5 @@ DEPENDS = " yasm-native"
EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=0 \
-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl \
"
+
+EXTRA_OECMAKE_append_arm = " ${@bb.utils.contains("TUNE_FEATURES","neon","-DENABLE_NEON=ON","-DENABLE_NEON=OFF",d)}"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb
index f354ef387..977a9e792 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb
@@ -20,6 +20,8 @@ inherit perlnative
export enable_static="no"
+export PERL_USE_UNSAFE_INC = "1"
+
do_configure() {
sed -i -e s:/usr/include:${STAGING_INCDIR}:g util/av7110_loadkeys/generate-keynames.sh
}
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch
new file mode 100644
index 000000000..f3197f937
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch
@@ -0,0 +1,32 @@
+From 5719ed8ce9ba60beb9c1670b49296b1c66430dc2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 2 Mar 2021 12:57:37 -0800
+Subject: [PATCH] include <optional> header
+
+Fixes build with gcc11
+/src/util/tools.h:165:6: error: 'optional' in na
+mespace 'std' does not name a template type
+| 165 | std::optional<std::vector<std::byte>> readBinaryFile(const fs::path& path);
+| | ^~~~~~~~
+
+Upstream-Status: Submitted [https://github.com/gerbera/gerbera/pull/1273]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/util/tools.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/util/tools.h b/src/util/tools.h
+index 3a4064e9..e5142966 100644
+--- a/src/util/tools.h
++++ b/src/util/tools.h
+@@ -37,6 +37,7 @@
+ #include <sstream>
+ #include <string>
+ #include <unordered_set>
++#include <optional>
+ #include <vector>
+ namespace fs = std::filesystem;
+
+--
+2.30.1
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.6.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb
index 7f2674183..d4242aa06 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.6.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb
@@ -4,9 +4,10 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8"
SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https \
-"
+ file://0001-include-optional-header.patch \
+ "
-SRCREV = "b219e22f09e346dd048f614a01ca2cbc55edd940"
+SRCREV = "7bc33b98994411e1748d3b3fa9a8424c49e236d6"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
index 5505626d3..b05df3210 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
@@ -10,15 +10,16 @@ LIC_FILES_CHKSUM = "\
SRC_URI = " \
git://linuxtv.org/libcamera.git;protocol=git \
+ file://0001-uvcvideo-Use-auto-variable-to-avoid-range-loop-warni.patch \
"
-SRCREV = "1e8c91b65695449c5246d17ba7dc439c8058b781"
+SRCREV = "f490a87fd339fc7443f5d8467ba56a35c750a5f7"
-PV = "202008+git${SRCPV}"
+PV = "202102+git${SRCPV}"
S = "${WORKDIR}/git"
-DEPENDS = "python3-pyyaml-native udev gnutls boost chrpath-native"
+DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls boost chrpath-native"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}"
PACKAGES =+ "${PN}-gst"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-uvcvideo-Use-auto-variable-to-avoid-range-loop-warni.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-uvcvideo-Use-auto-variable-to-avoid-range-loop-warni.patch
new file mode 100644
index 000000000..4ca412c69
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-uvcvideo-Use-auto-variable-to-avoid-range-loop-warni.patch
@@ -0,0 +1,38 @@
+From 767267ef69c001870d41caf9c60dd7fec89b0a13 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 3 Mar 2021 15:11:46 -0800
+Subject: [PATCH] uvcvideo: Use auto variable to avoid range loop warnings
+
+With c++17 loop range bases are defined where copy is obvious since
+iterator returns a copy and not reference, gcc11 will emit a warning
+about this
+
+uvcvideo.cpp:432:33: error: loop variable 'name' of type 'const string&' {aka 'const std::__cxx11::basic_string<cha
+r>&'} binds to a temporary constructed from type 'const char* const' [-Werror=range-loop-construct]
+| 432 | for (const std::string &name : { "idVendor", "idProduct" }) {
+| | ^~~~
+
+Therefore making it explicit is better
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2021-March/017966.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
+index 031f96e2..ef23ece7 100644
+--- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
++++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
+@@ -429,7 +429,7 @@ std::string PipelineHandlerUVC::generateId(const UVCCameraData *data)
+
+ /* Creata a device ID from the USB devices vendor and product ID. */
+ std::string deviceId;
+- for (const std::string &name : { "idVendor", "idProduct" }) {
++ for (const auto name : { "idVendor", "idProduct" }) {
+ std::ifstream file(path + "/../" + name);
+
+ if (!file.is_open())
+--
+2.30.1
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-StringBuffer-Include-cstddef-for-size_t.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-StringBuffer-Include-cstddef-for-size_t.patch
deleted file mode 100644
index 1d869aa83..000000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-StringBuffer-Include-cstddef-for-size_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From c14877071f14b218835f7fb034dea11bd1ba56f5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 25 Dec 2019 09:40:16 -0800
-Subject: [PATCH] StringBuffer: Include cstddef for size_t
-
-Fixes
-a.cpp:3:1: error: 'size_t' does not name a type
- 3 | size_t s;
- | ^~~~~~
-a.cpp:2:1: note: 'size_t' is defined in header '<cstddef>'; did you forget to '#include <cstddef>'?
-
-Upstream-Status: Submitted [https://github.com/MusicPlayerDaemon/MPD/pull/697]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/util/StringBuffer.hxx | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/src/util/StringBuffer.hxx
-+++ b/src/util/StringBuffer.hxx
-@@ -31,6 +31,7 @@
- #define STRING_BUFFER_HPP
-
- #include <array>
-+#include <cstddef>
-
- /**
- * A statically allocated string buffer.
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0002-Include-stdexcept-for-runtime_error.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0002-Include-stdexcept-for-runtime_error.patch
deleted file mode 100644
index 1f1186719..000000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0002-Include-stdexcept-for-runtime_error.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 06f78ced45f6622a2e02cd09e6a2c0c22a98b89e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 25 Dec 2019 09:41:55 -0800
-Subject: [PATCH 2/2] Include <stdexcept> for runtime_error
-
-Fixes
-
-../git/src/LocateUri.cxx:65:14: error: 'runtime_error' is not a member of 'std'
- 65 | throw std::runtime_error("Unsupported URI scheme");
- | ^~~~~~~~~~~~~
-
-Upstream-Status: Inappropriate [ Fixed differently upstream ]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/LocateUri.cxx | 1 +
- src/pcm/PcmConvert.cxx | 1 +
- 2 files changed, 2 insertions(+)
-
---- a/src/LocateUri.cxx
-+++ b/src/LocateUri.cxx
-@@ -17,6 +17,7 @@
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-+#include <stdexcept>
- #include "config.h"
- #include "LocateUri.hxx"
- #include "client/Client.hxx"
---- a/src/pcm/PcmConvert.cxx
-+++ b/src/pcm/PcmConvert.cxx
-@@ -17,6 +17,7 @@
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-+#include <stdexcept>
- #include "config.h"
- #include "PcmConvert.hxx"
- #include "ConfiguredResampler.hxx"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb
deleted file mode 100644
index b214672c6..000000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb
+++ /dev/null
@@ -1,103 +0,0 @@
-SUMMARY = "Music Player Daemon"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-LICENSE_FLAGS = "${@bb.utils.contains_any('PACKAGECONFIG', ['ffmpeg', 'aac'], 'commercial', '', d)}"
-
-HOMEPAGE ="http://www.musicpd.org"
-
-inherit autotools useradd systemd pkgconfig
-
-DEPENDS += " \
- curl \
- sqlite3 \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
- yajl \
- boost \
- icu \
- dbus \
- expat \
-"
-
-SRC_URI = " \
- git://github.com/MusicPlayerDaemon/MPD;branch=v0.20.x \
- file://mpd.conf.in \
- file://0001-StringBuffer-Include-cstddef-for-size_t.patch \
- file://0002-Include-stdexcept-for-runtime_error.patch \
-"
-SRCREV = "9274bc15bc41bbe490fde847f8422468cc20375d"
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
-
-PACKAGECONFIG ??= "aac alsa ao bzip2 daemon ffmpeg fifo flac fluidsynth iso9660 jack libsamplerate libwrap httpd mms mpg123 modplug sndfile upnp openal opus oss recorder vorbis wavpack zlib"
-
-PACKAGECONFIG[aac] = "--enable-aac,--disable-aac,faad2"
-PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
-PACKAGECONFIG[ao] = "--enable-ao,--disable-ao,libao"
-PACKAGECONFIG[audiofile] = "--enable-audiofile,--disable-audiofile,audiofile"
-PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2"
-PACKAGECONFIG[cdioparanoia] = "--enable-cdio-paranoia,--disable-cdio-paranoia,libcdio-paranoia"
-PACKAGECONFIG[daemon] = "--enable-daemon,--disable-daemon"
-PACKAGECONFIG[ffmpeg] = "--enable-ffmpeg,--disable-ffmpeg,ffmpeg"
-PACKAGECONFIG[fifo] = "--enable-fifo,--disable-fifo"
-PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac"
-PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth"
-PACKAGECONFIG[httpd] = "--enable-httpd-output,--disable-httpd-output"
-PACKAGECONFIG[id3tag] = "--enable-id3,--disable-id3,libid3tag"
-PACKAGECONFIG[iso9660] = "--enable-iso9660,--disable-iso9660,libcdio"
-PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
-PACKAGECONFIG[lame] = "--enable-lame-encoder,--disable-lame-encoder,lame"
-PACKAGECONFIG[libsamplerate] = "--enable-lsr,--disable-lsr,libsamplerate0"
-PACKAGECONFIG[libwrap] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
-PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
-PACKAGECONFIG[mms] = "--enable-mms,--disable-mms,libmms"
-PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
-PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123"
-PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
-PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus libogg"
-PACKAGECONFIG[oss] = "--enable-oss,--disable-oss,"
-PACKAGECONFIG[recorder] = "--enable-recorder-output,--disable-recorder-output"
-PACKAGECONFIG[smb] = "--enable-smbclient,--disable-smbclient,samba"
-PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1"
-PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp"
-PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg"
-PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
-PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
-
-do_configure_prepend() {
- sed -i -e 's|libsystemd-daemon|libsystemd|' ${S}/configure.ac
-}
-
-do_install_append() {
- install -o mpd -d \
- ${D}/${localstatedir}/lib/mpd \
- ${D}/${localstatedir}/lib/mpd/playlists
- install -m775 -o mpd -g mpd -d \
- ${D}/${localstatedir}/lib/mpd/music
-
- install -d ${D}/${sysconfdir}
- install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf
- sed -i \
- -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \
- -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \
- -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \
- -e 's|%log_file%|${localstatedir}/log/mpd.log|' \
- -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \
- ${D}/${sysconfdir}/mpd.conf
-
- # we don't need the icon
- rm -rf ${D}${datadir}/icons
-}
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "mpd.socket"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = " \
- --system --no-create-home \
- --home ${localstatedir}/lib/mpd \
- --groups audio \
- --user-group mpd"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.6.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.6.bb
new file mode 100644
index 000000000..e91bb5d97
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.6.bb
@@ -0,0 +1,96 @@
+SUMMARY = "Music Player Daemon"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+LICENSE_FLAGS = "${@bb.utils.contains_any('PACKAGECONFIG', ['ffmpeg', 'aac'], 'commercial', '', d)}"
+
+HOMEPAGE ="http://www.musicpd.org"
+
+inherit meson useradd systemd pkgconfig
+
+DEPENDS += " \
+ curl \
+ sqlite3 \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
+ yajl \
+ boost \
+ icu \
+ dbus \
+ expat \
+"
+
+SRC_URI = " \
+ git://github.com/MusicPlayerDaemon/MPD;branch=v0.22.x \
+ file://mpd.conf.in \
+"
+SRCREV = "938728820b11d4544a071994fe3c63c6ab710e8e"
+S = "${WORKDIR}/git"
+
+EXTRA_OEMESON += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-Dsystemd=enabled -Dsystemd_system_unit_dir=${systemd_system_unitdir} -Dsystemd_user_unit_dir=${systemd_system_unitdir}', '-Dsystemd=disabled', d)}"
+
+PACKAGECONFIG ??= "aac alsa ao bzip2 daemon ffmpeg fifo flac fluidsynth iso9660 jack libsamplerate httpd mms mpg123 modplug sndfile upnp openal opus oss recorder vorbis wavpack zlib"
+
+PACKAGECONFIG[aac] = "-Dfaad=enabled,-Dfaad=disabled,faad2"
+PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib"
+PACKAGECONFIG[ao] = "-Dao=enabled,-Dao=disabled,libao"
+PACKAGECONFIG[audiofile] = "-Daudiofile=enabled,-Daudiofile=disabled,audiofile"
+PACKAGECONFIG[bzip2] = "-Dbzip2=enabled,-Dbzip2=disabled,bzip2"
+PACKAGECONFIG[cdioparanoia] = "-Dcdio_paranoia=enabled,-Dcdio_paranoia=disabled,libcdio-paranoia"
+PACKAGECONFIG[daemon] = "-Ddaemon=true,-Ddaemon=false"
+PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg"
+PACKAGECONFIG[fifo] = "-Dfifo=true,-Dfifo=false"
+PACKAGECONFIG[flac] = "-Dflac=enabled,-Dflac=disabled,flac"
+PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth"
+PACKAGECONFIG[httpd] = "-Dhttpd=true,-Dhttpd=false"
+PACKAGECONFIG[id3tag] = "-Did3tag=enabled,-Did3tag=disabled,libid3tag"
+PACKAGECONFIG[iso9660] = "-Diso9660=enabled,-Diso9660=disabled,libcdio"
+PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack"
+PACKAGECONFIG[lame] = "-Dlame=enabled,-Dlame=disabled,lame"
+PACKAGECONFIG[libsamplerate] = "-Dlibsamplerate=enabled,-Dlibsamplerate=disabled,libsamplerate0"
+PACKAGECONFIG[mad] = "-Dmad=enabled,-Dmad=disabled,libmad"
+PACKAGECONFIG[mms] = "-Dmms=enabled,-Dmms=disabled,libmms"
+PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug"
+PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123"
+PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft"
+PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus libogg"
+PACKAGECONFIG[oss] = "-Doss=enabled,-Doss=disabled,"
+PACKAGECONFIG[recorder] = "-Drecorder=true,-Drecorder=false"
+PACKAGECONFIG[smb] = "-Dsmbclient=enabled,-Dsmbclient=disabled,samba"
+PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
+PACKAGECONFIG[upnp] = "-Dupnp=enabled,-Dupnp=disabled,libupnp"
+PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis libogg"
+PACKAGECONFIG[wavpack] = "-Dwavpack=enabled,-Dwavpack=disabled,wavpack"
+PACKAGECONFIG[zlib] = "-Dzlib=enabled,-Dzlib=disabled,zlib"
+
+do_install_append() {
+ install -o mpd -d \
+ ${D}/${localstatedir}/lib/mpd \
+ ${D}/${localstatedir}/lib/mpd/playlists
+ install -m775 -o mpd -g mpd -d \
+ ${D}/${localstatedir}/lib/mpd/music
+
+ install -d ${D}/${sysconfdir}
+ install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf
+ sed -i \
+ -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \
+ -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \
+ -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \
+ -e 's|%log_file%|${localstatedir}/log/mpd.log|' \
+ -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \
+ ${D}/${sysconfdir}/mpd.conf
+
+ # we don't need the icon
+ rm -rf ${D}${datadir}/icons
+}
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "mpd.socket"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = " \
+ --system --no-create-home \
+ --home ${localstatedir}/lib/mpd \
+ --groups audio \
+ --user-group mpd"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.38.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb
index ebf5d290b..c089b64ed 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.38.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb
@@ -11,6 +11,8 @@ DEPENDS += " \
libmpdclient \
"
+RDEPENDS_${PN} += "python3-core"
+
PACKAGECONFIG ??= "colors locale mouse nls regex help_screen library_screen search_screen song_screen key_screen lyrics_screen outputs_screen"
PACKAGECONFIG[colors] = "-Dcolors=true,-Dcolors=false"
@@ -33,5 +35,5 @@ PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false"
SRC_URI = " \
git://github.com/MusicPlayerDaemon/ncmpc \
"
-SRCREV = "2c71add42152072c5e0490de2870315dfb3b71e1"
+SRCREV = "6780ec072f1d314f44ed77efdc58d03c6fbcc96b"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
new file mode 100644
index 000000000..bcb3015f8
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Multimedia processing server for Linux"
+AUTHOR = "Wim Taymans <wtaymans@redhat.com>"
+HOMEPAGE = "https://pipewire.org"
+SECTION = "multimedia"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \
+ file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+"
+DEPENDS = "alsa-lib dbus udev"
+SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d"
+PV = "0.2.7"
+
+SRC_URI = "git://github.com/PipeWire/pipewire"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd manpages
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ gstreamer \
+"
+
+PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native"
+
+PACKAGES =+ "\
+ ${PN}-spa-plugins \
+ ${PN}-alsa \
+ ${PN}-config \
+ gstreamer1.0-${PN} \
+ lib${PN} \
+ lib${PN}-modules \
+"
+
+RDEPENDS_lib${PN} += "lib${PN}-modules ${PN}-spa-plugins"
+
+FILES_${PN} = "\
+ ${sysconfdir}/pipewire/pipewire.conf \
+ ${bindir}/pipewire* \
+ ${systemd_user_unitdir}/* \
+"
+FILES_lib${PN} = "\
+ ${libdir}/libpipewire-*.so.* \
+"
+FILES_lib${PN}-modules = "\
+ ${libdir}/pipewire-*/* \
+"
+FILES_${PN}-spa-plugins = "\
+ ${bindir}/spa-* \
+ ${libdir}/spa/* \
+"
+FILES_${PN}-alsa = "\
+ ${libdir}/alsa-lib/* \
+ ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \
+"
+FILES_gstreamer1.0-${PN} = "\
+ ${libdir}/gstreamer-1.0/* \
+"
+
+CONFFILES_${PN} = "\
+ ${sysconfdir}/pipewire/pipewire.conf \
+"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.22.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.22.bb
new file mode 100644
index 000000000..b54be7f89
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.22.bb
@@ -0,0 +1,273 @@
+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/"
+BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=e2c0b7d86d04e716a3c4c9ab34260e69 \
+ file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \
+"
+SECTION = "multimedia"
+
+DEPENDS = "dbus"
+
+SRCREV = "22d563720a7f6ba7bdf59950f8c14488d80dfa95"
+SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd manpages gettext useradd
+
+USERADD_PACKAGES = "${PN}"
+
+GROUPADD_PARAM_${PN} = "--system pipewire"
+
+USERADD_PARAM_${PN} = "--system --home / --no-create-home \
+ --comment 'PipeWire multimedia daemon' \
+ --gid pipewire --groups audio,video \
+ pipewire"
+
+# 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.
+# systemd user service files are disabled because per-user
+# PipeWire instances aren't really something that makes
+# much sense in an embedded environment. A system-wide
+# instance does.
+EXTRA_OEMESON += " \
+ -Daudiotestsrc=true \
+ -Devl=false \
+ -Dsystemd-user-service=false \
+ -Dtests=false \
+ -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \
+ -Dvideotestsrc=true \
+ -Dffmpeg=false \
+ -Dvulkan=false \
+ -Dlibcamera=false \
+"
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'alsa systemd', d)} \
+ gstreamer jack v4l2 \
+"
+
+# "jack" and "pipewire-jack" packageconfigs cannot be both enabled,
+# since "jack" imports libjack, and "pipewire-jack" generates
+# 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=true,-Dalsa=false,alsa-lib udev"
+PACKAGECONFIG[bluez] = "-Dbluez5=true,-Dbluez5=false,bluez5 sbc"
+PACKAGECONFIG[docs] = "-Ddocs=true,-Ddocs=false,doxygen"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=true,-Dgstreamer=false,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[jack] = "-Djack=true,-Djack=false,jack,,,pipewire-jack"
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native"
+PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2"
+PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
+PACKAGECONFIG[systemd] = "-Dsystemd=true -Dsystemd-system-service=true ,-Dsystemd=false -Dsystemd-system-service=false,systemd"
+PACKAGECONFIG[v4l2] = "-Dv4l2=true,-Dv4l2=false,udev"
+PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=true,-Dpipewire-alsa=false,alsa-lib"
+PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=true -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=false,jack,,,jack"
+
+PACKAGESPLITFUNCS_prepend = " split_dynamic_packages "
+PACKAGESPLITFUNCS_append = " set_dynamic_metapkg_rdepends "
+
+SPA_SUBDIR = "spa-0.2"
+PW_MODULE_SUBDIR = "pipewire-0.3"
+
+remove_unused_installed_files() {
+ # jack.conf is used by pipewire-jack (not the JACK SPA plugin).
+ # Remove it if pipewire-jack is not built to avoid creating the
+ # pipewire-jack package.
+ if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then
+ rm -f "${D}${sysconfdir}/pipewire/jack.conf"
+ fi
+}
+
+do_install[postfuncs] += "remove_unused_installed_files"
+
+python split_dynamic_packages () {
+ # Create packages for each SPA plugin. These plugins are located
+ # in individual subdirectories, so a recursive search is needed.
+ spa_libdir = d.expand('${libdir}/${SPA_SUBDIR}')
+ do_split_packages(d, spa_libdir, r'^libspa-(.*)\.so$', d.expand('${PN}-spa-plugins-%s'), 'PipeWire SPA plugin for %s', extra_depends='', recursive=True)
+
+ # Create packages for each PipeWire module.
+ pw_module_libdir = d.expand('${libdir}/${PW_MODULE_SUBDIR}')
+ do_split_packages(d, pw_module_libdir, r'^libpipewire-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'PipeWire %s module', extra_depends='', recursive=False)
+}
+
+python set_dynamic_metapkg_rdepends () {
+ import os
+ import oe.utils
+
+ # 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.
+
+ base_pn = d.getVar('PN')
+
+ spa_pn = base_pn + '-spa-plugins'
+ spa_metapkg = spa_pn + '-meta'
+
+ pw_module_pn = base_pn + '-modules'
+ pw_module_metapkg = pw_module_pn + '-meta'
+
+ d.setVar('ALLOW_EMPTY_' + spa_metapkg, "1")
+ d.setVar('FILES_' + spa_metapkg, "")
+
+ d.setVar('ALLOW_EMPTY_' + pw_module_metapkg, "1")
+ d.setVar('FILES_' + pw_module_metapkg, "")
+
+ blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ]
+ spa_metapkg_rdepends = []
+ pw_module_metapkg_rdepends = []
+ pkgdest = d.getVar('PKGDEST')
+
+ for pkg in oe.utils.packages_filter_out_system(d):
+ if pkg in blacklist:
+ continue
+
+ is_spa_pkg = pkg.startswith(spa_pn)
+ is_pw_module_pkg = pkg.startswith(pw_module_pn)
+ if not is_spa_pkg and not is_pw_module_pkg:
+ continue
+
+ if pkg in spa_metapkg_rdepends or pkg in pw_module_metapkg_rdepends:
+ continue
+
+ # See if the package is empty by looking at the contents of its
+ # PKGDEST subdirectory. If this subdirectory is empty, then then
+ # package is empty as well. Empty packages do not get added to
+ # the meta package's RDEPENDS.
+ pkgdir = os.path.join(pkgdest, pkg)
+ if os.path.exists(pkgdir):
+ dir_contents = os.listdir(pkgdir) or []
+ else:
+ dir_contents = []
+ is_empty = len(dir_contents) == 0
+ if not is_empty:
+ if is_spa_pkg:
+ spa_metapkg_rdepends.append(pkg)
+ if is_pw_module_pkg:
+ pw_module_metapkg_rdepends.append(pkg)
+
+ d.setVar('RDEPENDS_' + spa_metapkg, ' '.join(spa_metapkg_rdepends))
+ d.setVar('DESCRIPTION_' + spa_metapkg, spa_pn + ' meta package')
+
+ d.setVar('RDEPENDS_' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends))
+ d.setVar('DESCRIPTION_' + pw_module_metapkg, pw_module_pn + ' meta package')
+}
+
+PACKAGES =+ "\
+ libpipewire \
+ ${PN}-tools \
+ ${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 \
+ gstreamer1.0-pipewire \
+"
+
+PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*"
+
+SYSTEMD_SERVICE_${PN} = "pipewire.service"
+CONFFILES_${PN} += "${sysconfdir}/pipewire/pipewire.conf"
+FILES_${PN} = " \
+ ${sysconfdir}/pipewire/pipewire.conf \
+ ${systemd_user_unitdir}/pipewire.* \
+ ${bindir}/pipewire \
+"
+
+FILES_${PN}-dev += " \
+ ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \
+"
+
+CONFFILES_libpipewire += "${sysconfdir}/pipewire/client.conf"
+FILES_libpipewire = " \
+ ${sysconfdir}/pipewire/client.conf \
+ ${libdir}/libpipewire-*.so.* \
+"
+# Add the bare minimum modules and plugins required to be able
+# to use libpipewire. Without these, it is essentially unusable.
+RDEPENDS_libpipewire += " \
+ ${PN}-modules-client-node \
+ ${PN}-modules-protocol-native \
+ ${PN}-spa-plugins-support \
+"
+
+FILES_${PN}-tools = " \
+ ${bindir}/pw-* \
+"
+
+# This is a shim daemon that is intended to be used as a
+# drop-in PulseAudio replacement, providing a pulseaudio-compatible
+# socket that can be used by applications that use libpulse.
+CONFFILES_${PN}-pulse += "${sysconfdir}/pipewire/pipewire-pulse.conf"
+FILES_${PN}-pulse = " \
+ ${sysconfdir}/pipewire/pipewire-pulse.conf \
+ ${systemd_user_unitdir}/pipewire-pulse.* \
+ ${bindir}/pipewire-pulse \
+"
+RDEPENDS_${PN}-pulse += " \
+ ${PN}-modules-protocol-pulse \
+"
+
+# 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
+CONFFILES_${PN}-jack = "${sysconfdir}/pipewire/jack.conf"
+FILES_${PN}-jack = "\
+ ${sysconfdir}/pipewire/jack.conf \
+ ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \
+"
+
+# Example session manager. Not intended for use in production.
+CONFFILES_${PN}-media-session = "${sysconfdir}/pipewire/media-session.d/*"
+FILES_${PN}-media-session = " \
+ ${bindir}/pipewire-media-session \
+ ${sysconfdir}/pipewire/media-session.d/* \
+"
+RPROVIDES_${PN}-media-session = "virtual/pipewire-sessionmanager"
+
+# Dynamic packages (see set_dynamic_metapkg_rdepends).
+FILES_${PN}-spa-plugins = ""
+RRECOMMENDS_${PN}-spa-plugins += "${PN}-spa-plugins-meta"
+
+FILES_${PN}-spa-tools = " \
+ ${bindir}/spa-* \
+"
+
+# Dynamic packages (see set_dynamic_metapkg_rdepends).
+FILES_${PN}-modules = ""
+RRECOMMENDS_${PN}-modules += "${PN}-modules-meta"
+
+CONFFILES_${PN}-modules-rtkit = "${sysconfdir}/pipewire/client-rt.conf"
+FILES_${PN}-modules-rtkit += " \
+ ${sysconfdir}/pipewire/client-rt.conf \
+ "
+
+FILES_${PN}-alsa-card-profile = " \
+ ${datadir}/alsa-card-profile/* \
+ ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \
+"
+
+FILES_gstreamer1.0-pipewire = " \
+ ${libdir}/gstreamer-1.0/* \
+"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch
new file mode 100644
index 000000000..e1383c826
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch
@@ -0,0 +1,43 @@
+From 1068c7451855c3f9acde9af265b5a790073b1641 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 2 Mar 2021 14:28:27 -0800
+Subject: [PATCH] include <limits> header
+
+Fixes
+SegmentInformation.cpp:397:49: error: '::max' has not been declared; d
+id you mean 'std::max'?
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/demux/adaptive/playlist/SegmentInformation.cpp | 1 +
+ modules/demux/hls/playlist/Parser.cpp | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/modules/demux/adaptive/playlist/SegmentInformation.cpp b/modules/demux/adaptive/playlist/SegmentInformation.cpp
+index 344e155..8eeb054 100644
+--- a/modules/demux/adaptive/playlist/SegmentInformation.cpp
++++ b/modules/demux/adaptive/playlist/SegmentInformation.cpp
+@@ -34,6 +34,7 @@
+
+ #include <algorithm>
+ #include <cassert>
++#include <limits>
+
+ using namespace adaptive::playlist;
+
+diff --git a/modules/demux/hls/playlist/Parser.cpp b/modules/demux/hls/playlist/Parser.cpp
+index 67110e4..7439699 100644
+--- a/modules/demux/hls/playlist/Parser.cpp
++++ b/modules/demux/hls/playlist/Parser.cpp
+@@ -42,6 +42,7 @@
+ #include <map>
+ #include <cctype>
+ #include <algorithm>
++#include <limits>
+
+ using namespace adaptive;
+ using namespace adaptive::playlist;
+--
+2.30.1
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb
index 046c059fb..c0074aabb 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb
@@ -25,6 +25,7 @@ SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz \
file://0003-fix-luaL-checkint.patch \
file://0004-Use-packageconfig-to-detect-mmal-support.patch \
file://0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch \
+ file://0001-include-limits-header.patch \
"
SRC_URI[sha256sum] = "eff458f38a92126094f44f2263c2bf2c7cdef271b48192d0fe7b1726388cf879"