aboutsummaryrefslogtreecommitdiffstats
path: root/meta-multimedia/recipes-multimedia
diff options
context:
space:
mode:
Diffstat (limited to 'meta-multimedia/recipes-multimedia')
-rw-r--r--meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch109
-rw-r--r--meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb22
-rw-r--r--meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb27
-rw-r--r--meta-multimedia/recipes-multimedia/aravis/aravis_0.8.31.bb40
-rw-r--r--meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb66
-rw-r--r--meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch3
-rw-r--r--meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch5
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch5
-rw-r--r--meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb17
-rw-r--r--meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb12
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb8
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb12
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb99
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb103
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch16
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch5
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch4
-rw-r--r--meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb8
-rw-r--r--meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb (renamed from meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb)4
-rw-r--r--meta-multimedia/recipes-multimedia/flite/flite_2.2.bb27
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb10
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc12
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch49
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb39
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb23
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb31
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb30
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch33
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb (renamed from meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb)29
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch20
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb31
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-all.bb (renamed from meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb)2
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb7
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb25
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb5
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb40
-rw-r--r--meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/juce/projucer.inc27
-rw-r--r--meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch21
-rw-r--r--meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb12
-rw-r--r--meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb16
-rw-r--r--meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb16
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera.bb56
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch71
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch59
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch128
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb78
-rwxr-xr-xmeta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb (renamed from meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb)7
-rw-r--r--meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb (renamed from meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb)10
-rw-r--r--meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.3.bb (renamed from meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb)5
-rw-r--r--meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.7.3.bb (renamed from meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb)48
-rw-r--r--meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch70
-rw-r--r--meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb9
-rw-r--r--meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb (renamed from meta-multimedia/recipes-multimedia/libuvc/libuvc.bb)8
-rw-r--r--meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb10
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna.inc8
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Mark-setjmp_buffer-extern-declaration.patch29
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch19
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb (renamed from meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb)2
-rw-r--r--meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch50
-rw-r--r--meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch10
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch26
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb7
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb (renamed from meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.19.bb)6
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb (renamed from meta-multimedia/recipes-multimedia/musicpd/mpc_0.33.bb)8
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch26
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb (renamed from meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb)32
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb (renamed from meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb)14
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb29
-rw-r--r--meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb17
-rw-r--r--meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch31
-rw-r--r--meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch29
-rw-r--r--meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb24
-rw-r--r--meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb23
-rw-r--r--meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.6.bb (renamed from meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb)6
-rw-r--r--meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch103
-rw-r--r--meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb50
-rw-r--r--meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb55
-rw-r--r--meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb15
-rw-r--r--meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb65
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb21
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb26
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.31.bb285
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.5.bb388
-rw-r--r--meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb5
-rw-r--r--meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch4
-rw-r--r--meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb9
-rw-r--r--meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch56
-rw-r--r--meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch161
-rw-r--r--meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb50
-rw-r--r--meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch46
-rw-r--r--meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch69
-rw-r--r--meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb (renamed from meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb)9
-rw-r--r--meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb (renamed from meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb)5
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch8
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch44
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch50
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch10
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch2
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch8
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch40
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch46
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch26
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch67
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb (renamed from meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb)37
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch49
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch26
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.2.bb (renamed from meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb)9
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch95
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch33
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb21
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua5
-rw-r--r--meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.1.bb145
-rw-r--r--meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb11
153 files changed, 3266 insertions, 1453 deletions
diff --git a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb
index 3bed70e1a1..b5c8ddca11 100644
--- a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb
+++ b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "A real-time adjustable equalizer plugin for ALSA"
HOMEPAGE = "https://web.archive.org/web/20161105202833/http://thedigitalmachine.net/alsaequal.html"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
DEPENDS = "alsa-lib"
@@ -36,9 +36,9 @@ do_install() {
install -Dm 0644 libasound_module_pcm_equal.so ${D}${libdir}/alsa-lib/libasound_module_pcm_equal.so
}
-RDEPENDS_${PN} += " \
+RDEPENDS:${PN} += " \
alsa-utils \
caps \
"
-FILES_${PN} = "${libdir}/alsa-lib/"
+FILES:${PN} = "${libdir}/alsa-lib/"
diff --git a/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch b/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch
new file mode 100644
index 0000000000..8a8350ec57
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch
@@ -0,0 +1,109 @@
+From 35c1ed84a158354c37e329bad0e236b156836ac7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 23 May 2023 14:59:26 -0700
+Subject: [PATCH] subpel_variance_neon: Provide prototypes for missing
+ functions
+
+Fixes build with clang-15
+aom_dsp/arm/subpel_variance_neon.c:121:10: error: call to undeclared function 'aom_variance8x8_neon'; ISO C99 and later do not support implicit function dec
+larations [-Wimplicit-function-declaration]
+| return aom_variance8x8_neon(temp2, 8, dst, dst_stride, sse);
+| ^
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ aom_dsp/arm/subpel_variance_neon.c | 76 ++++++++++++++++++++++++++++++
+ 1 file changed, 76 insertions(+)
+
+diff --git a/aom_dsp/arm/subpel_variance_neon.c b/aom_dsp/arm/subpel_variance_neon.c
+index a05886066c4..ea6bada224d 100644
+--- a/aom_dsp/arm/subpel_variance_neon.c
++++ b/aom_dsp/arm/subpel_variance_neon.c
+@@ -20,6 +20,82 @@
+ #include "aom_dsp/variance.h"
+ #include "aom_dsp/arm/mem_neon.h"
+
++extern unsigned int aom_variance8x8_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance16x16_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance16x32_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance16x64_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance32x8_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance32x16_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance32x32_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance32x64_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance32x128_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance64x8_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance64x16_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance64x32_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance64x64_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance64x128_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x8_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x16_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x32_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x64_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x128_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
+ static void var_filter_block2d_bil_w4(const uint8_t *src_ptr, uint8_t *dst_ptr,
+ int src_stride, int pixel_step,
+ int dst_height, int filter_offset) {
+--
+2.40.1
+
diff --git a/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb b/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb
deleted file mode 100644
index f5a42fb860..0000000000
--- a/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Alliance for Open Media - AV1 Codec Library"
-DESCRIPTION = "Alliance for Open Media AV1 codec library"
-
-LICENSE = "BSD-2-Clause & AOM-Patent-License-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6ea91368c1bbdf877159435572b931f5 \
- file://PATENTS;md5=e69ad12202bd20da3c76a5d3648cfa83 \
- "
-
-SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https"
-
-SRCREV = "307ce06ed82d93885ee8ed53e152c9268ac0d98d"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-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-multimedia/recipes-multimedia/aom/aom_3.7.0.bb b/meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb
new file mode 100644
index 0000000000..776dfa8783
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Alliance for Open Media - AV1 Codec Library"
+DESCRIPTION = "Alliance for Open Media AV1 codec library"
+
+LICENSE = "BSD-2-Clause & AOM-Patent-License-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ea91368c1bbdf877159435572b931f5 \
+ file://PATENTS;md5=a111d47497d3bb49e04eef71377eb8ba \
+ "
+SRCREV = "6054fae218eda6e53e1e3b4f7ef0fff4877c7bf1"
+SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https;branch=main \
+ file://0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+DEPENDS = " nasm-native"
+
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=0 \
+ -DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl \
+ "
+CMAKE_VERBOSE = "VERBOSE=1"
+CFLAGS:append:libc-musl = " -D_GNU_SOURCE"
+EXTRA_OECMAKE:append:arm = " -DENABLE_NEON=OFF"
+
+do_generate_toolchain_file:append() {
+ echo "set(AOM_AS_FLAGS --debug-prefix-map ${S}=${TARGET_DBGSRC_DIR})" >> ${WORKDIR}/toolchain.cmake
+}
diff --git a/meta-multimedia/recipes-multimedia/aravis/aravis_0.8.31.bb b/meta-multimedia/recipes-multimedia/aravis/aravis_0.8.31.bb
new file mode 100644
index 0000000000..b5d7772e79
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/aravis/aravis_0.8.31.bb
@@ -0,0 +1,40 @@
+SUMMARY = "A vision library for genicam based cameras"
+DESCRIPTION = "\
+ Aravis is a glib/gobject based library for video acquisition using Genicam cameras.\
+ It currently implements the gigabit ethernet and USB3 protocols used by industrial cameras.\
+ It also provides a basic ethernet camera simulator and a simple video viewer.\
+"
+AUTHOR = "Emmanuel Pacaud"
+HOMEPAGE = "https://github.com/AravisProject/aravis"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS += "\
+ glib-2.0 \
+ glib-2.0-native \
+ libxml2 \
+ zlib \
+"
+
+SRC_URI = "https://github.com/AravisProject/aravis/releases/download/${PV}/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "9c4ebe6273ed3abe466cb6ed8fa5c132bdd7e9a9298ca43fa0212c4311a084da"
+
+EXTRA_OEMESON += "-Dtests=false"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GIDOCGEN_MESON_OPTION = "documentation"
+GIDOCGEN_MESON_ENABLE_FLAG = "enabled"
+GIDOCGEN_MESON_DISABLE_FLAG = "disabled"
+
+inherit meson pkgconfig gi-docgen gobject-introspection
+
+PACKAGECONFIG ?= "gstreamer usb viewer"
+PACKAGECONFIG[gstreamer] = "-Dgst-plugin=enabled, -Dgst-plugin=disabled,gstreamer1.0 gstreamer1.0-plugins-base,"
+PACKAGECONFIG[usb] = "-Dusb=enabled, -Dusb=disabled, libusb1,"
+PACKAGECONFIG[viewer] = "-Dviewer=enabled, -Dviewer=disabled, gtk+3 gstreamer1.0-plugins-base,"
+
+FILES:${PN} += "\
+ ${datadir} \
+ ${libdir}/gstreamer-1.0/libgstaravis.0.8.so \
+"
diff --git a/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb
new file mode 100644
index 0000000000..5007c88fff
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb
@@ -0,0 +1,66 @@
+SUMMARY = "Bluetooth Audio ALSA Backend"
+HOMEPAGE = "https://github.com/Arkq/bluez-alsa"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8449a4f133a93f6254b496d4fb476e83"
+
+SRC_URI = "git://github.com/Arkq/bluez-alsa.git;protocol=https;branch=master"
+
+SRCREV = "dd05a1baa261b94da9ba977b5e3392c8b4dc7a5e"
+PV = "4.0.0+git"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "alsa-lib bluez5 dbus glib-2.0 sbc"
+
+PACKAGECONFIG ??= "aplay cli hcitop ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[a2dpconf] = "--enable-a2dpconf,--disable-a2dpconf"
+PACKAGECONFIG[aac] = "--enable-aac,--disable-aac,fdk-aac"
+PACKAGECONFIG[aplay] = "--enable-aplay,--disable-aplay"
+PACKAGECONFIG[cli] = "--enable-cli,--disable-cli"
+PACKAGECONFIG[coverage] = "--with-coverage,--without-coverage,lcov-native"
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
+PACKAGECONFIG[debug-time] = "--enable-debug-time,--disable-debug-time"
+PACKAGECONFIG[faststream] = "--enable-faststream,--disable-faststream"
+PACKAGECONFIG[hcitop] = "--enable-hcitop,--disable-hcitop,libbsd ncurses"
+PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
+PACKAGECONFIG[mp3lame] = "--enable-mp3lame,--disable-mp3lame,lame"
+PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123,mpg123"
+PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono,ofono"
+PACKAGECONFIG[payloadcheck] = "--enable-payloadcheck,--disable-payloadcheck"
+PACKAGECONFIG[rfcomm] = "--enable-rfcomm,--disable-rfcomm"
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir} \
+ --with-systemdbluealsaargs='${SYSTEMD_BLUEALSA_ARGS}' --with-systemdbluealsaaplayargs='${SYSTEMD_BLUEALSA_APLAY_ARGS}',--disable-systemd,systemd"
+PACKAGECONFIG[test] = "--enable-test,--disable-test,libcheck libsndfile1"
+PACKAGECONFIG[upower] = "--enable-upower,--disable-upower,,upower"
+
+inherit autotools pkgconfig systemd
+
+EXTRA_OECONF = " \
+ --disable-aptx \
+ --disable-lc3plus \
+ --disable-ldac \
+ --disable-manpages \
+"
+
+PACKAGE_BEFORE_PN = "${PN}-aplay"
+RRECOMMENDS:${PN} = "${PN}-aplay"
+
+FILES:${PN}-aplay = "${bindir}/bluealsa-aplay"
+FILES:${PN} += "${libdir}/alsa-lib/*"
+
+SYSTEMD_PACKAGES += "${PN}-aplay"
+SYSTEMD_SERVICE:${PN} = "bluealsa.service"
+SYSTEMD_SERVICE:${PN}-aplay = "bluealsa-aplay.service"
+
+SYSTEMD_AUTO_ENABLE:${PN}-aplay = "disable"
+
+# Choose bluez-alsa arguments to be used in bluealsa systemd service
+# Usually could choose profiles with it: a2dp-source a2dp-sink hfp-hf hfp-ag hsp-hs hsp-ag hfp-ofono
+# Enable bluez-alsa arguments by default:
+SYSTEMD_BLUEALSA_ARGS ?= "-p a2dp-source -p a2dp-sink"
+
+# Choose bluealsa-aplay arguments to be used in bluealsa-aplay systemd service
+# Defaults to be empty:
+SYSTEMD_BLUEALSA_APLAY_ARGS ?= ""
diff --git a/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch b/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch
index 1087b0e79c..528bd153dd 100644
--- a/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch
+++ b/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch
@@ -5,6 +5,7 @@ Subject: [PATCH] basic.h: Use c99 supported stdint types
include stdint.h for getting the definitions for int types
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
basics.h | 17 +++++++++--------
diff --git a/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch b/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch
index 3abd381891..6e34a8a984 100644
--- a/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch
+++ b/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch
@@ -1,7 +1,8 @@
Change the order of linker flags such that -shared is appearig after -pie/-fpie
this helps in building the package when secuiry flags are enabled
--Khem
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: caps-0.9.24/Makefile
===================================================================
diff --git a/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb b/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb
index 46bcf6c6a5..f33d7ad582 100644
--- a/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb
+++ b/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "The CAPS Audio Plugin Suite - LADSPA plugin suite"
HOMEPAGE = "http://quitte.de/dsp/caps.html"
-LICENSE = "GPL-3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "http://quitte.de/dsp/${BPN}_${PV}.tar.bz2 \
@@ -24,4 +24,4 @@ do_install() {
install -Dm 0644 caps.so ${D}${libdir}/ladspa/caps.so
}
-FILES_${PN} = "${libdir}/ladspa/"
+FILES:${PN} = "${libdir}/ladspa/"
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb b/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb
index 27fa0e5855..0b844ee7d3 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb
@@ -4,7 +4,7 @@ error corrections, hence the name paranoia."
HOMEPAGE = "https://www.xiph.org/"
SECTION = "multimedia"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING-LGPL;md5=d370feaa1c9edcdbd29ca27ea3d2304d"
SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-${PV}.src.tgz \
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch
index 682cf6e033..0451a453a3 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch
@@ -8,6 +8,7 @@ Author: Monty <paranoia@xiph.org>
Patch from debian
http://sources.debian.net/src/cdparanoia/3.10.2%2Bdebian-11/debian/patches/04-endian.patch
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
interface/interface.c | 2 +-
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch
index 7699017f77..b364a3b2a7 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch
@@ -5,6 +5,7 @@ Subject: [PATCH] utils: Use c99 compiler independent types
Make it portable across different platforms
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
utils.h | 13 +++++++------
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch
index 024479ca7d..ea30559384 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch
@@ -5,6 +5,7 @@ Subject: [PATCH 2/2] Fix printf format errors
error: format not a string literal and no format arguments
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
main.c | 4 ++--
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch
index 9b268b7ed6..2738ba70e8 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch
@@ -1,3 +1,8 @@
+Fix build on aarch64
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
Index: cdparanoia-III-10.2/configure.in
===================================================================
--- cdparanoia-III-10.2.orig/configure.in
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch
index 06ee82099d..96c5dda31c 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch
@@ -1,3 +1,8 @@
+Fix build out of tree builds
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
Index: cdparanoia-III-10.2/Makefile.in
===================================================================
--- cdparanoia-III-10.2.orig/Makefile.in
diff --git a/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb b/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb
new file mode 100644
index 0000000000..08607acd85
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "dav1d AV1 decoder"
+DESCRIPTION = "Targeted to be small, portable and fast."
+HOMEPAGE = "https://code.videolan.org/videolan/dav1d"
+SECTION = "multimedia"
+LICENSE = "BSD-2-Clause"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=c8055cfe7548dfdaa3a6dc45d8793669"
+
+SRC_URI = "git://code.videolan.org/videolan/dav1d.git;protocol=https;branch=master"
+SRCREV = "872e470ebf3e65b0b956f3a70329e885a2df1c2a"
+
+S = "${WORKDIR}/git"
+
+DEPENDS:append:x86 = " nasm-native"
+DEPENDS:append:x86-64 = " nasm-native"
+
+inherit meson pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb b/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb
index 1a51abc360..ddd4c26efe 100644
--- a/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb
+++ b/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb
@@ -1,10 +1,10 @@
SUMMARY = "DTS Coherent Acoustics decoder with support for HD extensions"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c"
SRCREV = "b93deed1a231dd6dd7e39b9fe7d2abe05aa00158"
-SRC_URI = "git://github.com/foo86/dcadec.git;protocol=https \
+SRC_URI = "git://github.com/foo86/dcadec.git;protocol=https;branch=master \
file://0001-define-BASELIB-make-variable.patch \
"
diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb
index f23bc6ca81..bed5af9bf3 100644
--- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb
+++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb
@@ -1,18 +1,20 @@
SUMMARY = "D-Bus connector for dLeyna libraries"
HOMEPAGE = "https://01.org/dleyna/"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://src/connector-dbus.c;endline=21;md5=0a1695cef53beefc36651de439f643b5"
DEPENDS = "glib-2.0 dbus dleyna-core"
-SRC_URI = "git://github.com/01org/${BPN}.git"
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
SRCREV = "de913c35e5c936e2d40ddbd276ee902cd802bd3a"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
-FILES_${PN} += "${libdir}/dleyna-1.0/connectors/*.so"
-FILES_${PN}-dev += "${libdir}/dleyna-1.0/connectors/*.la"
-FILES_${PN}-dbg += "${libdir}/dleyna-1.0/connectors/.debug/*.so"
+FILES:${PN} += "${libdir}/dleyna-1.0/connectors/*.so"
+FILES:${PN}-dev += "${libdir}/dleyna-1.0/connectors/*.la"
+FILES:${PN}-dbg += "${libdir}/dleyna-1.0/connectors/.debug/*.so"
+
+SKIP_RECIPE[dleyna-connector-dbus] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2"
diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb
index 8939cd36e2..8aaab7893e 100644
--- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb
+++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb
@@ -5,16 +5,18 @@ e.g., dleyna-server. In brief, it provides APIs for logging, error, settings \
and task management and an IPC asbstraction API."
HOMEPAGE = "https://01.org/dleyna/"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://libdleyna/core/core.c;endline=21;md5=68602998351825b0844aae34c684c54e"
DEPENDS = "glib-2.0 gupnp"
-PV .= "+git${SRCPV}"
+PV .= "+git"
-SRC_URI = "git://github.com/01org/${BPN}.git"
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
SRCREV = "1c6853f5bc697dc0a8774fd70dbc915c4dbe7c5b"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
+
+SKIP_RECIPE[dleyna-core] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2"
diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb
index 642f21bd53..a385a50de7 100644
--- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb
+++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb
@@ -4,14 +4,14 @@ that allow clients to discover and manipulate Digital Media Renderers. \
An implementation of such a service for linux is also included."
HOMEPAGE = "https://01.org/dleyna/"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://libdleyna/renderer/server.c;endline=21;md5=f51acd4757fb6a779a87122c43cf1346"
DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 dleyna-core"
-RDEPENDS_${PN} = "dleyna-connector-dbus"
+RDEPENDS:${PN} = "dleyna-connector-dbus"
-SRC_URI = "git://github.com/01org/${BPN}.git \
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https \
file://0001-add-gupnp-1.2-API-support.patch \
"
SRCREV = "50fd1ec9d51328e7dea98874129dc8d6fe3ea1dd"
@@ -21,5 +21,7 @@ inherit autotools pkgconfig
CFLAGS += " -I${S}"
-FILES_${PN} += "${datadir}/dbus-1"
-FILES_${PN}-dev += "${libdir}/${PN}/*.so"
+FILES:${PN} += "${datadir}/dbus-1"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.so"
+
+SKIP_RECIPE[dleyna-renderer] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2"
diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb
index e31b7aea2a..b0a347f252 100644
--- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb
+++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb
@@ -4,19 +4,21 @@ allow clients to discover, browse and manipulate Digital Media Servers. \
An implementation of such a service for linux is also included."
HOMEPAGE = "https://01.org/dleyna/"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://libdleyna/server/server.c;endline=22;md5=437455d8aeff69ebd0996a76c67397bb"
DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 libxml2 dleyna-core"
-RDEPENDS_${PN} = "dleyna-connector-dbus"
+RDEPENDS:${PN} = "dleyna-connector-dbus"
-PV .= "+git${SRCPV}"
-SRC_URI = "git://github.com/01org/${BPN}.git"
+PV .= "+git"
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
SRCREV = "eb895ae82715e9889a948ffa810c0f828b4f4c76"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
-FILES_${PN} += "${datadir}/dbus-1"
-FILES_${PN}-dev += "${libdir}/${PN}/*.so"
+FILES:${PN} += "${datadir}/dbus-1"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.so"
+
+SKIP_RECIPE[dleyna-server] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2"
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb b/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb
new file mode 100644
index 0000000000..542ad3487b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb
@@ -0,0 +1,99 @@
+SUMMARY = "Linux DVB API applications and utilities"
+HOMEPAGE = "http://www.linuxtv.org"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "https://www.linuxtv.org/hg/dvb-apps/archive/3d43b280298c.tar.bz2;downloadfilename=${BPN}-3d43b280298c.tar.bz2 \
+ file://dvb-scan-table \
+ file://0001-Fix-generate-keynames.patch \
+ file://0003-handle-static-shared-only-build.patch \
+ file://0004-Makefile-remove-test.patch \
+ file://0005-libucsi-optimization-removal.patch \
+ file://0006-CA_SET_PID.patch \
+ file://0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch \
+ "
+SRC_URI[sha256sum] = "f39e2f0ebed7e32bce83522062ad4d414f67fccd5df1b647618524497e15e057"
+S = "${WORKDIR}/${BPN}-3d43b280298c"
+
+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
+}
+do_install() {
+ make DESTDIR=${D} install
+ install -d ${D}/${bindir}
+ install -d ${D}/${docdir}/dvb-apps
+ install -d ${D}/${docdir}/dvb-apps/scan
+ install -d ${D}/${docdir}/dvb-apps/szap
+ chmod a+rx ${D}/${libdir}/*.so*
+ cp -R --no-dereference --preserve=mode,links ${S}/util/szap/channels-conf* ${D}/${docdir}/dvb-apps/szap/
+ cp -R --no-dereference --preserve=mode,links ${S}/util/szap/README ${D}/${docdir}/dvb-apps/szap/
+ cp -R --no-dereference --preserve=mode,links ${WORKDIR}/dvb-scan-table/* ${D}/usr/share/dvb
+}
+
+PACKAGES =+ "dvb-evtest dvb-evtest-dbg \
+ dvbapp-tests dvbapp-tests-dbg \
+ dvbdate dvbdate-dbg \
+ dvbtraffic dvbtraffic-dbg \
+ dvbnet dvbnet-dbg \
+ dvb-scan dvb-scan-dbg dvb-scan-data \
+ dvb-azap dvb-azap-dbg \
+ dvb-czap dvb-czap-dbg \
+ dvb-szap dvb-szap-dbg \
+ dvb-tzap dvb-tzap-dbg \
+ dvb-femon dvb-femon-dbg \
+ dvb-zap-data"
+PACKAGES =+ "libdvbapi libdvbcfg libdvben50221 \
+ libesg libucsi libdvbsec"
+
+RDEPENDS:dvbdate =+ "libdvbapi libucsi"
+RDEPENDS:dvbtraffic =+ "libdvbapi"
+RDEPENDS:dvb-scan =+ "libdvbapi libdvbcfg libdvbsec"
+RDEPENDS:dvb-apps =+ "libdvbapi libdvbcfg libdvbsec libdvben50221 libucsi"
+RDEPENDS:dvb-femon =+ "libdvbapi"
+RDEPENDS:dvbnet =+ "libdvbapi"
+
+RCONFLICTS:dvb-evtest = "evtest"
+
+FILES:${PN} = "${bindir} ${datadir}/dvb"
+FILES:${PN}-doc = ""
+FILES:${PN}-dev = "${includedir}"
+FILES:dvb-evtest = "${bindir}/evtest"
+FILES:dvb-evtest-dbg = "${bindir}/.debug/evtest"
+FILES:dvbapp-tests = "${bindir}/*test* "
+FILES:dvbapp-tests-dbg = "${bindir}/.debug/*test*"
+FILES:dvbdate = "${bindir}/dvbdate"
+FILES:dvbdate-dbg = "${bindir}/.debug/dvbdate"
+FILES:dvbtraffic = "${bindir}/dvbtraffic"
+FILES:dvbtraffic-dbg = "${bindir}/.debug/dvbtraffic"
+FILES:dvbnet = "${bindir}/dvbnet"
+FILES:dvbnet-dbg = "${bindir}/.debug/dvbnet"
+FILES:dvb-scan = "${bindir}/*scan "
+FILES:dvb-scan-dbg = "${bindir}/.debug/*scan"
+FILES:dvb-scan-data = "${docdir}/dvb-apps/scan"
+FILES:dvb-azap = "${bindir}/azap"
+FILES:dvb-azap-dbg = "${bindir}/.debug/azap"
+FILES:dvb-czap = "${bindir}/czap"
+FILES:dvb-czap-dbg = "${bindir}/.debug/czap"
+FILES:dvb-szap = "${bindir}/szap"
+FILES:dvb-szap-dbg = "${bindir}/.debug/szap"
+FILES:dvb-tzap = "${bindir}/tzap"
+FILES:dvb-tzap-dbg = "${bindir}/.debug/tzap"
+FILES:dvb-femon = "${bindir}/femon"
+FILES:dvb-femon-dbg = "${bindir}/.debug/femon"
+FILES:dvb-zap-data = "${docdir}/dvb-apps/szap"
+
+python populate_packages:prepend () {
+ dvb_libdir = bb.data.expand('${libdir}', d)
+ do_split_packages(d, dvb_libdir, r'^lib(.*)\.so$', 'lib%s', 'DVB %s package', extra_depends='', allow_links=True)
+ do_split_packages(d, dvb_libdir, r'^lib(.*)\.la$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev')
+ do_split_packages(d, dvb_libdir, r'^lib(.*)\.a$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev')
+ do_split_packages(d, dvb_libdir, r'^lib(.*)\.so\.*', 'lib%s', 'DVB %s library', extra_depends='', allow_links=True)
+}
+
+TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb b/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb
deleted file mode 100644
index 977a9e7922..0000000000
--- a/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb
+++ /dev/null
@@ -1,103 +0,0 @@
-SUMMARY = "Linux DVB API applications and utilities"
-HOMEPAGE = "http://www.linuxtv.org"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRCREV = "3d43b280298c39a67d1d889e01e173f52c12da35"
-
-SRC_URI = "hg://linuxtv.org/hg;module=dvb-apps;protocol=http \
- file://dvb-scan-table \
- file://0001-Fix-generate-keynames.patch \
- file://0003-handle-static-shared-only-build.patch \
- file://0004-Makefile-remove-test.patch \
- file://0005-libucsi-optimization-removal.patch \
- file://0006-CA_SET_PID.patch \
- file://0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch \
- "
-
-S = "${WORKDIR}/${BPN}"
-
-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
-}
-do_install() {
- make DESTDIR=${D} install
- install -d ${D}/${bindir}
- install -d ${D}/${docdir}/dvb-apps
- install -d ${D}/${docdir}/dvb-apps/scan
- install -d ${D}/${docdir}/dvb-apps/szap
- chmod a+rx ${D}/${libdir}/*.so*
- cp -R --no-dereference --preserve=mode,links ${S}/util/szap/channels-conf* ${D}/${docdir}/dvb-apps/szap/
- cp -R --no-dereference --preserve=mode,links ${S}/util/szap/README ${D}/${docdir}/dvb-apps/szap/
- cp -R --no-dereference --preserve=mode,links ${WORKDIR}/dvb-scan-table/* ${D}/usr/share/dvb
-}
-
-PACKAGES =+ "dvb-evtest dvb-evtest-dbg \
- dvbapp-tests dvbapp-tests-dbg \
- dvbdate dvbdate-dbg \
- dvbtraffic dvbtraffic-dbg \
- dvbnet dvbnet-dbg \
- dvb-scan dvb-scan-dbg dvb-scan-data \
- dvb-azap dvb-azap-dbg \
- dvb-czap dvb-czap-dbg \
- dvb-szap dvb-szap-dbg \
- dvb-tzap dvb-tzap-dbg \
- dvb-femon dvb-femon-dbg \
- dvb-zap-data"
-PACKAGES =+ "libdvbapi libdvbcfg libdvben50221 \
- libesg libucsi libdvbsec"
-
-RDEPENDS_dvbdate =+ "libdvbapi libucsi"
-RDEPENDS_dvbtraffic =+ "libdvbapi"
-RDEPENDS_dvb-scan =+ "libdvbapi libdvbcfg libdvbsec"
-RDEPENDS_dvb-apps =+ "libdvbapi libdvbcfg libdvbsec libdvben50221 libucsi"
-RDEPENDS_dvb-femon =+ "libdvbapi"
-RDEPENDS_dvbnet =+ "libdvbapi"
-
-RCONFLICTS_dvb-evtest = "evtest"
-
-FILES_${PN} = "${bindir} ${datadir}/dvb"
-FILES_${PN}-doc = ""
-FILES_${PN}-dev = "${includedir}"
-FILES_dvb-evtest = "${bindir}/evtest"
-FILES_dvb-evtest-dbg = "${bindir}/.debug/evtest"
-FILES_dvbapp-tests = "${bindir}/*test* "
-FILES_dvbapp-tests-dbg = "${bindir}/.debug/*test*"
-FILES_dvbdate = "${bindir}/dvbdate"
-FILES_dvbdate-dbg = "${bindir}/.debug/dvbdate"
-FILES_dvbtraffic = "${bindir}/dvbtraffic"
-FILES_dvbtraffic-dbg = "${bindir}/.debug/dvbtraffic"
-FILES_dvbnet = "${bindir}/dvbnet"
-FILES_dvbnet-dbg = "${bindir}/.debug/dvbnet"
-FILES_dvb-scan = "${bindir}/*scan "
-FILES_dvb-scan-dbg = "${bindir}/.debug/*scan"
-FILES_dvb-scan-data = "${docdir}/dvb-apps/scan"
-FILES_dvb-azap = "${bindir}/azap"
-FILES_dvb-azap-dbg = "${bindir}/.debug/azap"
-FILES_dvb-czap = "${bindir}/czap"
-FILES_dvb-czap-dbg = "${bindir}/.debug/czap"
-FILES_dvb-szap = "${bindir}/szap"
-FILES_dvb-szap-dbg = "${bindir}/.debug/szap"
-FILES_dvb-tzap = "${bindir}/tzap"
-FILES_dvb-tzap-dbg = "${bindir}/.debug/tzap"
-FILES_dvb-femon = "${bindir}/femon"
-FILES_dvb-femon-dbg = "${bindir}/.debug/femon"
-FILES_dvb-zap-data = "${docdir}/dvb-apps/szap"
-
-python populate_packages_prepend () {
- dvb_libdir = bb.data.expand('${libdir}', d)
- do_split_packages(d, dvb_libdir, '^lib(.*)\.so$', 'lib%s', 'DVB %s package', extra_depends='', allow_links=True)
- do_split_packages(d, dvb_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, dvb_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, dvb_libdir, '^lib(.*)\.so\.*', 'lib%s', 'DVB %s library', extra_depends='', allow_links=True)
-}
-
-INSANE_SKIP_${PN} = "ldflags"
-INSANE_SKIP_${PN}-dev = "ldflags"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
index 498607d97d..f3d14354b4 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
@@ -5,6 +5,7 @@ symbols. However, when cross-compiling, the include path points
somewhere else. Allow the user to pass CROSS_ROOT to point to the
root of the cross-compilation environment.
+Upstream-Status: Inappropriate [Cross-compile specific]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
diff -rup dvb-apps-83c746462ccb.orig/util/av7110_loadkeys/generate-keynames.sh dvb-apps-83c746462ccb/util/av7110_loadkeys/generate-keynames.sh
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
index 9035b56f4a..8ff1e029b0 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
@@ -6,27 +6,23 @@ Subject: [PATCH] dvbdate: Remove Obsoleted stime API calls
stime() has been deprecated in glibc 2.31+ its recommended to
replaced with clock_settime()
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
util/dvbdate/dvbdate.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
-diff --git a/util/dvbdate/dvbdate.c b/util/dvbdate/dvbdate.c
-index f0df437..492ed79 100644
--- a/util/dvbdate/dvbdate.c
+++ b/util/dvbdate/dvbdate.c
-@@ -309,7 +309,10 @@ int atsc_scan_date(time_t *rx_time, unsigned int to)
+@@ -309,7 +309,10 @@ int atsc_scan_date(time_t *rx_time, unsi
*/
int set_time(time_t * new_time)
{
- if (stime(new_time)) {
-+ struct timespec ts;
-+ ts.tv_sec = &new_time;
-+ ts.tv_nsec = 0;
-+ if (clock_settime(CLOCK_REALTIME, &ts)) {
++ struct timespec s = {0};
++ s.tv_sec = *new_time;
++
++ if (clock_settime(CLOCK_REALTIME, &s)) {
perror("Unable to set time");
return -1;
}
---
-2.24.1
-
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
index 4dc7c68ac2..ce51084c97 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
@@ -6,6 +6,7 @@ Subject: [PATCH] Make.rules: Handle static/shared only build
Do not build .a library when enable_static is set to "no"
Do not build .so library when enable_shared is set to "no"
+Upstream-Status: Pending
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
Make.rules | 10 ++++++++--
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
index 45bfad914c..6ec5b08ccc 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
@@ -5,6 +5,7 @@ Subject: [PATCH] Makefile: remove test
Tests needs static libraries, remove them for shared only build.
+Upstream-Status: Inappropriate [Cross-compile specific]
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
Makefile | 1 -
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
index f12d35bc7e..dbb848c72c 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
@@ -1,3 +1,8 @@
+Use -O1 with gcc > 6
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
diff -r 3d43b280298c lib/libucsi/endianops.h
--- a/lib/libucsi/endianops.h Fri Mar 21 20:26:36 2014 +0100
+++ b/lib/libucsi/endianops.h Fri Jan 19 06:56:15 2018 +0000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
index e100c659e7..59abd32a01 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
@@ -1,3 +1,7 @@
+Fix build with newer than 4.14 kernels
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: dvb-apps/util/dst-utils/dst_test.c
===================================================================
--- dvb-apps.orig/util/dst-utils/dst_test.c
diff --git a/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb b/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb
index 278bda9ff5..1663548b22 100644
--- a/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb
+++ b/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "Freeware Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)"
SECTION = "libs"
-LICENSE = "LGPLv2+"
+LICENSE = "LGPL-2.0-or-later"
HOMEPAGE = "http://www.audiocoding.com/faac.html"
LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
file://libfaac/coder.h;beginline=5;endline=17;md5=fa1fd6a5fa8cdc877d63a12530d273e0"
@@ -18,9 +18,9 @@ SRC_URI[sha256sum] = "d45f209d837c49dae6deebcdd87b8cc3b04ea290880358faecf5e77377
PACKAGES =+ "lib${BPN} lib${BPN}-dev"
-FILES_${PN} = " ${bindir}/faac "
-FILES_lib${BPN} = " ${libdir}/*.so.*"
-FILES_lib${BPN}-dev = " \
+FILES:${PN} = " ${bindir}/faac "
+FILES:lib${BPN} = " ${libdir}/*.so.*"
+FILES:lib${BPN}-dev = " \
${includedir} \
${libdir}/*.so \
${libdir}/*.la \
diff --git a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb
index d7911681c7..55475b40f1 100644
--- a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb
+++ b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb
@@ -11,8 +11,8 @@ LICENSE = "Fraunhofer_FDK_AAC_Codec_Library_for_Android"
LICENSE_FLAGS = "commercial"
LIC_FILES_CHKSUM = "file://NOTICE;md5=5985e1e12f4afa710d64ed7bfd291875"
-SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=git;branch=master"
-SRCREV = "d387d3b6ed79ff9a82c60440bdd86e6e5e324bec"
+SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=https;branch=master"
+SRCREV = "801f67f671929311e0c9952c5f92d6e147c7b003"
S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb b/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb
new file mode 100644
index 0000000000..0a7680a8c4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Flite: a small run-time speech synthesis engine"
+HOMEPAGE = "http://cmuflite.org"
+SECTION = "libs/multimedia"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b3b732d1349633a53e69356607fd2d6c"
+
+inherit autotools-brokensep
+
+DEPENDS += "alsa-lib chrpath-replacement-native"
+
+SRC_URI = "git://github.com/festvox/flite.git;protocol=https;branch=master"
+
+SRCREV = "e9e2e37c329dbe98bfeb27a1828ef9a71fa84f88"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "--enable-shared"
+
+do_configure:append() {
+ sed -i '/$(INSTALL) -m 755 $(BINDIR)\/flite_time $(DESTDIR)$(INSTALLBINDIR)/d' ${S}/main/Makefile
+}
+
+do_install:append() {
+ chown -R root:root ${D}${libdir}/*
+}
+# | make[1]: *** No rule to make target 'flite_voice_list.c', needed by 'all'. Stop.
+PARALLEL_MAKE = ""
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb
deleted file mode 100644
index a95c4c42a8..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require ${BPN}.inc
-
-inherit native
-
-OECMAKE_SOURCEPATH = "${S}/src/gentables"
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 755 ${B}/make_tables.exe ${D}/${bindir}/
-}
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
deleted file mode 100644
index 51101e8e6d..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Fluidsynth is a software synthesizer"
-HOMEPAGE = "http://www.fluidsynth.org/"
-SECTION = "libs/multimedia"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
-
-SRC_URI = "git://github.com/FluidSynth/fluidsynth.git"
-SRCREV = "fc21d284dc7fcacdbc456f30228110a55e6e79f6"
-S = "${WORKDIR}/git"
-PV = "2.2.2"
-
-inherit cmake pkgconfig lib_package
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch
deleted file mode 100644
index cc73bdb1d9..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 81ea820b155e887b13ea5986c3407cf93b2737f6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Wed, 2 Jan 2019 18:42:46 +0100
-Subject: [PATCH] Do not build gentables helper - we have to use native variant
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- src/CMakeLists.txt | 23 +----------------------
- 1 file changed, 1 insertion(+), 22 deletions(-)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 356bb734..58ff7635 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -399,25 +399,4 @@ else ( MACOSX_FRAMEWORK )
- install ( FILES ${public_main_HEADER} DESTINATION ${INCLUDE_INSTALL_DIR} )
- endif ( MACOSX_FRAMEWORK )
-
--# ******* Auto Generated Lookup Tables ******
--
--include(ExternalProject)
--
--set (GENTAB_SDIR ${CMAKE_CURRENT_SOURCE_DIR}/gentables)
--set (GENTAB_BDIR ${CMAKE_CURRENT_BINARY_DIR}/gentables)
--
--# Use external project to ensure that cmake uses the host compiler when building make_tables.exe
--# To fix cross-compiling fluidsynth from Win32 to ARM (using vcpkg), we need to pass the current generator
--# on to the external project, otherwise (for some unknown reason) the target compiler will be used rather
--# than the host compiler.
--ExternalProject_Add(gentables
-- DOWNLOAD_COMMAND ""
-- SOURCE_DIR ${GENTAB_SDIR}
-- BINARY_DIR ${GENTAB_BDIR}
-- CONFIGURE_COMMAND
-- "${CMAKE_COMMAND}" -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE} -G "${CMAKE_GENERATOR}" -B "${GENTAB_BDIR}" "${GENTAB_SDIR}"
-- BUILD_COMMAND
-- "${CMAKE_COMMAND}" --build "${GENTAB_BDIR}"
-- INSTALL_COMMAND ${GENTAB_BDIR}/make_tables.exe "${CMAKE_BINARY_DIR}/"
--)
--add_dependencies(libfluidsynth-OBJ gentables)
-+
---
-2.21.1
-
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb
new file mode 100644
index 0000000000..dc05832e80
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Fluidsynth is a software synthesizer"
+HOMEPAGE = "http://www.fluidsynth.org/"
+SECTION = "libs/multimedia"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
+
+DEPENDS = "glib-2.0"
+
+SRC_URI = " \
+ git://github.com/FluidSynth/fluidsynth.git;branch=master;protocol=https \
+ file://0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch \
+ file://0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \
+"
+SRCREV = "5ecdc4568e45123216c6888892caad07918ef127"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig lib_package
+
+EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+
+do_install:append() {
+ sed -i -e 's|${STAGING_LIBDIR}|${libdir}|g' ${D}${libdir}/pkgconfig/fluidsynth.pc
+ sed -i -e 's|${STAGING_LIBDIR}|${libdir}|g' ${D}${libdir}/cmake/fluidsynth/FluidSynthTargets.cmake
+}
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio pipewire systemd alsa dbus', d)}"
+PACKAGECONFIG[alsa] = "-Denable-alsa=ON,-Denable-alsa=OFF,alsa-lib"
+PACKAGECONFIG[dbus] = "-Denable-dbus=ON,-Denable-dbus=OFF,dbus"
+PACKAGECONFIG[jack] = "-Denable-jack=ON,-Denable-jack=OFF,jack"
+PACKAGECONFIG[oss] = "-Denable-oss=ON,-Denable-oss=OFF"
+PACKAGECONFIG[pipewire] = "-Denable-pipewire=ON,-Denable-pipewire=OFF,pipewire"
+PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19"
+PACKAGECONFIG[profiling] = "-Denable-profiling=ON,-Denable-profiling=OFF"
+PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,-Denable-pulseaudio=OFF,pulseaudio"
+PACKAGECONFIG[readline] = "-Denable-readline=ON,-Denable-readline=OFF,readline"
+PACKAGECONFIG[sdl] = "-Denable-sdl2=ON,-Denable-sdl2=OFF,libsdl2"
+PACKAGECONFIG[sndfile] = "-Denable-libsndfile=ON,-Denable-libsndfile=OFF,libsndfile1"
+PACKAGECONFIG[systemd] = "-Denable-systemd=ON,-Denable-systemd=OFF,systemd"
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb
deleted file mode 100644
index ba1ef6b1fc..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require ${BPN}.inc
-
-DEPENDS = "${BPN}-native alsa-lib ncurses glib-2.0"
-
-SRC_URI += " \
- file://0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch \
- file://0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch \
- file://0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \
-"
-
-EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
-
-do_configure_append() {
- make_tables.exe ${B}/
-}
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
-PACKAGECONFIG[sndfile] = "-Denable-libsndfile=ON,-Denable-libsndfile=OFF,libsndfile1"
-PACKAGECONFIG[jack] = "-Denable-jack=ON,-Denable-jack=OFF,jack"
-PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,-Denable-pulseaudio=OFF,pulseaudio"
-PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19"
-PACKAGECONFIG[profiling] = "-Denable-profiling=ON,-Denable-profiling=OFF"
-PACKAGECONFIG[readline] = "-Denable-readline=ON,-Denable-readline=OFF,readline"
diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch b/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch
deleted file mode 100644
index f3197f937b..0000000000
--- a/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-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-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb b/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb
deleted file mode 100644
index d4242aa062..0000000000
--- a/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-Description = "Gerbera - An UPnP media server"
-
-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 = "7bc33b98994411e1748d3b3fa9a8424c49e236d6"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "expat fmt spdlog pugixml libebml libmatroska zlib curl libupnp e2fsprogs sqlite3 libnsl2"
-
-SYSTEMD_SERVICE_${PN} = "gerbera.service"
-
-inherit cmake systemd
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=TRUE,-DWITH_SYSTEMD=FALSE,systemd"
-PACKAGECONFIG[taglib] = "-DWITH_TAGLIB=TRUE,-DWITH_TAGLIB=FALSE,taglib"
-EXTRA_OECMAKE = "-DWITH_JS=FALSE -DWITH_MAGIC=FALSE -DWITH_EXIF=FALSE -DLIBUUID_INCLUDE_DIRS=${STAGING_INCDIR} -DLIBUUID_LIBRARIES=-luuid"
-
-do_install_append() {
- install -d ${D}/root/.config/
-}
-
-FILES_${PN} += "/root/.config/"
-
-SECURITY_CFLAGS_riscv64 = "${SECURITY_NOPIE_CFLAGS}"
diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb b/meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb
new file mode 100644
index 0000000000..fea14fd840
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb
@@ -0,0 +1,30 @@
+Description = "Gerbera is a UPnP media server which allows you to stream your digital media through your home network and consume it on a variety of UPnP compatible devices."
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8"
+
+SRC_URI = "git://github.com/gerbera/gerbera.git;protocol=https;branch=master"
+SRCREV = "2f26e656b16fb86132f27d1f8d47c6055041430d"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "pugixml sqlite3 zlib fmt spdlog util-linux-libuuid libupnp libnsl2"
+
+SYSTEMD_SERVICE:${PN} = "gerbera.service"
+
+inherit cmake pkgconfig systemd
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} curl taglib inotify exif matroska magic js"
+PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=TRUE,-DWITH_SYSTEMD=FALSE,systemd"
+PACKAGECONFIG[taglib] = "-DWITH_TAGLIB=TRUE,-DWITH_TAGLIB=FALSE,taglib"
+PACKAGECONFIG[curl] = "-DWITH_CURL=TRUE,-DWITH_CURL=FALSE,curl"
+PACKAGECONFIG[inotify] = "-DWITH_INOTIFY=TRUE,-DWITH_INOTIFY=FALSE,inotify-tools"
+PACKAGECONFIG[avcodec] = "-DWITH_AVCODEC=TRUE,-DWITH_AVCODEC=FALSE,ffmpeg"
+PACKAGECONFIG[wavpack] = "-DWITH_WAVPACK=TRUE,-DWITH_WAVPACK=FALSE,wavpack"
+PACKAGECONFIG[exif] = "-DWITH_EXIF=TRUE,-DWITH_EXIF=FALSE,libexif"
+PACKAGECONFIG[exiv2] = "-DWITH_EXIV2=TRUE,-DWITH_EXIV2=FALSE,exiv2"
+PACKAGECONFIG[matroska] = "-DWITH_MATROSKA=TRUE,-DWITH_MATROSKA=FALSE,libebml libmatroska"
+PACKAGECONFIG[magic] = "-DWITH_MAGIC=TRUE,-DWITH_MAGIC=FALSE,file"
+PACKAGECONFIG[js] = "-DWITH_JS=TRUE,-DWITH_JS=FALSE,duktape"
+
+SECURITY_CFLAGS:riscv64 = "${SECURITY_NOPIE_CFLAGS}"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch
new file mode 100644
index 0000000000..1d85e51d6b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch
@@ -0,0 +1,33 @@
+From d84807ec6d6f8511e4ec939a745d4d7bb35c3cfb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 4 Feb 2022 09:22:48 -0800
+Subject: [PATCH] tracers: Fix buffer overflow
+
+Fixes
+| ../../../git/plugins/tracers/gstcpuusagecompute.c:106:9: error: 'fscanf' may overflow; destination buffer in argument 3 has size 8, but the corresponding specifier may require size 9 [-Werror,-Wfortify-sour
+ce]
+| cpu_name, &user[0], &nice[0], &system[0], &idle[0], &iowait, &irq,
+| ^
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plugins/tracers/gstcpuusagecompute.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/tracers/gstcpuusagecompute.c b/plugins/tracers/gstcpuusagecompute.c
+index 39255fb..00bae66 100644
+--- a/plugins/tracers/gstcpuusagecompute.c
++++ b/plugins/tracers/gstcpuusagecompute.c
+@@ -69,7 +69,7 @@ gst_cpu_usage_compute (GstCPUUsage * cpu_usage)
+ gint *idle;
+ gint *idle_aux;
+
+- gchar cpu_name[CPU_NAME_MAX_SIZE];
++ gchar cpu_name[CPU_NAME_MAX_SIZE+1];
+ gint iowait; /* Time waiting for I/O to complete */
+ gint irq; /* Time servicing interrupts */
+ gint softirq; /* Time servicing softirqs */
+--
+2.35.1
+
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb
index 94d05def3e..dc43bed63b 100644
--- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb
+++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb
@@ -2,34 +2,33 @@ SUMMARY = "Gst-Shark Tracers"
DESCRIPTION = "Benchmarks and profiling tools for GStreamer"
HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=GstShark"
SECTION = "multimedia"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97"
DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad "
SRCBRANCH ?= "master"
-PV = "0.7.2"
-
-SRCREV_base = "50e3dbd3b131de2a39d3917576e8f834631ec46b"
-SRCREV_common = "88e512ca7197a45c4114f7fa993108f23245bf50"
-
+SRCREV = "09ba05865dacd2824b5b40ab75a4b9545fcc1366"
+SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
+SRCREV_FORMAT = "default_common"
SRC_URI = " \
- git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \
- git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common; \
- "
+ git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH} \
+ git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;branch=master;destsuffix=git/common;name=common \
+ file://0001-tracers-Fix-buffer-overflow.patch \
+"
S = "${WORKDIR}/git"
EXTRA_OECONF += " \
- --disable-graphviz \
- --enable-gtk-doc=no \
+ --disable-graphviz \
+ --enable-gtk-doc=no \
"
-FILES_${PN} += "\
- ${libdir}/gstreamer-1.0/libgstsharktracers.so \
- ${libdir}/gstreamer-1.0/libgstsharktracers.la \
+FILES:${PN} += "\
+ ${libdir}/gstreamer-1.0/libgstsharktracers.so \
+ ${libdir}/gstreamer-1.0/libgstsharktracers.la \
"
-inherit autotools gettext
+inherit autotools gettext pkgconfig gtk-doc
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
deleted file mode 100644
index c1c88999a5..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From eaf51d6420c63713f62025583681007c3502d387 Mon Sep 17 00:00:00 2001
-From: Carlos <carlos.rodriguez@ridgerun.com>
-Date: Fri, 15 Dec 2017 10:14:05 -0600
-Subject: [PATCH] gstd:yocto compatibility
-
----
- gstd/Makefile.am | 2 +-
- 3 files changed, 9 insertions(+), 3 deletions(-)
-
---- a/gstd/Makefile.am
-+++ b/gstd/Makefile.am
-@@ -74,7 +74,7 @@ gstd_CFLAGS = $(GST_CFLAGS) \
- -DGSTD_LOG_STATE_DIR=\"$(gstdlogstatedir)\" \
- -DGSTD_RUN_STATE_DIR=\"$(gstdrunstatedir)\"
-
--gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS) $(GJSON_LIBS) $(LIBD_LIBS) -Wl,-rpath -Wl,$(libdir)
-+gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS) $(GJSON_LIBS) $(LIBD_LIBS)
- gstd_LDADD = libgstd-core.la
-
- gstdincludedir = $(includedir)/gstd
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
index 1834a83661..87792491ae 100644
--- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
+++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
@@ -2,32 +2,39 @@ DESCRIPTION = "Gstreamer Daemon"
SUMMARY = "GStreamer framework for controlling audio and video streaming using TCP connection messages"
HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=Gstd-1.0"
SECTION = "multimedia"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c71b653a0f608a58cdc5693ae57126bc"
-DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon jansson"
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon libsoup-2.4 jansson"
SRCBRANCH ?= "master"
-SRCREV = "a6621a5778b234651aa2adbbe304d906a3fa64d1"
-SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH} \
- file://0001-gstd-yocto-compatibility.patch \
- "
+SRCREV = "a011affa67f240cbc7aaff5b00fdfd6124bdaece"
+SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH}"
S = "${WORKDIR}/git"
# Remove the +really when upstream version is > 1.0
-PV = "1.0+really0.8.0"
+PV = "1.0+really0.15.0"
-inherit autotools pkgconfig gettext gtk-doc
+GTKDOC_MESON_OPTION = "enable-gtk-doc"
-do_install_append() {
- rm -fr ${D}${localstatedir}/run ${D}/run ${D}${bindir}/gst-client ${D}${bindir}/gstd-client
+inherit meson pkgconfig gettext gtk-doc python3native python3-dir python3targetconfig
+
+do_install:append() {
+ rmdir ${D}${exec_prefix}${localstatedir}/run/${BPN} ${D}${exec_prefix}${localstatedir}/run \
+ ${D}${exec_prefix}${localstatedir}/log/${BPN} ${D}${exec_prefix}${localstatedir}/log \
+ ${D}${exec_prefix}${localstatedir}
+ rm -f ${D}${bindir}/gst-client ${D}${bindir}/gstd-client
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/tmpfiles.d
echo "d /run/${BPN} - - - -" \
> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
- echo "d /${localstatedir}/log/${BPN} 0755 root root -" \
+ echo "d ${localstatedir}/log/${BPN} 0755 root root -" \
>> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
fi
ln -sf gst-client-1.0 ${D}${bindir}/gst-client
ln -sf gst-client-1.0 ${D}${bindir}/gstd-client
}
+PACKAGES =+ "${PN}-python"
+
+FILES:${PN} += "${systemd_user_unitdir}"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-all.bb
index 9f2fda9fef..dc76265a9b 100644
--- a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-all.bb
@@ -1,3 +1,3 @@
-require meta-multimedia-image-base.bb
+require recipes-core/images/core-image-base.bb
IMAGE_INSTALL += "packagegroup-meta-multimedia"
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb
deleted file mode 100644
index 249f989a4b..0000000000
--- a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-SUMMARY = "meta-multimedia build test image"
-
-IMAGE_INSTALL = "packagegroup-core-boot"
-
-LICENSE = "MIT"
-
-inherit core-image
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb
new file mode 100644
index 0000000000..8accba1bff
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-multimedia ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-multimedia.inc
+
+# Include the full set of ptests
+PTESTS_META_MULTIMEDIA = "${PTESTS_FAST_META_MULTIMEDIA} ${PTESTS_SLOW_META_MULTIMEDIA} ${PTESTS_PROBLEMS_META_MULTIMEDIA}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-multimedia-image-ptest-'+x+':do_testimage' for x in d.getVar('PTESTS_META_MULTIMEDIA').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-multimedia-image-ptest-'+x+':do_build' for x in d.getVar('PTESTS_META_MULTIMEDIA').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+ if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+ bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb
new file mode 100644
index 0000000000..6abd1a9ea3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb
@@ -0,0 +1,5 @@
+require meta-multimedia-image-ptest-all.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-multimedia ptest images."
+
+PTESTS_META_MULTIMEDIA = "${PTESTS_FAST_META_MULTIMEDIA}"
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb
new file mode 100644
index 0000000000..887396d4cc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb
@@ -0,0 +1,40 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require recipes-core/images/core-image-minimal.bb
+require conf/include/ptest-packagelists-meta-multimedia.inc
+
+SUMMARY = "meta-multimedia ptest test image"
+
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_MULTIMEDIA = "${PTESTS_SLOW_META_MULTIMEDIA} ${PTESTS_FAST_META_MULTIMEDIA} ${PTESTS_PROBLEMS_META_MULTIMEDIA}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_MULTIMEDIA').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memroy, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+ if not d.getVar("MCNAME"):
+ raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb b/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb
index 04501e97c9..bc2e858b42 100644
--- a/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb
+++ b/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb
@@ -4,14 +4,14 @@
DESCRIPTION = "libcamera image"
LICENSE = "MIT"
-require meta-multimedia-image.bb
+require meta-multimedia-image-all.bb
IMAGE_INSTALL += " \
kernel-modules \
xkeyboard-config \
"
-IMAGE_INSTALL_append = "\
+IMAGE_INSTALL:append = "\
libcamera \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-base \
diff --git a/meta-multimedia/recipes-multimedia/juce/projucer.inc b/meta-multimedia/recipes-multimedia/juce/projucer.inc
index 9f03cbd80f..b60cba1dd6 100644
--- a/meta-multimedia/recipes-multimedia/juce/projucer.inc
+++ b/meta-multimedia/recipes-multimedia/juce/projucer.inc
@@ -3,23 +3,26 @@ DESCRIPTION = "Projucer is used to build and generate support files and build in
JUCE supported platforms, including Linux and Embedded Linux."
SECTION = "utils"
HOMEPAGE = "http://juce.com/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=12e9c2db7897c0349a4cc1c6d2a8c5d5"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eff9da77cdb81a803f8cbca6c16801d8"
+
+LICENSE_FLAGS = "commercial"
inherit pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "x11"
DEPENDS = "libx11 libxext libxinerama libxrandr libxcursor freetype alsa-lib curl bzip2 libpng harfbuzz glib-2.0 libpcre"
-DEPENDS_append_libc-musl = " libexecinfo"
+DEPENDS:append:libc-musl = " libexecinfo"
-SRCREV = "90e8da0cfb54ac593cdbed74c3d0c9b09bad3a9f"
+SRCREV = "2f980209cc4091a4490bb1bafc5d530f16834e58"
BRANCH = "master"
SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH} \
-"
+ file://0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch \
+ "
S = "${WORKDIR}/git"
-PV = "6.0.8"
+PV = "6.1.6"
JUCE_PROJUCER_BUILD_PATH = "${B}/extras/Projucer/Builds"
JUCE_PROJUCER_MAKEFILE_PATH = "${JUCE_PROJUCER_BUILD_PATH}/LinuxMakefile"
@@ -30,11 +33,11 @@ JUCE_PROJUCER = "${JUCE_PROJUCER_MAKEFILE_PATH}/build/Projucer"
# not work on cross builds
EXTRA_OEMAKE = "V=1 JUCE_ARCH_LABEL=${TARGET_ARCH} TARGET_ARCH='-g'"
-LDFLAGS_append_mipsarcho32 = " -latomic"
-LDFLAGS_append_powerpc = " -latomic"
-LDFLAGS_append_riscv64 = " -latomic"
-LDFLAGS_append_riscv32 = " -latomic"
-LDFLAGS_append_armv5 = " -latomic"
+LDFLAGS:append:mipsarcho32 = " -latomic"
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:riscv64 = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+LDFLAGS:append:armv5 = " -latomic"
do_configure() {
cd ${JUCE_PROJUCER_MAKEFILE_PATH}
@@ -51,4 +54,4 @@ do_install() {
install -m 0755 ${JUCE_PROJUCER} ${D}${bindir}
}
# error: '_NL_IDENTIFICATION_LANGUAGE' was not declared in this scope
-COMPATIBLE_HOST_libc-musl = "null"
+COMPATIBLE_HOST:libc-musl = "null"
diff --git a/meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch b/meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch
new file mode 100644
index 0000000000..3efef247ae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch
@@ -0,0 +1,21 @@
+From 85822fcb87dd531d5e8ed1c8230c67bddb56f66d Mon Sep 17 00:00:00 2001
+From: reuk <reuk@users.noreply.github.com>
+Date: Wed, 6 Apr 2022 15:43:09 +0100
+Subject: [PATCH] StandardHeader: Include <utility> for GCC 12 compatibility
+
+Upstream-Status: Backport [https://github.com/juce-framework/JUCE/commit/ce8aff22c31c4d932a8414bc6f6185381dc970db]
+Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
+---
+ modules/juce_core/system/juce_StandardHeader.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/modules/juce_core/system/juce_StandardHeader.h
++++ b/modules/juce_core/system/juce_StandardHeader.h
+@@ -64,6 +64,7 @@
+ #include <typeindex>
+ #include <unordered_map>
+ #include <unordered_set>
++#include <utility>
+ #include <vector>
+ #include <set>
+
diff --git a/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb b/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb
index 05134614a5..b30f398e87 100644
--- a/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb
+++ b/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Libao is a cross-platform audio library that allows programs to \
SECTION = "multimedia"
HOMEPAGE = "https://www.xiph.org/ao/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI="http://downloads.xiph.org/releases/ao/${BP}.tar.gz"
@@ -16,18 +16,18 @@ inherit autotools
PACKAGES += "${BPN}-ckport"
PACKAGES_DYNAMIC += "^${BPN}-plugin-.*"
-do_install_append () {
+do_install:append () {
find "${D}" -name '*.la' -exec rm -f {} +
}
-python populate_packages_prepend () {
+python populate_packages:prepend () {
rootdir = bb.data.expand('${libdir}/ao/plugins-4', d)
rootdir_dbg = bb.data.expand('${libdir}/ao/plugins-4/.debug', d)
- do_split_packages(d, rootdir, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin')
- do_split_packages(d, rootdir_dbg, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data')
+ do_split_packages(d, rootdir, r'^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin')
+ do_split_packages(d, rootdir_dbg, r'^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data')
}
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}"
PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
-FILES_${BPN}-ckport = "${libdir}/ckport"
+FILES:${BPN}-ckport = "${libdir}/ckport"
diff --git a/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb b/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb
index f5b0d48c46..02a90c547d 100644
--- a/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb
+++ b/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb
@@ -4,9 +4,9 @@ HOMEPAGE = "http://sourceforge.net/projects/libavc1394/"
SECTION = "libs/multimedia"
DEPENDS = "libraw1394"
-DEPENDS_append_libc-musl = " argp-standalone"
+DEPENDS:append:libc-musl = " argp-standalone"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
@@ -15,4 +15,4 @@ SRC_URI[sha256sum] = "7cb1ff09506ae911ca9860bef4af08c2403f3e131f6c913a2cbd6ddca4
inherit autotools pkgconfig
-LDFLAGS_append_libc-musl = " -largp"
+LDFLAGS:append:libc-musl = " -largp"
diff --git a/meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb b/meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb
new file mode 100644
index 0000000000..885758b6a4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "This library aims to be a friendly, portable C implementation of the AV1 Image File Format"
+HOMEPAGE = "https://github.com/AOMediaCodec/libavif"
+SECTION = "libs"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c528b75b07425b5c1d2e34de98c397b5"
+
+SRC_URI = "git://github.com/AOMediaCodec/libavif.git;protocol=https;branch=v1.0.x"
+
+S = "${WORKDIR}/git"
+SRCREV = "d1c26facaf5a8a97919ceee06814d05d10e25622"
+
+DEPENDS = "dav1d"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DAVIF_CODEC_DAV1D=ON"
diff --git a/meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch b/meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch
new file mode 100644
index 0000000000..e432ccca42
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch
@@ -0,0 +1,43 @@
+From cdbbe227594665145e9309a9ecb7d90aad070aab Mon Sep 17 00:00:00 2001
+From: Max Krummenacher <max.krummenacher@toradex.com>
+Date: Wed, 1 Jun 2022 15:53:55 +0000
+Subject: [PATCH] provide 64bit host to network conversion macros
+
+musl dosn't include the macros which convert 64-bit integers
+between host and network endianness from arpa/inet.h as glibc does.
+
+Use this patch to include endian.h in util.h if compiling for musl.
+
+Prevents:
+| [2/8] aarch64-tdx-linux-musl-gcc ... -o libavtp.so.0.2.0.p/src_avtp_stream.c.o -c ../git/src/avtp_stream.c
+| ../git/src/avtp_stream.c: In function 'avtp_stream_pdu_get':
+| ../git/src/avtp_stream.c:116:24: warning: implicit declaration of function 'be64toh' [-Wimplicit-function-declaration]
+| 116 | *val = be64toh(pdu->stream_id);
+| | ^~~~~~~
+| ../git/src/avtp_stream.c: In function 'avtp_stream_pdu_set':
+| ../git/src/avtp_stream.c:199:34: warning: implicit declaration of function 'htobe64' [-Wimplicit-function-declaration]
+| 199 | pdu->stream_id = htobe64(value);
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+---
+ src/util.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/util.h b/src/util.h
+index 8b50625..e6fd2ef 100644
+--- a/src/util.h
++++ b/src/util.h
+@@ -27,6 +27,8 @@
+
+ #pragma once
+
++#include <endian.h>
++
+ #define BIT(n) (1ULL << n)
+
+ #define BITMASK(len) (BIT(len) - 1)
+--
+2.20.1
+
diff --git a/meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb b/meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb
new file mode 100644
index 0000000000..98f8e5b84d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Implements Audio Video Transport Protocol (AVTP)"
+DESCRIPTION = "Open source implementation of Audio Video Transport Protocol (AVTP) \
+ specified in IEEE 1722-2016 spec."
+HOMEPAGE = "https://github.com/Avnu/libavtp"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7fcb4331e23e45e171cd5693c1ff7d3e"
+
+SRC_URI = "git://github.com/Avnu/libavtp.git;branch=master;protocol=https"
+SRC_URI:append:libc-musl = " file://0001-provide-64bit-host-to-network-conversion-macros.patch"
+SRCREV = "3599a5bf2d18fc3ae89b64f208d8380e6ee3a866"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON = "-Dtests=disabled"
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
deleted file mode 100644
index 30dab1d928..0000000000
--- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "Linux libcamera framework"
-SECTION = "libs"
-
-LICENSE = "GPL-2.0+ & LGPL-2.1+"
-
-LIC_FILES_CHKSUM = "\
- file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c \
- file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \
-"
-
-SRC_URI = " \
- git://linuxtv.org/libcamera.git;protocol=git \
-"
-
-SRCREV = "193ca8c353a42334f65ddfc988a105a47bca3547"
-
-PV = "202105+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-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"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
-
-RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}"
-
-inherit meson pkgconfig python3native
-
-do_configure_prepend() {
- sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py
-}
-
-do_install_append() {
- chrpath -d ${D}${libdir}/libcamera.so
-}
-
-addtask do_recalculate_ipa_signatures_package after do_package before do_packagedata
-do_recalculate_ipa_signatures_package() {
- local modules
- for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do
- module="${module%.sign}"
- if [ -f "${module}" ] ; then
- modules="${modules} ${module}"
- fi
- done
-
- ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}"
-}
-
-FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
-FILES_${PN} += " ${libdir}/libcamera.so"
-FILES_${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch
new file mode 100644
index 0000000000..9e4adf3d8d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch
@@ -0,0 +1,71 @@
+From 35d2acc61b1b27c0810a80cd21de65f29dc79df7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 24 Mar 2024 11:27:21 -0700
+Subject: [PATCH] ipu3: Use posix basename
+
+musl does not implement GNU basename extention and with latest musl
+the prototype from string.h is also removed [1] which now results in
+compile errors e.g.
+
+../git/utils/ipu3/ipu3-pack.c:21:47: error: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+
+These utilities are using this function in usage() which is used just
+before program exit. Always use the basename APIs from libgen.h which is
+posix implementation
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-March/041180.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ utils/ipu3/ipu3-pack.c | 4 ++--
+ utils/ipu3/ipu3-unpack.c | 3 ++-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/utils/ipu3/ipu3-pack.c b/utils/ipu3/ipu3-pack.c
+index decbfc6c..23d2db8b 100644
+--- a/utils/ipu3/ipu3-pack.c
++++ b/utils/ipu3/ipu3-pack.c
+@@ -8,6 +8,7 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#include <libgen.h>
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -15,9 +16,8 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+
+-static void usage(const char *argv0)
++static void usage(char *argv0)
+ {
+-
+ printf("Usage: %s input-file output-file\n", basename(argv0));
+ printf("Convert unpacked RAW10 Bayer data to the IPU3 packed Bayer formats\n");
+ printf("If the output-file '-', output data will be written to standard output\n");
+diff --git a/utils/ipu3/ipu3-unpack.c b/utils/ipu3/ipu3-unpack.c
+index 9d2c1200..1505a970 100644
+--- a/utils/ipu3/ipu3-unpack.c
++++ b/utils/ipu3/ipu3-unpack.c
+@@ -8,6 +8,7 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#include <libgen.h>
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -15,7 +16,7 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+
+-static void usage(const char *argv0)
++static void usage(char *argv0)
+ {
+ printf("Usage: %s input-file output-file\n", basename(argv0));
+ printf("Unpack the IPU3 raw Bayer format to 16-bit Bayer\n");
+--
+2.44.0
+
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch
new file mode 100644
index 0000000000..12f034effd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch
@@ -0,0 +1,59 @@
+From 6914c4fd3d53c0c6ea304123bf57429bb64ec16f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Jan 2024 21:01:27 -0800
+Subject: [PATCH 1/2] media_device: Add bool return type to unlock()
+
+unlock uses lockf which is marked with __attribute__
+((warn_unused_result)) and compilers warn about it and some treat
+-Wunused-result as error with -Werror turned on, It would be good to
+check if lockf failed or succeeded, however, that piece is not changed
+with this, this fixes build with clang++ 18
+
+ ../git/src/libcamera/media_device.cpp:167:2: error: ignoring return value of function declared with 'warn_unused_result' attribute [-Werror,-Wunused-result]
+ 167 | lockf(fd_.get(), F_ULOCK, 0);
+ | ^~~~~ ~~~~~~~~~~~~~~~~~~~~~
+ 1 error generated.
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040380.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/libcamera/internal/media_device.h | 2 +-
+ src/libcamera/media_device.cpp | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/include/libcamera/internal/media_device.h b/include/libcamera/internal/media_device.h
+index eb8cfde4..b09dfd16 100644
+--- a/include/libcamera/internal/media_device.h
++++ b/include/libcamera/internal/media_device.h
+@@ -33,7 +33,7 @@ public:
+ bool busy() const { return acquired_; }
+
+ bool lock();
+- void unlock();
++ bool unlock();
+
+ int populate();
+ bool isValid() const { return valid_; }
+diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
+index 2949816b..eaa2fdb0 100644
+--- a/src/libcamera/media_device.cpp
++++ b/src/libcamera/media_device.cpp
+@@ -159,12 +159,12 @@ bool MediaDevice::lock()
+ *
+ * \sa lock()
+ */
+-void MediaDevice::unlock()
++bool MediaDevice::unlock()
+ {
+ if (!fd_.isValid())
+- return;
++ return false;
+
+- lockf(fd_.get(), F_ULOCK, 0);
++ return lockf(fd_.get(), F_ULOCK, 0) == 0;
+ }
+
+ /**
+--
+2.43.0
+
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch
new file mode 100644
index 0000000000..c336e92548
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch
@@ -0,0 +1,43 @@
+From 11cc6dbd45f0880beea64cdc514f57484b90bc39 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Feb 2024 18:44:23 -0800
+Subject: [PATCH] rpi: Use malloc instead of variable length arrays
+
+Clang-18+ diagnoses this as error
+
+| ../git/src/ipa/rpi/controller/rpi/alsc.cpp:499:10: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension] | 499 | int xLo[X], xHi[X];
+| | ^
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040529.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+s
+---
+ src/ipa/rpi/controller/rpi/alsc.cpp | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/ipa/rpi/controller/rpi/alsc.cpp b/src/ipa/rpi/controller/rpi/alsc.cpp
+index 8a205c60..a7d42614 100644
+--- a/src/ipa/rpi/controller/rpi/alsc.cpp
++++ b/src/ipa/rpi/controller/rpi/alsc.cpp
+@@ -496,8 +496,8 @@ void resampleCalTable(const Array2D<double> &calTableIn,
+ * Precalculate and cache the x sampling locations and phases to save
+ * recomputing them on every row.
+ */
+- int xLo[X], xHi[X];
+- double xf[X];
++ int *xLo = (int*)malloc(X), *xHi = (int*)malloc(X);
++ double *xf = (double*)malloc(X);
+ double scaleX = cameraMode.sensorWidth /
+ (cameraMode.width * cameraMode.scaleX);
+ double xOff = cameraMode.cropX / (double)cameraMode.sensorWidth;
+@@ -539,6 +539,9 @@ void resampleCalTable(const Array2D<double> &calTableIn,
+ *(out++) = above * (1 - yf) + below * yf;
+ }
+ }
++ free(xf);
++ free(xHi);
++ free(xLo);
+ }
+
+ /* Calculate chrominance statistics (R/G and B/G) for each region. */
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch
new file mode 100644
index 0000000000..473820653e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch
@@ -0,0 +1,128 @@
+From 6e4736180fcaffdb06acf52fd3eb50ba5baa3d2a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Jan 2024 21:04:28 -0800
+Subject: [PATCH] options: Replace use of VLAs in C++
+
+Clang++ 18 is fussy about this with new warning checks.
+
+ ../git/src/apps/common/options.cpp:882:20: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension]
+ 882 | char shortOptions[optionsMap_.size() * 3 + 2];
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Therefore replace using VLAs with alloca and malloc/free
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040381.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/apps/common/options.cpp | 12 ++++++++++--
+ src/libcamera/ipc_unixsocket.cpp | 13 +++++++++----
+ 2 files changed, 19 insertions(+), 6 deletions(-)
+
+diff --git a/src/apps/common/options.cpp b/src/apps/common/options.cpp
+index 4f7e8691..3656f3c1 100644
+--- a/src/apps/common/options.cpp
++++ b/src/apps/common/options.cpp
+@@ -879,8 +879,8 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv)
+ * Allocate short and long options arrays large enough to contain all
+ * options.
+ */
+- char shortOptions[optionsMap_.size() * 3 + 2];
+- struct option longOptions[optionsMap_.size() + 1];
++ char *shortOptions = (char*)malloc(optionsMap_.size() * 3 + 2);
++ struct option *longOptions = (struct option*)malloc(sizeof(struct option) * (optionsMap_.size() + 1));
+ unsigned int ids = 0;
+ unsigned int idl = 0;
+
+@@ -935,12 +935,16 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv)
+ std::cerr << argv[optind - 1] << std::endl;
+
+ usage();
++ free(shortOptions);
++ free(longOptions);
+ return options;
+ }
+
+ const Option &option = *optionsMap_[c];
+ if (!parseValue(option, optarg, &options)) {
+ usage();
++ free(shortOptions);
++ free(longOptions);
+ return options;
+ }
+ }
+@@ -949,10 +953,14 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv)
+ std::cerr << "Invalid non-option argument '" << argv[optind]
+ << "'" << std::endl;
+ usage();
++ free(shortOptions);
++ free(longOptions);
+ return options;
+ }
+
+ options.valid_ = true;
++ free(shortOptions);
++ free(longOptions);
+ return options;
+ }
+
+diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp
+index 1980d374..3bd861cb 100644
+--- a/src/libcamera/ipc_unixsocket.cpp
++++ b/src/libcamera/ipc_unixsocket.cpp
+@@ -8,6 +8,7 @@
+ #include "libcamera/internal/ipc_unixsocket.h"
+
+ #include <array>
++#include <cstdint>
+ #include <poll.h>
+ #include <string.h>
+ #include <sys/socket.h>
+@@ -247,8 +248,8 @@ int IPCUnixSocket::sendData(const void *buffer, size_t length,
+ iov[0].iov_base = const_cast<void *>(buffer);
+ iov[0].iov_len = length;
+
+- char buf[CMSG_SPACE(num * sizeof(uint32_t))];
+- memset(buf, 0, sizeof(buf));
++ char *buf = (char*)malloc(CMSG_SPACE(num * sizeof(uint32_t)));
++ memset((void*)buf, 0, sizeof(buf));
+
+ struct cmsghdr *cmsg = (struct cmsghdr *)buf;
+ cmsg->cmsg_len = CMSG_LEN(num * sizeof(uint32_t));
+@@ -270,9 +271,11 @@ int IPCUnixSocket::sendData(const void *buffer, size_t length,
+ int ret = -errno;
+ LOG(IPCUnixSocket, Error)
+ << "Failed to sendmsg: " << strerror(-ret);
++ free(buf);
+ return ret;
+ }
+
++ free(buf);
+ return 0;
+ }
+
+@@ -283,8 +286,8 @@ int IPCUnixSocket::recvData(void *buffer, size_t length,
+ iov[0].iov_base = buffer;
+ iov[0].iov_len = length;
+
+- char buf[CMSG_SPACE(num * sizeof(uint32_t))];
+- memset(buf, 0, sizeof(buf));
++ char *buf = (char*)malloc(CMSG_SPACE(num * sizeof(uint32_t)));
++ memset((void*)buf, 0, sizeof(buf));
+
+ struct cmsghdr *cmsg = (struct cmsghdr *)buf;
+ cmsg->cmsg_len = CMSG_LEN(num * sizeof(uint32_t));
+@@ -305,12 +308,14 @@ int IPCUnixSocket::recvData(void *buffer, size_t length,
+ if (ret != -EAGAIN)
+ LOG(IPCUnixSocket, Error)
+ << "Failed to recvmsg: " << strerror(-ret);
++ free(buf);
+ return ret;
+ }
+
+ if (fds)
+ memcpy(fds, CMSG_DATA(cmsg), num * sizeof(uint32_t));
+
++ free(buf);
+ return 0;
+ }
+
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb
new file mode 100644
index 0000000000..45d6be31ec
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb
@@ -0,0 +1,78 @@
+SUMMARY = "Linux libcamera framework"
+SECTION = "libs"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+
+LIC_FILES_CHKSUM = "\
+ file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c \
+ file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \
+"
+
+SRC_URI = " \
+ git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \
+ file://0001-media_device-Add-bool-return-type-to-unlock.patch \
+ file://0002-options-Replace-use-of-VLAs-in-C.patch \
+ file://0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch \
+ file://0001-ipu3-Use-posix-basename.patch \
+"
+
+SRCREV = "89227a428a82e724548399d35c98ea89566f9045"
+
+PE = "1"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls chrpath-native libevent libyaml"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}"
+
+PACKAGES =+ "${PN}-gst"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
+
+LIBCAMERA_PIPELINES ??= "auto"
+
+EXTRA_OEMESON = " \
+ -Dpipelines=${LIBCAMERA_PIPELINES} \
+ -Dv4l2=true \
+ -Dcam=enabled \
+ -Dlc-compliance=disabled \
+ -Dtest=false \
+ -Ddocumentation=disabled \
+"
+
+RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}"
+
+inherit meson pkgconfig python3native
+
+do_configure:prepend() {
+ sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py
+}
+
+do_install:append() {
+ chrpath -d ${D}${libdir}/libcamera.so
+ chrpath -d ${D}${libexecdir}/libcamera/v4l2-compat.so
+}
+
+do_package:append() {
+ bb.build.exec_func("do_package_recalculate_ipa_signatures", d)
+}
+
+do_package_recalculate_ipa_signatures() {
+ local modules
+ for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do
+ module="${module%.sign}"
+ if [ -f "${module}" ] ; then
+ modules="${modules} ${module}"
+ fi
+ done
+
+ ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}"
+}
+
+FILES:${PN} += " ${libexecdir}/libcamera/v4l2-compat.so"
+FILES:${PN}-gst = "${libdir}/gstreamer-1.0"
+
+# libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
+# both 32 and 64 bit file APIs.
+GLIBC_64BIT_TIME_FLAGS = ""
diff --git a/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch b/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch
index df0c2355d0..51761eb8c9 100755
--- a/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch
+++ b/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch
@@ -1,3 +1,8 @@
+Install all examples
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
Index: libdc1394/examples/Makefile.am
===================================================================
--- libdc1394.orig/examples/Makefile.am
diff --git a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb
index c9ade4ac99..8cac780d64 100755
--- a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb
+++ b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb
@@ -1,21 +1,20 @@
SUMMARY = "Capture and control API for IIDC compliant cameras"
HOMEPAGE = "http://sourceforge.net/projects/libdc1394/"
SECTION = "libs"
-LICENSE = "LGPL-2.0"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=c848e78d9a4a5cc69906178e4d6fbd64"
# libsdl to provide sdl.m4 with AM_PATH_SDL
DEPENDS += "libusb1 libraw1394 libsdl \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxv virtual/libx11', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/egl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'libglu', '', d)} \
"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
file://install_examples.patch \
"
-SRC_URI[md5sum] = "9fad67bbff08fe2818d5ec81802ec89f"
-SRC_URI[sha256sum] = "2b905fc9aa4eec6bdcf6a2ae5f5ba021232739f5be047dec8fe8dd6049c10fed"
+SRC_URI[sha256sum] = "537ceb78dd3cef271a183f4a176191d1cecf85f025520e6bd3758b0e19e6609f"
inherit autotools pkgconfig
EXTRA_OECONF += "--disable-doxygen-doc --disable-examples"
diff --git a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb
index 613dcc71bf..3c9f899491 100644
--- a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb
+++ b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb
@@ -4,16 +4,18 @@ simple integration into other software."
HOMEPAGE = "http://www.libde265.org/"
SECTION = "libs/multimedia"
-LICENSE = "LGPLv3 & MIT"
+LICENSE = "LGPL-3.0-only & MIT"
LICENSE_FLAGS = "commercial"
LIC_FILES_CHKSUM = "file://COPYING;md5=695b556799abb2435c97a113cdca512f"
-SRC_URI = "https://github.com/strukturag/libde265/releases/download/v${PV}/${BPN}-${PV}.tar.gz"
-SRC_URI[sha256sum] = "e3f277d8903408615a5cc34718b391b83c97c646faea4f41da93bac5ee08a87f"
+SRC_URI = "git://github.com/strukturag/libde265.git;branch=master;protocol=https"
+SRCREV = "a267c84707ab264928fa9b86de2ee749c48c318c"
+
+S = "${WORKDIR}/git"
EXTRA_OECONF = "--disable-sherlock265 --disable-dec265"
inherit autotools-brokensep pkgconfig
PACKAGES =+ "${PN}-tools"
-FILES_${PN}-tools = "${bindir}/*"
+FILES:${PN}-tools = "${bindir}/*"
diff --git a/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb b/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb
index 7f042c382f..5de717c281 100644
--- a/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb
+++ b/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb
@@ -1,11 +1,11 @@
SUMMARY = "Open implementation of the DVB Common Scrambling Algorithm, encrypt and decrypt "
SECTION = "libs/multimedia"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRCREV = "bc6c0b164a87ce05e9925785cc6fb3f54c02b026"
-SRC_URI = "git://code.videolan.org/videolan/libdvbcsa.git;protocol=https \
+SRC_URI = "git://code.videolan.org/videolan/libdvbcsa.git;protocol=https;branch=master \
file://libdvbcsa.pc \
"
@@ -13,7 +13,7 @@ S = "${WORKDIR}/git"
inherit autotools lib_package pkgconfig
-do_install_append() {
+do_install:append() {
install -D -m 0644 ${S}/src/dvbcsa/dvbcsa.h ${D}${includedir}/dvbcsa/dvbcsa.h
install -D -m 0644 ${WORKDIR}/libdvbcsa.pc ${D}${libdir}/pkgconfig/libdvbcsa.pc
}
diff --git a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.3.bb
index 48b0111047..719fbf91e6 100644
--- a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb
+++ b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.3.bb
@@ -2,11 +2,10 @@ DESCRIPTION = "libdvbpsi is a simple library designed for decoding \
and generation of MPEG TS and DVB PSI tables according to standards \
ISO/IEC 13818 and ITU-T H.222.0."
HOMEPAGE = "http://www.videolan.org/developers/libdvbpsi.html"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
SRC_URI = "http://download.videolan.org/pub/libdvbpsi/${PV}/libdvbpsi-${PV}.tar.bz2"
-SRC_URI[md5sum] = "2b217039a1299000c39423441f77e76a"
-SRC_URI[sha256sum] = "a2fed1d11980662f919bbd1f29e2462719e0f6227e1a531310bd5a706db0a1fe"
+SRC_URI[sha256sum] = "02b5998bcf289cdfbd8757bedd5987e681309b0a25b3ffe6cebae599f7a00112"
inherit autotools
diff --git a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb
index 06308d96c3..766ee02ca2 100644
--- a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb
+++ b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb
@@ -1,6 +1,6 @@
SUMMARY = "library for DVD navigation features"
SECTION = "libs/multimedia"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "libdvdread"
@@ -10,5 +10,5 @@ SRC_URI[sha256sum] = "c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98
inherit autotools lib_package binconfig pkgconfig
-CONFIGUREOPTS_remove = "--disable-silent-rules"
+CONFIGUREOPTS:remove = "--disable-silent-rules"
diff --git a/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb b/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb
index e6079bd752..7c90faa45e 100644
--- a/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb
+++ b/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb
@@ -6,7 +6,7 @@ SECTION = "libs/multimedia"
DEPENDS = "libraw1394"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=771782cb6245c7fbbe74bc0ec059beff"
SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.xz"
diff --git a/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb b/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb
new file mode 100644
index 0000000000..7f531efc63
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Low Complexity Communication Codec (LC3)"
+HOMEPAGE = "https://github.com/google/liblc3"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://github.com/google/liblc3.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "1a5938ebaca4f13fe79ce074f5dee079783aa29f"
+
+inherit pkgconfig meson
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb b/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.7.3.bb
index d14246f32b..8bb49b2f12 100644
--- a/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb
+++ b/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.7.3.bb
@@ -1,41 +1,33 @@
SUMMARY = "C and C++ cross-platform library for decoding tracked music files (modules)"
DESCRIPTION = "libopenmpt is a cross-platform C++ and C library to decode tracked \
music files (modules) into a raw PCM audio stream. It also comes with openmpt123, a \
-cross-platform command-line or terminal based module file player, and libopenmpt_modplug, \
-a wrapper around libopenmpt that provides an interface that is ABI compatile with \
-libmodplug. libopenmpt is based on the player code of the OpenMPT project."
+cross-platform command-line or terminal based module file player. libopenmpt is based \
+on the player code of the OpenMPT project."
HOMEPAGE = "https://lib.openmpt.org/libopenmpt/"
SECTION = "libs"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e804150573f149befef6c07e173f20c3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=59f6e21f42e49919617267ff13a0b232"
DEPENDS = "virtual/libiconv"
SRC_URI = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${PV}+release.autotools.tar.gz \
file://run-ptest \
"
-SRC_URI[md5sum] = "66bbc6fbb5f27a554cb145d805e9ef9d"
-SRC_URI[sha256sum] = "14a137b8d1a20e1b6a5e67cbc9467ab7e5e4e67d5aa38a247afc825685c53939"
+
+SRC_URI[sha256sum] = "2cf8369b7916b09264f3f14b9fb6cef35a6e9bee0328dec4f49d98211ccfd722"
S = "${WORKDIR}/libopenmpt-${PV}+release.autotools"
inherit autotools pkgconfig ptest
PACKAGECONFIG ??= " \
- libopenmpt-modplug openmpt123 \
+ openmpt123 \
${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
flac mpg123 ogg sndfile vorbis vorbisfile zlib \
${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
"
-# libopenmpt_modplug is a library that wraps libopenmpt calls into
-# functions that are ABI compatible with libmodplug. This allows for
-# using modplug headers and linking against libopenmpt_modplug
-# instead of against the original libmodplug library.
-# NOTE: The wrapper is compatible to the ABI from libmodplug version
-# 0.8.8 and newer.
-PACKAGECONFIG[libopenmpt-modplug] = "--enable-libopenmpt_modplug,--disable-libopenmpt_modplug"
PACKAGECONFIG[openmpt123] = "--enable-openmpt123,--disable-openmpt123"
PACKAGECONFIG[tests] = "--enable-tests,--disable-tests"
@@ -45,22 +37,15 @@ PACKAGECONFIG[mpg123] = "--with-mpg123,--without-mpg123,mpg123"
PACKAGECONFIG[ogg] = "--with-ogg,--without-ogg,libogg"
PACKAGECONFIG[portaudio] = "--with-portaudio,--without-portaudio,portaudio-v19"
PACKAGECONFIG[pulseaudio] = "--with-pulseaudio,--without-pulseaudio,pulseaudio"
-PACKAGECONFIG[sdl] = "--with-sdl,--without-sdl,virtual/libsdl"
-PACKAGECONFIG[sdl2] = "--with-sdl2,--without-sdl2,virtual/libsdl2"
+PACKAGECONFIG[sdl2] = "--with-sdl2,--without-sdl2,libsdl2"
PACKAGECONFIG[sndfile] = "--with-sndfile,--without-sndfile,libsndfile1"
PACKAGECONFIG[vorbis] = "--with-vorbis,--without-vorbis,libvorbis"
PACKAGECONFIG[vorbisfile] = "--with-vorbisfile,--without-vorbisfile,libvorbis"
PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
-# --disable-libmodplug is necessary, since otherwise we'd
-# have a collision with the libmodplug package, because of the
-# libmodplug.so file. (libmodplug.so from libopenmpt isintended
-# to be used as a drop-in replacement, and according to the
-# documentation, is not complete.)
EXTRA_OECONF += " \
--disable-doxygen-doc \
--disable-examples \
- --disable-libmodplug \
--without-portaudiocpp \
"
@@ -79,24 +64,17 @@ do_install_ptest() {
install -m 0644 ${S}/libopenmpt/libopenmpt_version.mk ${D}${PTEST_PATH}/libopenmpt
}
-python __anonymous() {
- packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
- if ("sdl" in packageconfig) and ("sdl2" in packageconfig):
- bb.error("sdl and sdl2 packageconfigs cannot be both enabled")
-}
-
-PACKAGES =+ "${PN}-modplug ${PN}-openmpt123 ${PN}-openmpt123-doc"
-FILES_${PN}-modplug = "${libdir}/libopenmpt_modplug.so.*"
-FILES_${PN}-openmpt123 = "${bindir}/openmpt123"
-FILES_${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*"
+PACKAGES =+ "${PN}-openmpt123 ${PN}-openmpt123-doc"
+FILES:${PN}-openmpt123 = "${bindir}/openmpt123"
+FILES:${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*"
# Since version 0.3, libopenmpt uses SemVer 2.0.0 versioning.
# The SemVer versioning scheme is incompatible with Debian/Ubuntu
# package version names.
-DEBIAN_NOAUTONAME_${PN} = "1"
-DEBIAN_NOAUTONAME_${PN}-modplug = "1"
+DEBIAN_NOAUTONAME:${PN} = "1"
-RDEPENDS_${PN}_libc-glibc = " \
+RDEPENDS:${PN}:libc-glibc = " \
+ glibc-gconv \
glibc-gconv-cp1252 \
glibc-gconv-ibm437 \
glibc-gconv-iso8859-1 \
diff --git a/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch b/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch
new file mode 100644
index 0000000000..a6a58688bc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch
@@ -0,0 +1,70 @@
+From 20d14f323c877eca631f0a75efcf19727fb18dd9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 22 Mar 2022 09:17:06 -0700
+Subject: [PATCH] Add support for variable libdir
+
+sometimes libdir is not 'lib' in such cases set LIBDIR_SUFFIX to 32 or
+64 to append to it.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 9 +++++----
+ config.in | 2 ++
+ squish.pc.in | 3 ++-
+ 3 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1c01f89..768a4a7 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,13 +10,13 @@ LIB = libsquish.a
+ all : $(LIB) squish.pc
+
+ install : $(LIB) squish.pc
+- install squish.h $(INSTALL_DIR)/include
+- install libsquish.a $(INSTALL_DIR)/lib
+- install squish.pc $(INSTALL_DIR)/lib/pkgconfig
++ install squish.h $(INSTALL_DIR)/include
++ install libsquish.a $(INSTALL_DIR)/lib$(LIBDIR_SUFFIX)
++ install squish.pc $(INSTALL_DIR)/lib$(LIBDIR_SUFFIX)/pkgconfig
+
+ uninstall:
+ $(RM) $(INSTALL_DIR)/include/squish.h
+- $(RM) $(INSTALL_DIR)/lib/libsquish.a
++ $(RM) $(INSTALL_DIR)/lib$(LIBDIR_SUFFIX)/libsquish.a
+
+ $(LIB) : $(OBJ)
+ $(AR) cr $@ $?
+@@ -30,4 +30,5 @@ clean :
+
+ squish.pc:
+ sed 's|@PREFIX@|$(PREFIX)|' $@.in > $@
++ sed 's|@LIBDIR_SUFFIX@|$(LIBDIR_SUFFIX)|' $@.in > $@
+
+diff --git a/config.in b/config.in
+index fdca022..a6cf833 100644
+--- a/config.in
++++ b/config.in
+@@ -19,3 +19,5 @@ endif
+
+ # where should we install to
+ INSTALL_DIR ?= @PREFIX@
++# libdir is architecture specific
++LIBDIR_SUFFIX ?= @LIBDIR_SUFFIX@
+diff --git a/squish.pc.in b/squish.pc.in
+index ca04334..73c21bb 100644
+--- a/squish.pc.in
++++ b/squish.pc.in
+@@ -1,6 +1,7 @@
+ prefix=@PREFIX@
++suffix=@LIBDIR_SUFFIX@
+ exec_prefix=${prefix}
+-libdir=${prefix}/lib
++libdir=${prefix}/lib${suffix}
+ sharedlibdir=${libdir}
+ includedir=${prefix}/include
+
+--
+2.35.1
+
diff --git a/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
index f060f1e80d..3d631ea0b6 100644
--- a/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
+++ b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
@@ -3,14 +3,17 @@ SUMMARY = "The squish library (abbreviated to libsquish) is an open source DXT c
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://alpha.cpp;beginline=3;endline=22;md5=6665e479f71feb92d590ea9ae9b9f6d5"
-PV = "1.10+git${SRCPV}"
+PV = "1.10+git"
SRCREV = "52e7d93c5947f72380521116c05d97c528863ba8"
-SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https"
+SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https;branch=master \
+ file://0001-Add-support-for-variable-libdir.patch \
+ "
S = "${WORKDIR}/git"
-EXTRA_OEMAKE = "INSTALL_DIR=${D}${prefix}"
+EXTRA_OEMAKE = "INSTALL_DIR=${D}${prefix} LIBDIR_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+ ${@bb.utils.contains('TUNE_FEATURES', 'altivec', 'USE_ALTIVEC=1', '', d)}"
do_install() {
install -d ${D}${includedir}
diff --git a/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb b/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb
index 4d301fb2f6..b1572b32ac 100644
--- a/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb
+++ b/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb
@@ -3,12 +3,12 @@ HOMEPAGE = "https://github.com/libuvc/libuvc.git"
SECTION = "libs"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2f1963e0bb88c93463af750daf9ba0c2"
+
DEPENDS = "libusb jpeg"
-SRC_URI = "git://github.com/libuvc/libuvc.git"
-SRCREV = "ad6c72a4e390367f0d2be81aac00cfc0b6680d74"
-PV = "v0.0.6+git${SRCPV}"
+SRC_URI = "git://github.com/libuvc/libuvc.git;branch=master;protocol=https"
+SRCREV = "68d07a00e11d1944e27b7295ee69673239c00b4b"
S = "${WORKDIR}/git"
-inherit cmake
+inherit cmake pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb b/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb
index 0cac2bea53..76f51196aa 100644
--- a/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb
+++ b/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb
@@ -4,10 +4,10 @@ HOMEPAGE = "https://mimic.mycroft.ai/"
SECTION = "multimedia"
# "Mimic is available under permissive BSD-like licenses"
-LICENSE = "MIT-X & \
+LICENSE = "MIT & \
PD & \
CMU-Tex & \
- BSD & \
+ rateconv & \
BSD-2-Clause & \
BSD-3-Clause & \
flite & \
@@ -20,13 +20,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a2c2c7371b58b9cdeae0dc68846fe9f1"
DEPENDS = "curl-native libpcre2"
SRCREV = "adf655da0399530ac1b586590257847eb61be232"
-SRC_URI = "git://github.com/MycroftAI/mimic1.git \
+SRC_URI = "git://github.com/MycroftAI/mimic1.git;branch=master;protocol=https \
file://0001-Fix-musl-compatibility.patch \
file://0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch \
"
-inherit autotools
+inherit autotools pkgconfig
S = "${WORKDIR}/git"
-CPPFLAGS_append = " -Wno-error"
+CPPFLAGS:append = " -Wno-error"
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc b/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc
index 433388759f..4959a3c8d7 100644
--- a/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc
@@ -1,6 +1,6 @@
DESCRIPTION = "MiniDLNA (aka ReadyDLNA) is server software with the aim of \
being fully compliant with DLNA/UPnP-AV clients."
-LICENSE = "GPL-2.0|BSD"
+LICENSE = "GPL-2.0-only|BSD-3-Clause"
DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis"
# because it depends on libav which has commercial flag
@@ -13,7 +13,7 @@ SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \
file://minidlna.service \
file://0001-Update-Gettext-version.patch \
file://0001-configure-Check-for-clock_gettime-seprately-from-__N.patch \
- file://0001-Mark-setjmp_buffer-extern-declaration.patch \
+ file://0001-configure.ac-drop-non-standard-checks.patch \
"
S = "${WORKDIR}/git"
@@ -22,7 +22,7 @@ S = "${WORKDIR}/git"
# configure.ac:30: error: required file './ABOUT-NLS' not found
EXTRA_AUTORECONF = ""
-do_install_append(){
+do_install:append(){
install -d ${D}${sysconfdir}
install -m 0755 minidlna.conf ${D}${sysconfdir}
@@ -36,7 +36,7 @@ do_install_append(){
}
-SYSTEMD_SERVICE_${PN} = "minidlna.service"
+SYSTEMD_SERVICE:${PN} = "minidlna.service"
INITSCRIPT_NAME = "minidlna"
INITSCRIPT_PARAMS = "defaults 90"
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Mark-setjmp_buffer-extern-declaration.patch b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Mark-setjmp_buffer-extern-declaration.patch
deleted file mode 100644
index 0a1e800c81..0000000000
--- a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Mark-setjmp_buffer-extern-declaration.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 1c6028f5f8bbfd3fd7327a43e1bb762c2c166167 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 12 Aug 2020 18:10:54 -0700
-Subject: [PATCH] Mark setjmp_buffer extern declaration
-
-Fixes build with -fno-common
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- metadata.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/metadata.c b/metadata.c
-index 8a10c77..c114091 100644
---- a/metadata.c
-+++ b/metadata.c
-@@ -484,7 +484,7 @@ GetAudioMetadata(const char *path, const char *name)
- }
-
- /* For libjpeg error handling */
--jmp_buf setjmp_buffer;
-+extern jmp_buf setjmp_buffer;
- static void
- libjpeg_error_handler(j_common_ptr cinfo)
- {
---
-2.28.0
-
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch
index 24a307db19..dd29797a66 100644
--- a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch
@@ -1,4 +1,4 @@
-From 1118b1912916924bbfa3fd4dced9dfed01fbf0e0 Mon Sep 17 00:00:00 2001
+From 93e7e25a10c890b8c8cd06cbfd78175c30999d31 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 9 Mar 2020 09:44:33 -0700
Subject: [PATCH] configure: Check for clock_gettime seprately from
@@ -9,13 +9,16 @@ since direct use of __NR_clock_gettime is not time64-safe
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
- configure.ac | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
+ configure.ac | 4 ++++
+ 1 file changed, 4 insertions(+)
+diff --git a/configure.ac b/configure.ac
+index 3d218ea..aa7dd1c 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -125,6 +125,10 @@ case $host in
+@@ -127,6 +127,10 @@ case $host in
esac
AC_CHECK_HEADERS(syscall.h sys/syscall.h mach/mach_time.h)
@@ -26,11 +29,3 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
AC_MSG_CHECKING([for __NR_clock_gettime syscall])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
-@@ -143,7 +147,6 @@ AC_COMPILE_IFELSE(
- ],
- [
- AC_MSG_RESULT([no])
-- AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME], [1], [use clock_gettime])],)
- ])
-
- AC_CHECK_HEADER(linux/netlink.h,
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch
new file mode 100644
index 0000000000..93334b7dab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch
@@ -0,0 +1,37 @@
+From 83425344b2d7339e8f5b0ad230c51278d330d613 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Sat, 22 Jan 2022 11:41:50 +0100
+Subject: [PATCH] configure.ac: drop non-standard checks
+
+Not sure what upstream is trying to do here but it does not work
+with the latest autoconf.
+
+Upstream-Status: Inactive-Upstream
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ configure.ac | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index aa7dd1c..858db52 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -418,7 +418,6 @@ for dir in "" /usr/local $SEARCH_DIR; do
+ AC_CHECK_LIB([id3tag -lz], [id3_file_open], [LIBID3TAG_LIBS="-lid3tag -lz"], [unset ac_cv_lib_id3tag_id3_file_open; LDFLAGS="$LDFLAGS_SAVE"; continue])
+ break
+ done
+-test x"$ac_cv_lib_id3tag__lz___id3_file_open" = x"yes" || AC_MSG_ERROR([Could not find libid3tag])
+ AC_SUBST(LIBID3TAG_LIBS)
+
+ LDFLAGS_SAVE="$LDFLAGS"
+@@ -444,10 +443,6 @@ for dir in "" /usr/local $SEARCH_DIR; do
+ [unset ac_cv_lib_avformat_av_open_input_file; unset ac_cv_lib_avformat_avformat_open_input; LDFLAGS="$LDFLAGS_SAVE"; continue])])
+ break
+ done
+-if test x"$ac_cv_lib_avformat__lavcodec__lavutil__lz___av_open_input_file" != x"yes" &&
+- test x"$ac_cv_lib_avformat__lavcodec__lavutil__lz___avformat_open_input" != x"yes"; then
+- AC_MSG_ERROR([Could not find libavformat - part of ffmpeg])
+-fi
+ AC_SUBST(LIBAVFORMAT_LIBS)
+
+ AC_CHECK_LIB(pthread, pthread_create)
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb b/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb
index 999d85ce74..4238918c97 100644
--- a/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb
@@ -1,4 +1,4 @@
require ${BPN}.inc
-SRCREV = "c760a338e07ebd11d62fef701e3de824a91f8625"
+SRCREV = "109d63cb11ac207c18a784556834eb054b34b00b"
LIC_FILES_CHKSUM = "file://LICENCE.miniupnpd;md5=b0dabf9d8e0f871554e309d62ead8d2b"
diff --git a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch
new file mode 100644
index 0000000000..1fae37614c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch
@@ -0,0 +1,50 @@
+From 06b2a6aa70616aafab780514d9d26e85bd98d965 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 25 Aug 2022 14:02:16 -0700
+Subject: [PATCH] http/fetch: Pass a non-null buffer to
+ ne_set_request_body_buffer API
+
+Newer versions of neon has added a check for non-null arguments for
+ne_set_request_body_buffer() API and this is triggered but older
+compiler only treats -Wnonnull as warning so all was fine, however gcc
+12.2 has started to throw this warning as error by default and builds
+are breaking
+
+Fixes
+src/HTTPFetch.cc:186:38: warning: null passed to a callee that requires a non-null argument [-Wnonnull]
+ ne_set_request_body_buffer(req,0,0);
+ ~ ^
+Upstream-Status: Submitted [https://github.com/metabrainz/libmusicbrainz/pull/18]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/HTTPFetch.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/HTTPFetch.cc b/src/HTTPFetch.cc
+index baec359..0c0d919 100644
+--- a/src/HTTPFetch.cc
++++ b/src/HTTPFetch.cc
+@@ -182,8 +182,10 @@ int MusicBrainz5::CHTTPFetch::Fetch(const std::string& URL, const std::string& R
+ }
+
+ ne_request *req = ne_request_create(sess, Request.c_str(), URL.c_str());
++ ne_buffer *body = ne_buffer_create();
++
+ if (Request=="PUT")
+- ne_set_request_body_buffer(req,0,0);
++ ne_set_request_body_buffer(req, body->data, ne_buffer_size(body));
+
+ if (Request!="GET")
+ ne_set_request_flag(req, NE_REQFLAG_IDEMPOTENT, 0);
+@@ -195,6 +197,8 @@ int MusicBrainz5::CHTTPFetch::Fetch(const std::string& URL, const std::string& R
+
+ Ret=m_d->m_Data.size();
+
++ ne_buffer_destroy(body);
++
+ ne_request_destroy(req);
+
+ m_d->m_ErrorMessage = ne_get_error(sess);
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
index f73b549df0..2b373d31e5 100644
--- a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
+++ b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
@@ -1,22 +1,24 @@
SUMMARY = "MusicBrainz client library"
DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. The library allows you to access the data held on the MusicBrainz server."
HOMEPAGE = "http://musicbrainz.org"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24"
DEPENDS = "expat libxml2 libxml2-native neon neon-native libmusicbrainz-native"
-PV = "5.1.0+git${SRCPV}"
+PV = "5.1.0+git"
-SRCREV = "8be45b12a86bc0e46f2f836c8ac88e1e98d82aee"
-SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git"
+SRCREV = "4655b571a70d73d41467091f59c518517c956198"
+SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git;branch=master;protocol=https \
+ file://0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch \
+ "
S = "${WORKDIR}/git"
inherit cmake pkgconfig
-EXTRA_OECMAKE_append_class-target = " -DIMPORT_EXECUTABLES=${STAGING_LIBDIR_NATIVE}/cmake/${BPN}/ImportExecutables.cmake"
+EXTRA_OECMAKE:append:class-target = " -DIMPORT_EXECUTABLES=${STAGING_LIBDIR_NATIVE}/cmake/${BPN}/ImportExecutables.cmake"
-do_install_append_class-native() {
+do_install:append:class-native() {
install -Dm 0755 ${B}/src/make-c-interface ${D}${bindir}/make-c-interface
install -Dm 0644 ${B}/ImportExecutables.cmake ${D}${libdir}/cmake/${BPN}/ImportExecutables.cmake
sed -i -e s:'${B}'/src/::g ${D}${libdir}/cmake/${BPN}/ImportExecutables.cmake
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch
deleted file mode 100644
index 4a2b25cdd9..0000000000
--- a/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- libmpd-11.8.17/src/libmpd-internal.h.orig 2014-09-30 04:08:50.963292427 +0200
-+++ libmpd-11.8.17/src/libmpd-internal.h 2014-09-30 04:08:30.595292223 +0200
-@@ -21,6 +21,7 @@
- #define __MPD_INTERNAL_LIB_
-
- #include "libmpdclient.h"
-+#include "config.h"
- struct _MpdData_real;
-
- typedef struct _MpdData_real {
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch
new file mode 100644
index 0000000000..dd50a71f7d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch
@@ -0,0 +1,27 @@
+From f0f8cc5ac6f1fa9cb5c98cb0b3688f44c64fa8ee Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Wed, 19 Jul 2017 14:22:48 +0200
+Subject: [PATCH 1/3] fix return makes integer from pointer without a cast
+
+Upstream-Status: Pending [https://github.com/archlinux/svntogit-packages/tree/packages/libmpd/trunk]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libmpd-playlist.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libmpd-playlist.c b/src/libmpd-playlist.c
+index c3c30ec..64c64ea 100644
+--- a/src/libmpd-playlist.c
++++ b/src/libmpd-playlist.c
+@@ -780,7 +780,7 @@ int mpd_playlist_load(MpdObj *mi, const char *path)
+ if(mpd_lock_conn(mi))
+ {
+ debug_printf(DEBUG_ERROR,"lock failed\n");
+- return NULL;
++ return MPD_LOCK_FAILED;
+ }
+ mpd_sendLoadCommand(mi->connection,path);
+ mpd_finishCommand(mi->connection);
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch
new file mode 100644
index 0000000000..66d921ed6d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch
@@ -0,0 +1,27 @@
+From fa3b3b3759986171a85230ba8b53764beafdb37f Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Wed, 19 Jul 2017 14:40:00 +0200
+Subject: [PATCH 2/3] fix comparison between pointer and zero character constant
+
+Upstream-Status: Pending [https://github.com/archlinux/svntogit-packages/tree/packages/libmpd/trunk]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libmpd-database.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libmpd-database.c b/src/libmpd-database.c
+index 2480d5e..edafc0a 100644
+--- a/src/libmpd-database.c
++++ b/src/libmpd-database.c
+@@ -961,7 +961,7 @@ MpdData * mpd_database_get_directory_recursive(MpdObj *mi, const char *path)
+ debug_printf(DEBUG_WARNING,"not connected\n");
+ return NULL;
+ }
+- if(path == '\0' || path[0] == '\0')
++ if(path == NULL || path[0] == '\0')
+ {
+ debug_printf(DEBUG_ERROR, "argumant invalid\n");
+ return NULL;
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch
new file mode 100644
index 0000000000..805204c0b2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch
@@ -0,0 +1,26 @@
+From 67eae4f20af9aaaf693025d95a05527a2c1fed1a Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Wed, 19 Jul 2017 14:38:43 +0200
+Subject: [PATCH 3/3] include config.h
+
+Upstream-Status: Pending [https://github.com/archlinux/svntogit-packages/tree/packages/libmpd/trunk]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libmpd-strfsong.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/libmpd-strfsong.c b/src/libmpd-strfsong.c
+index 7d47bed..76fa3ff 100644
+--- a/src/libmpd-strfsong.c
++++ b/src/libmpd-strfsong.c
+@@ -28,6 +28,7 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <glib.h>
++#include <config.h>
+ #include "libmpd.h"
+ #include "libmpd-internal.h"
+
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb b/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb
index 54d79109df..3a4b3aa1a0 100644
--- a/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb
@@ -1,13 +1,14 @@
SUMMARY = "Music Player Daemon library"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
HOMEPAGE ="http://sourceforge.net/projects/musicpd"
DEPENDS = "glib-2.0"
SRC_URI = "http://www.musicpd.org/download/${BPN}/${PV}/${BP}.tar.gz \
- file://glibc-2.20.patch \
+ file://0001-fix-return-makes-integer-from-pointer-without-a-cast.patch \
+ file://0002-fix-comparison-between-pointer-and-zero-character-co.patch \
+ file://0003-include-config.h.patch \
"
-SRC_URI[md5sum] = "5ae3d87467d52aef3345407adb0a2488"
SRC_URI[sha256sum] = "fe20326b0d10641f71c4673fae637bf9222a96e1712f71f170fca2fc34bf7a83"
inherit autotools pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.19.bb b/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb
index 32f9688eaa..2746c6bb80 100644
--- a/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.19.bb
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb
@@ -6,15 +6,15 @@ HOMEPAGE = "https://www.musicpd.org/libs/libmpdclient/"
inherit meson
SRC_URI = " \
- git://github.com/MusicPlayerDaemon/libmpdclient \
+ git://github.com/MusicPlayerDaemon/libmpdclient;branch=master;protocol=https \
"
-SRCREV = "27767959442ef390aabb16790494ba93fed962ef"
+SRCREV = "7124a0ad4841a44db084bb785a6e7120bc8f0139"
S = "${WORKDIR}/git"
PACKAGECONFIG ??= "tcp"
PACKAGECONFIG[tcp] = "-Dtcp=true,-Dtcp=false"
-do_install_append() {
+do_install:append() {
# libmpdclient's Vala bindings are outdated and unmaintained; it
# is likely that nobody will ever use them, so let's not install
# them
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpc_0.33.bb b/meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb
index dcfc3df0bf..93df25ee2f 100644
--- a/meta-multimedia/recipes-multimedia/musicpd/mpc_0.33.bb
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb
@@ -1,13 +1,13 @@
SUMMARY = "A minimalist command line interface to the Music Player Daemon"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
HOMEPAGE = "https://www.musicpd.org/clients/mpc/"
-inherit meson
+inherit meson pkgconfig
DEPENDS += "libmpdclient"
-SRC_URI = "git://github.com/MusicPlayerDaemon/mpc"
-SRCREV = "ef16b280052ef0320cb80f79d74c8ce0324005ed"
+SRC_URI = "git://github.com/MusicPlayerDaemon/mpc;branch=master;protocol=https"
+SRCREV = "31c900b79b3a1cd7f2944e92f24223d12589fdaa"
S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch
deleted file mode 100644
index 68ccb65835..0000000000
--- a/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 9bb962148672a3c20fb0119d7f71789b8ef3dc02 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 29 Jun 2021 19:31:34 -0700
-Subject: [PATCH] include <utility> for std::forward
-
-Fixes
-../git/src/Log.hxx:121:42: error: no member named 'forward' in namespace 'std'
- LogFormat(LogLevel::ERROR, e, fmt, std::forward<Args>(args)...);
-
-Upstream-Status: Submitted [https://github.com/MusicPlayerDaemon/MPD/pull/1201]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/Log.hxx | 1 +
- src/lib/expat/ExpatParser.hxx | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/src/Log.hxx b/src/Log.hxx
-index a295ed9f6..87097b086 100644
---- a/src/Log.hxx
-+++ b/src/Log.hxx
-@@ -24,6 +24,7 @@
- #include "util/Compiler.h"
-
- #include <exception>
-+#include <utility>
-
- class Domain;
-
-diff --git a/src/lib/expat/ExpatParser.hxx b/src/lib/expat/ExpatParser.hxx
-index e1723d109..4b5221e89 100644
---- a/src/lib/expat/ExpatParser.hxx
-+++ b/src/lib/expat/ExpatParser.hxx
-@@ -25,6 +25,7 @@
- #include <expat.h>
-
- #include <stdexcept>
-+#include <utility>
-
- class InputStream;
-
---
-2.32.0
-
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch
new file mode 100644
index 0000000000..b2dea331ef
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch
@@ -0,0 +1,26 @@
+From e62fd0eefe8b475e70d87a673a7216aac3bb622f Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 20 Nov 2023 17:49:59 +0100
+Subject: [PATCH] patch src_decoder_plugins_FfmpegIo.cxx
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+Upstream-Status: Pending [https://github.com/MusicPlayerDaemon/MPD/issues/1898]
+---
+ src/decoder/plugins/FfmpegIo.cxx | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/decoder/plugins/FfmpegIo.cxx b/src/decoder/plugins/FfmpegIo.cxx
+index 572f1a86a..3e2347fec 100644
+--- a/src/decoder/plugins/FfmpegIo.cxx
++++ b/src/decoder/plugins/FfmpegIo.cxx
+@@ -25,6 +25,7 @@
+ #include "input/InputStream.hxx"
+
+ extern "C" {
++#include <libavutil/error.h>
+ #include <libavutil/mem.h>
+ }
+
+--
+2.42.0
+
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb
index c112a40ce9..a762fc8322 100644
--- a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb
@@ -1,5 +1,5 @@
SUMMARY = "Music Player Daemon"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
HOMEPAGE ="http://www.musicpd.org"
@@ -15,21 +15,21 @@ DEPENDS += " \
icu \
dbus \
expat \
+ fmt \
"
-SRC_URI = " \
- git://github.com/MusicPlayerDaemon/MPD;branch=v0.22.x \
- file://0001-include-utility-for-std-forward.patch \
- file://mpd.conf.in \
-"
-SRCREV = "18628bf89ebfa5a806971479a71cf9b5764e500e"
+SRC_URI = "git://github.com/MusicPlayerDaemon/MPD;branch=master;protocol=https \
+ file://0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch \
+ file://mpd.conf.in \
+ "
+SRCREV = "feac1a3f56591ccfb00870aba66c9ac3abac4773"
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 ??= "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "aac", "", d)} \
+PACKAGECONFIG ??= "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "aac", "", d)} \
alsa ao bzip2 daemon \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "ffmpeg aac", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "ffmpeg aac", "", d)} \
fifo flac fluidsynth iso9660 \
jack libsamplerate httpd \
mms mpg123 modplug sndfile \
@@ -63,12 +63,12 @@ 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[upnp] = "-Dupnp=pupnp,-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() {
+do_install:append() {
install -o mpd -d \
${D}/${localstatedir}/lib/mpd \
${D}/${localstatedir}/lib/mpd/playlists
@@ -89,13 +89,13 @@ do_install_append() {
rm -rf ${D}${datadir}/icons
}
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "mpd.socket"
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "mpd.socket"
USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = " \
+USERADD_PARAM:${PN} = " \
--system --no-create-home \
--home ${localstatedir}/lib/mpd \
--groups audio \
diff --git a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb
index c089b64edc..d93c054f45 100644
--- a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb
+++ b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb
@@ -1,17 +1,17 @@
SUMMARY = "A curses client for the Music Player Daemon"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
HOMEPAGE = "https://www.musicpd.org/clients/ncmpc/"
-inherit meson
+inherit meson pkgconfig
DEPENDS += " \
- boost \
ncurses \
+ libpcre2 \
libmpdclient \
"
-RDEPENDS_${PN} += "python3-core"
+RDEPENDS:${PN} += "python3-core"
PACKAGECONFIG ??= "colors locale mouse nls regex help_screen library_screen search_screen song_screen key_screen lyrics_screen outputs_screen"
@@ -32,8 +32,6 @@ PACKAGECONFIG[lyrics_screen] = "-Dlyrics_screen=true,-Dlyrics_screen=false"
PACKAGECONFIG[outputs_screen] = "-Doutputs_screen=true,-Doutputs_screen=false"
PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false"
-SRC_URI = " \
- git://github.com/MusicPlayerDaemon/ncmpc \
-"
-SRCREV = "6780ec072f1d314f44ed77efdc58d03c6fbcc96b"
+SRC_URI = "git://github.com/MusicPlayerDaemon/ncmpc;branch=master;protocol=https"
+SRCREV = "f81f875fc5785383d24f54fb9bd3cf06efd915a4"
S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
index 2db30dda06..444bc1cf39 100644
--- a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
+++ b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
@@ -7,7 +7,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6"
SRCREV = "913f29d3d550637934f9abf43a097eb2c30d76fc"
-SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \
+SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master;protocol=https \
file://0001-Remove-python-venv.patch \
file://0002-dev_setup.sh-Remove-the-git-dependency.patch \
file://0003-dev_setup.sh-Remove-the-TERM-dependency.patch \
@@ -22,7 +22,7 @@ SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \
S = "${WORKDIR}/git"
-inherit systemd
+inherit systemd features_check
# Mycroft installs itself on the host
# Just copy the setup files to the rootfs
@@ -48,11 +48,11 @@ do_install() {
fi
}
-FILES_${PN} += "${libdir}/mycroft"
+FILES:${PN} += "${libdir}/mycroft"
-RDEPENDS_${PN} = "python3"
+RDEPENDS:${PN} = "python3"
-RDEPENDS_${PN} += "python3-requests python3-pillow \
+RDEPENDS:${PN} += "python3-requests python3-pillow \
python3-tornado python3-pyyaml \
python3-pyalsaaudio python3-inflection \
python3-pyserial python3-psutil \
@@ -61,7 +61,7 @@ RDEPENDS_${PN} += "python3-requests python3-pillow \
python3-xxhash python3-pako \
python3-six python3-cryptography \
python3-requests-futures \
- python3-xmlrunner python3-fasteners \
+ python3-fasteners \
python3-python-vlc \
python3-padatious python3-padaos \
python3-petact python3-precise-runner \
@@ -77,14 +77,19 @@ RDEPENDS_${PN} += "python3-requests python3-pillow \
# python3-python-dateutil python3-adapt-parser python3-lazy
# Mycroft uses Alsa, PulseAudio and Flac
-RDEPENDS_${PN} += "alsa-utils alsa-plugins alsa-tools"
-RDEPENDS_${PN} += "pulseaudio pulseaudio-misc pulseaudio-server"
-RDEPENDS_${PN} += "flac mpg123"
+RDEPENDS:${PN} += "alsa-utils alsa-plugins alsa-tools"
+RDEPENDS:${PN} += "pulseaudio pulseaudio-misc pulseaudio-server"
+RDEPENDS:${PN} += "flac mpg123"
# Mycroft can do this itself on the target, but it's quicker to do it here
-RDEPENDS_${PN} += "mimic"
+RDEPENDS:${PN} += "mimic"
# pgrep is used by stop-mycroft.sh
-RDEPENDS_${PN} += "procps"
+RDEPENDS:${PN} += "procps"
-SYSTEMD_SERVICE_${PN} = "mycroft-setup.service mycroft.service"
+# More tools needed by scripts
+RDEPENDS:${PN} += "bash jq libnotify"
+
+SYSTEMD_SERVICE:${PN} = "mycroft-setup.service mycroft.service"
+
+REQUIRED_DISTRO_FEATURES += "pulseaudio"
diff --git a/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch
new file mode 100644
index 0000000000..ac9e70a718
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch
@@ -0,0 +1,27 @@
+From 3b74181d626f7dedb47377450ca7c43457a66cda Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_L_K@t-online.de>
+Date: Sat, 1 Apr 2023 04:42:32 +0200
+Subject: [PATCH] Makefile: add clean target
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a51c2c9..fbe2aec 100644
+--- a/Makefile
++++ b/Makefile
+@@ -19,5 +19,7 @@ install: all
+ uninstall:
+ rm -rf '$(DESTDIR)$(PREFIX)/include/ffnvcodec' '$(DESTDIR)$(PREFIX)/$(LIBDIR)/pkgconfig/ffnvcodec.pc'
+
+-.PHONY: all install uninstall
++clean: uninstall
++
++.PHONY: all clean install uninstall
+
+--
+2.34.1
+
diff --git a/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb
new file mode 100644
index 0000000000..36885f29e2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "FFmpeg nvidia headers"
+HOMEPAGE = "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/include/ffnvcodec/dynlink_cuda.h;beginline=1;endline=26;md5=bb54a418154445b0aa99e15f640eacf4"
+
+SRC_URI = " \
+ git://git.videolan.org/git/ffmpeg/nv-codec-headers.git;branch=master;protocol=https \
+ file://0001-Makefile-add-clean-target.patch \
+"
+SRCREV = "1889e62e2d35ff7aa9baca2bceb14f053785e6f1"
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "PREFIX=${prefix} DESTDIR=${D} LIBDIR=${baselib}"
+
+do_install() {
+ oe_runmake install
+}
diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch b/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch
deleted file mode 100644
index 2bffd65c6e..0000000000
--- a/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 29217932c34d7e3368764ab64879dc6f1edab1a6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 14 Jan 2019 11:19:44 -0800
-Subject: [PATCH] Use host compiler to compile native tools
-
-Helps in cross compiling
-
-Upstream-Status: Inappropriate [OE-Specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- CMakeLists.txt | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1085,11 +1085,10 @@ ELSE()
- SET(BIN2H_COMMAND "${NATIVE_BIN_DIR}/bin2h")
- SET(BSINCGEN_COMMAND "${NATIVE_BIN_DIR}/bsincgen")
- ADD_CUSTOM_COMMAND(OUTPUT "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}"
-- COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" "${NATIVE_SRC_DIR}"
- COMMAND ${CMAKE_COMMAND} -E remove "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}"
-- COMMAND ${CMAKE_COMMAND} --build . --config "Release"
-+ COMMAND gcc "${NATIVE_SRC_DIR}/bin2h.c" -o "${BIN2H_COMMAND}" -lm
-+ COMMAND gcc "${NATIVE_SRC_DIR}/bsincgen.c" -o "${BSINCGEN_COMMAND}" -lm
- WORKING_DIRECTORY "${NATIVE_BIN_DIR}"
-- DEPENDS "${NATIVE_SRC_DIR}/CMakeLists.txt"
- IMPLICIT_DEPENDS
- C "${NATIVE_SRC_DIR}/bin2h.c"
- C "${NATIVE_SRC_DIR}/bsincgen.c"
diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch b/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch
deleted file mode 100644
index 607ddab8d6..0000000000
--- a/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 07ef86e33ed6f7585f0dfaa1732ea17c816655a4 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 14 Jan 2019 11:45:42 -0800
-Subject: [PATCH] makehrtf: Disable Wstringop-truncation
-
-Upstream-Status: Inappropriate [Should be fixed in code]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- utils/makemhr/makemhr.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/utils/makemhr/makemhr.cpp
-+++ b/utils/makemhr/makemhr.cpp
-@@ -161,6 +161,7 @@ enum ChannelIndex : uint {
- * pattern string are replaced with the replacement string. The result is
- * truncated if necessary.
- */
-+#pragma GCC diagnostic ignored "-Wstringop-truncation"
- static int StrSubst(const char *in, const char *pat, const char *rep, const size_t maxLen, char *out)
- {
- size_t inLen, patLen, repLen;
-@@ -199,6 +200,7 @@ static int StrSubst(const char *in, cons
- return !truncated;
- }
-
-+#pragma GCC diagnostic pop
-
- /*********************
- *** Math routines ***
diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb
deleted file mode 100644
index d283cb361b..0000000000
--- a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "OpenAL is a cross-platform 3D audio API"
-HOMEPAGE = "http://kcat.strangesoft.net/openal.html"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0f159f19f9377e1895fbb477d5a7953e"
-
-inherit cmake pkgconfig
-
-SRCREV = "f5e0eef34db3a3ab94b61a2f99f84f078ba947e7"
-SRC_URI = "git://github.com/kcat/openal-soft \
- file://0001-Use-BUILD_CC-to-compile-native-tools.patch \
- file://0002-makehrtf-Disable-Wstringop-truncation.patch \
- "
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}"
-PACKAGECONFIG[alsa] = "-DALSA=TRUE, -DALSA=FALSE, alsa-lib"
-PACKAGECONFIG[pulseaudio] = "-DPULSEAUDIO=TRUE, -DPULSEAUDIO=FALSE, pulseaudio"
-# currently doesn't work with libav-9
-# PKG_CHECK_MODULES(FFMPEG libavcodec>=53.61.100 libavformat>=53.32.100 libavutil>=51.35.100)
-# but alffmpeg.c:418:44: error: 'AV_CH_LAYOUT_MONO' undeclared (first use in this function)
-PACKAGECONFIG[examples] = "-DEXAMPLES=TRUE, -DEXAMPLES=FALSE, libav"
-
-FILES_${PN} += "${datadir}/openal"
diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb
new file mode 100644
index 0000000000..83745703f5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "OpenAL is a cross-platform 3D audio API"
+HOMEPAGE = "http://kcat.strangesoft.net/openal.html"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0f159f19f9377e1895fbb477d5a7953e"
+
+inherit cmake pkgconfig
+
+DEPENDS = "zlib libsndfile1"
+
+SRCREV = "d3875f333fb6abe2f39d82caca329414871ae53b"
+SRC_URI = "git://github.com/kcat/openal-soft.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pipewire pulseaudio', d)}"
+PACKAGECONFIG[alsa] = "-DALSOFT_BACKEND_ALSA=ON,-DALSOFT_BACKEND_ALSA=OFF,alsa-lib"
+PACKAGECONFIG[oss] = "-DALSOFT_BACKEND_OSS=ON,-DALSOFT_BACKEND_OSS=OFF"
+PACKAGECONFIG[pulseaudio] = "-DALSOFT_BACKEND_PULSEAUDIO=ON,-DALSOFT_BACKEND_PULSEAUDIO=OFF,pulseaudio"
+PACKAGECONFIG[pipewire] = "-DALSOFT_BACKEND_PIPEWIRE=ON,-DALSOFT_BACKEND_PIPEWIRE=OFF,pipewire"
+PACKAGECONFIG[examples] = "-DALSOFT_EXAMPLES=ON,-DALSOFT_EXAMPLES=OFF"
+PACKAGECONFIG[sdl2] = "-DALSOFT_BACKEND_SDL2=ON,-DALSOFT_BACKEND_SDL2=OFF,libsdl2 ffmpeg"
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb b/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.6.bb
index ab5813ebe9..be7977308b 100644
--- a/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb
+++ b/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.6.bb
@@ -4,10 +4,10 @@ SECTION = "libs"
LICENSE = "Apache-2.0"
LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dd2c2486aca02190153cf399e508c7e7"
SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz"
-SRC_URI[md5sum] = "09d2c5dfb43a9f6e9fec8b1ae678e725"
-SRC_URI[sha256sum] = "106bf811c1f36444d7671d8fd2589f8b2e0cca58a2c764da62ffc4a070595385"
+SRC_URI[md5sum] = "03de025060a4f16c4c44218f65e13e95"
+SRC_URI[sha256sum] = "483eb4061088e2b34b358e47540b5d495a96cd468e361050fae615b1809dc4a1"
inherit autotools
diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch b/meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch
new file mode 100644
index 0000000000..298ac1c013
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch
@@ -0,0 +1,103 @@
+From bc3a3baeaccfe9c1286848b348baf92dfbd05346 Mon Sep 17 00:00:00 2001
+From: Benjamin Bara <benjamin.bara@skidata.com>
+Date: Thu, 31 Aug 2023 09:27:31 +0200
+Subject: [PATCH 2/2] Makefile: add possibility to disable NEON extension
+
+README states that the NEON extension is optional. However, currently it
+cannot be turned off, therefore add an option to disable it.
+
+Upstream-Status: Submitted [https://github.com/cisco/openh264/pull/3679]
+Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>
+---
+ Makefile | 1 +
+ build/arch.mk | 4 ++++
+ build/msvc-common.mk | 10 ++++++++--
+ build/platform-mingw_nt.mk | 5 ++++-
+ 4 files changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index baed53a7..cc22c4aa 100644
+--- a/Makefile
++++ b/Makefile
+@@ -35,6 +35,7 @@ CCASFLAGS=$(CFLAGS)
+ STATIC_LDFLAGS=-lstdc++
+ STRIP ?= strip
+ USE_STACK_PROTECTOR = Yes
++USE_NEON=Yes
+
+ SHAREDLIB_MAJORVERSION=7
+ FULL_VERSION := 2.3.1
+diff --git a/build/arch.mk b/build/arch.mk
+index 4e1538c4..fd6a81e4 100644
+--- a/build/arch.mk
++++ b/build/arch.mk
+@@ -17,18 +17,22 @@ ifneq ($(filter-out arm64 arm64e, $(filter arm%, $(ARCH))),)
+ ifeq ($(USE_ASM), Yes)
+ ASM_ARCH = arm
+ ASMFLAGS += -I$(SRC_PATH)codec/common/arm/
++ifeq ($(USE_NEON), Yes)
+ CFLAGS += -DHAVE_NEON
+ endif
+ endif
++endif
+
+ #for arm64
+ ifneq ($(filter arm64 aarch64 arm64e, $(ARCH)),)
+ ifeq ($(USE_ASM), Yes)
+ ASM_ARCH = arm64
+ ASMFLAGS += -I$(SRC_PATH)codec/common/arm64/
++ifeq ($(USE_NEON), Yes)
+ CFLAGS += -DHAVE_NEON_AARCH64
+ endif
+ endif
++endif
+
+ #for mips
+ ifneq ($(filter mips mips64, $(ARCH)),)
+diff --git a/build/msvc-common.mk b/build/msvc-common.mk
+index 5891ea4e..5a1e2582 100644
+--- a/build/msvc-common.mk
++++ b/build/msvc-common.mk
+@@ -10,7 +10,10 @@ else
+ endif
+ ifeq ($(ASM_ARCH), arm)
+ CCAS = gas-preprocessor.pl -as-type armasm -force-thumb -- armasm
+-CCASFLAGS = -nologo -DHAVE_NEON -ignore 4509
++CCASFLAGS = -nologo -ignore 4509
++ifeq ($(USE_NEON), Yes)
++CCASFLAGS += -DHAVE_NEON
++endif
+ endif
+
+ CC=cl
+@@ -20,7 +23,10 @@ CXX_O=-Fo$@
+
+ ifeq ($(ASM_ARCH), arm64)
+ CCAS = clang-cl
+-CCASFLAGS = -nologo -DHAVE_NEON_AARCH64 --target=arm64-windows
++CCASFLAGS = -nologo --target=arm64-windows
++ifeq ($(USE_NEON), Yes)
++CCASFLAGS += -DHAVE_NEON_AARCH64
++endif
+ endif
+
+
+diff --git a/build/platform-mingw_nt.mk b/build/platform-mingw_nt.mk
+index b7a5495d..d73e362a 100644
+--- a/build/platform-mingw_nt.mk
++++ b/build/platform-mingw_nt.mk
+@@ -17,7 +17,10 @@ endif
+ endif
+ ifeq ($(ASM_ARCH), arm)
+ CCAS = gas-preprocessor.pl -as-type clang -force-thumb -- $(CC)
+-CCASFLAGS = -DHAVE_NEON -mimplicit-it=always
++CCASFLAGS = -mimplicit-it=always
++ifeq ($(USE_NEON), Yes)
++CCASFLAGS += -DHAVE_NEON
++endif
+ endif
+ EXEEXT = .exe
+
+--
+2.34.1
+
diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb b/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb
deleted file mode 100644
index 75d5010f18..0000000000
--- a/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-DESCRIPTION = "OpenH264 is a codec library which supports H.264 encoding and \
-decoding. It is suitable for use in real time applications such as WebRTC."
-HOMEPAGE = "http://www.openh264.org/"
-SECTION = "libs/multimedia"
-
-DEPENDS_append_x86 = " nasm-native"
-DEPENDS_append_x86-64 = " nasm-native"
-
-LICENSE = "BSD-2-Clause"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf"
-
-S = "${WORKDIR}/git"
-SRCREV = "50a1fcf70fafe962c526749991cb4646406933ba"
-BRANCH = "openh264v2.1.1"
-SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH} \
- file://0001-Makefile-Use-cp-options-to-preserve-file-mode.patch \
- "
-
-COMPATIBLE_MACHINE_armv7a = "(.*)"
-COMPATIBLE_MACHINE_aarch64 = "(.*)"
-COMPATIBLE_MACHINE_x86 = "(.*)"
-COMPATIBLE_MACHINE_x86-64 = "(.*)"
-COMPATIBLE_MACHINE_mips = "(.*)"
-COMPATIBLE_MACHINE_mips64 = "(.*)"
-COMPATIBLE_MACHINE_powerpc64le = "null"
-
-EXTRA_OEMAKE_armv7a = "ARCH=arm"
-EXTRA_OEMAKE_armv7ve = "ARCH=arm"
-EXTRA_OEMAKE_aarch64 = "ARCH=arm64"
-EXTRA_OEMAKE_x86 = "ARCH=i386"
-EXTRA_OEMAKE_x86-64 = "ARCH=x86_64"
-EXTRA_OEMAKE_mips = "ARCH=mips"
-EXTRA_OEMAKE_mips64 = "ARCH=mips64"
-EXTRA_OEMAKE_riscv64 = "ARCH=riscv64"
-
-EXTRA_OEMAKE_append = " ENABLEPIC=Yes"
-do_configure() {
- :
-}
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} PREFIX=${prefix}
-}
-
-CLEANBROKEN = "1"
diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb b/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb
new file mode 100644
index 0000000000..6dfd759355
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Open Source H.264 Codec"
+DESCRIPTION = "OpenH264 is a codec library which supports H.264 encoding and \
+decoding. It is suitable for use in real time applications such as WebRTC."
+HOMEPAGE = "http://www.openh264.org/"
+SECTION = "libs/multimedia"
+
+DEPENDS:append:x86 = " nasm-native"
+DEPENDS:append:x86-64 = " nasm-native"
+
+LICENSE = "BSD-2-Clause"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf"
+
+S = "${WORKDIR}/git"
+SRCREV = "0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e"
+BRANCH = "openh264v${PV}"
+SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH} \
+ file://0001-Makefile-Use-cp-options-to-preserve-file-mode.patch \
+ file://0002-Makefile-add-possibility-to-disable-NEON-extension.patch \
+ "
+
+COMPATIBLE_MACHINE:armv7a = "(.*)"
+COMPATIBLE_MACHINE:aarch64 = "(.*)"
+COMPATIBLE_MACHINE:x86 = "(.*)"
+COMPATIBLE_MACHINE:x86-64 = "(.*)"
+COMPATIBLE_MACHINE:mips = "(.*)"
+COMPATIBLE_MACHINE:mips64 = "(.*)"
+COMPATIBLE_MACHINE:powerpc64le = "null"
+
+EXTRA_OEMAKE:armv7a = "ARCH=arm"
+EXTRA_OEMAKE:armv7ve = "ARCH=arm"
+EXTRA_OEMAKE:aarch64 = "ARCH=arm64"
+EXTRA_OEMAKE:x86 = "ARCH=i386"
+EXTRA_OEMAKE:x86-64 = "ARCH=x86_64"
+EXTRA_OEMAKE:mips = "ARCH=mips"
+EXTRA_OEMAKE:mips64 = "ARCH=mips64"
+EXTRA_OEMAKE:riscv64 = "ARCH=riscv64"
+
+EXTRA_OEMAKE:append:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon",""," USE_NEON=No",d)}"
+EXTRA_OEMAKE:append:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon",""," USE_NEON=No",d)}"
+
+EXTRA_OEMAKE:append = " ENABLEPIC=Yes"
+do_configure() {
+ :
+}
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} PREFIX=${prefix} LIBDIR_NAME=${baselib} SHAREDLIB_DIR=${libdir}
+}
+
+CLEANBROKEN = "1"
diff --git a/meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb b/meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb
new file mode 100644
index 0000000000..b76c5ba01d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Opus Audio Tools"
+HOMEPAGE = "http://www.opus-codec.org/"
+
+LICENSE = "BSD-2-Clause & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=79f6fc2a6239fbe5f6e52f20ac76698c"
+
+SRC_URI = "http://downloads.xiph.org/releases/opus/opus-tools-${PV}.tar.gz"
+SRC_URI[md5sum] = "ff2d0536e960cabbfb8ca7c8c1759b6c"
+SRC_URI[sha256sum] = "b4e56cb00d3e509acfba9a9b627ffd8273b876b4e2408642259f6da28fa0ff86"
+
+S = "${WORKDIR}/opus-tools-${PV}"
+
+DEPENDS = "libopus libopusenc flac opusfile"
+
+inherit autotools pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
index 0601cdd99b..672c8abc9a 100644
--- a/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
+++ b/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
@@ -11,7 +11,7 @@ PACKAGES = ' \
packagegroup-meta-multimedia-support \
'
-RDEPENDS_packagegroup-meta-multimedia = "\
+RDEPENDS:packagegroup-meta-multimedia = "\
packagegroup-meta-multimedia \
packagegroup-meta-multimedia-connectivity \
packagegroup-meta-multimedia-dvb \
@@ -19,90 +19,59 @@ RDEPENDS_packagegroup-meta-multimedia = "\
packagegroup-meta-multimedia-support \
"
-RDEPENDS_packagegroup-meta-multimedia = "\
+RDEPENDS:packagegroup-meta-multimedia = "\
alsa-equal \
aom \
+ bluealsa \
caps \
cdparanoia \
- dcadec \
- dleyna-connector-dbus \
- dleyna-core \
- dleyna-renderer \
- dleyna-server \
dvb-apps \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "faac fdk-aac mpd", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "faac mpd", "", d)} \
gerbera \
- libao \
libavc1394 \
- libdc1394 \
- libdvbpsi \
- libdvdnav \
libiec61883 \
- fluidsynth \
libmusicbrainz \
- libmpdclient \
mpc \
ncmpc \
- libmpd \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "opencore-amr vo-aacenc vo-amrwbenc", "", d)} \
- gst-shark \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "opencore-amr", "", d)} \
gstd \
rtmpdump \
bigbuckbunny-1080p \
bigbuckbunny-480p \
bigbuckbunny-720p \
tearsofsteel-1080p \
- schroedinger \
pipewire \
- ${@bb.utils.contains("DISTRO_FEATURES", "x11", "projucer", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "projucer", "", d), "", d)} \
libcamera \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libde265 openh264", "", d)} \
vorbis-tools \
- libdvbcsa \
libopenmpt \
- libuvc \
mimic \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "minidlna", "", d)} \
- mycroft \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "minidlna", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pulseaudio", "mycroft", "", d)} \
openal-soft \
opusfile \
- libdvdcss \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "vlc", "", d), "", d)} \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "sox streamripper", "", d)} \
+ opus-tools \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "vlc", "", d), "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "sox streamripper", "", d)} \
tinyalsa \
- tremor \
- webrtc-audio-processing \
- ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "x265", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 i686 x86-64", "x265", "", d), "", d)} \
"
-RDEPENDS_packagegroup-meta-multimedia_remove_libc-musl = "projucer"
-RDEPENDS_packagegroup-meta-multimedia_remove_powerpc64le = "openh264"
+RDEPENDS:packagegroup-meta-multimedia:remove:libc-musl = "projucer"
-RDEPENDS_packagegroup-meta-multimedia-connectivity = "\
- gssdp \
- gupnp-av \
+RDEPENDS:packagegroup-meta-multimedia-connectivity = "\
gupnp-dlna \
- gupnp-igd \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "gupnp-tools", "", d)} \
- gupnp \
libupnp \
- ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "rygel", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "rygel", "", d), "", d)} \
"
-RDEPENDS_packagegroup-meta-multimedia-dvb = "\
+RDEPENDS:packagegroup-meta-multimedia-dvb = "\
oscam \
tvheadend \
"
-RDEPENDS_packagegroup-meta-multimedia-mkv = "\
- libebml \
- libmatroska \
-"
-
-RDEPENDS_packagegroup-meta-multimedia-support = "\
+RDEPENDS:packagegroup-meta-multimedia-support = "\
crossguid \
- ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "libmediaart-2.0", "", d)} \
gst-instruments \
- libsrtp \
- srt \
"
# devel headers/libraries only packages
# libsquish
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 bcb3015f8b..9895e89761 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,7 @@ DEPENDS = "alsa-lib dbus udev"
SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d"
PV = "0.2.7"
-SRC_URI = "git://github.com/PipeWire/pipewire"
+SRC_URI = "git://github.com/PipeWire/pipewire;branch=master;protocol=https"
S = "${WORKDIR}/git"
@@ -35,31 +34,31 @@ PACKAGES =+ "\
lib${PN}-modules \
"
-RDEPENDS_lib${PN} += "lib${PN}-modules ${PN}-spa-plugins"
+RDEPENDS:lib${PN} += "lib${PN}-modules ${PN}-spa-plugins"
-FILES_${PN} = "\
+FILES:${PN} = "\
${sysconfdir}/pipewire/pipewire.conf \
${bindir}/pipewire* \
${systemd_user_unitdir}/* \
"
-FILES_lib${PN} = "\
+FILES:lib${PN} = "\
${libdir}/libpipewire-*.so.* \
"
-FILES_lib${PN}-modules = "\
+FILES:lib${PN}-modules = "\
${libdir}/pipewire-*/* \
"
-FILES_${PN}-spa-plugins = "\
+FILES:${PN}-spa-plugins = "\
${bindir}/spa-* \
${libdir}/spa/* \
"
-FILES_${PN}-alsa = "\
+FILES:${PN}-alsa = "\
${libdir}/alsa-lib/* \
${datadir}/alsa/alsa.conf.d/50-pipewire.conf \
"
-FILES_gstreamer1.0-${PN} = "\
+FILES:gstreamer1.0-${PN} = "\
${libdir}/gstreamer-1.0/* \
"
-CONFFILES_${PN} = "\
+CONFFILES:${PN} = "\
${sysconfdir}/pipewire/pipewire.conf \
"
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.31.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.31.bb
deleted file mode 100644
index 3e8792118c..0000000000
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.31.bb
+++ /dev/null
@@ -1,285 +0,0 @@
-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 & LGPL-2.1-or-later & GPL-2.0-only"
-LIC_FILES_CHKSUM = " \
- file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \
- file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \
-"
-SECTION = "multimedia"
-
-DEPENDS = "dbus"
-
-SRCREV = "c43dabcc96e2e072cdf08e5f094bb677d9017c6b"
-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.
-#
-# manpage generation requires xmltoman, which is not available.
-EXTRA_OEMESON += " \
- -Daudiotestsrc=enabled \
- -Devl=disabled \
- -Dsystemd-user-service=disabled \
- -Dtests=disabled \
- -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \
- -Dvideotestsrc=enabled \
- -Dffmpeg=disabled \
- -Dvulkan=disabled \
- -Dlibcamera=disabled \
- -Dman=disabled \
-"
-
-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=enabled,-Dalsa=disabled,alsa-lib udev"
-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[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack"
-PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2"
-PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
-PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd-system-service=enabled ,-Dsystemd=disabled -Dsystemd-system-service=disabled,systemd"
-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"
-
-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}${datadir}/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} += "${datadir}/pipewire/pipewire.conf"
-FILES_${PN} = " \
- ${datadir}/pipewire/pipewire.conf \
- ${systemd_user_unitdir}/pipewire.* \
- ${bindir}/pipewire \
-"
-
-FILES_${PN}-dev += " \
- ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \
-"
-
-CONFFILES_libpipewire += "${datadir}/pipewire/client.conf"
-FILES_libpipewire = " \
- ${datadir}/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 += "${datadir}/pipewire/pipewire-pulse.conf"
-FILES_${PN}-pulse = " \
- ${datadir}/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 = "${datadir}/pipewire/jack.conf"
-FILES_${PN}-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 = "pipewire-media-session.service"
-FILES_${PN}-media-session = " \
- ${bindir}/pipewire-media-session \
- ${datadir}/pipewire/media-session.d/* \
- ${systemd_system_unitdir}/pipewire-media-session.service \
-"
-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 = "${datadir}/pipewire/client-rt.conf"
-FILES_${PN}-modules-rtkit += " \
- ${datadir}/pipewire/client-rt.conf \
- "
-
-CONFFILES_${PN}-modules-filter-chain = "${datadir}/pipewire/filter-chain/*"
-FILES_${PN}-modules-filter-chain += " \
- ${datadir}/pipewire/filter-chain/* \
-"
-
-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-multimedia/recipes-multimedia/pipewire/pipewire_1.0.5.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.5.bb
new file mode 100644
index 0000000000..c8ac04d59a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.5.bb
@@ -0,0 +1,388 @@
+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"
+SECTION = "multimedia"
+
+LICENSE = "MIT & LGPL-2.1-or-later & GPL-2.0-only"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \
+ file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \
+"
+
+DEPENDS = "dbus ncurses"
+
+SRCREV = "a2287be601710eea0d073261223ec34b92384c8a"
+SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=1.0;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd 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"
+
+SYSTEMD_PACKAGES = "${PN}"
+
+# For "EVL", look up https://evlproject.org/ . It involves
+# a specially prepared kernel, and is currently unavailable
+# in Yocto.
+#
+#
+# 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 += " \
+ -Devl=disabled \
+ -Dtests=disabled \
+ -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \
+ -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 \
+"
+
+# 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,
+# 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=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[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[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
+# 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[udev] = "-Dudev=enabled,-Dudev=disabled,udev"
+PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev"
+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 "
+
+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}${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"
+
+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
+
+ 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.
+
+ 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}-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 \
+ ${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 += " \
+ ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \
+"
+
+CONFFILES:libpipewire += "${datadir}/pipewire/client.conf"
+FILES:libpipewire = " \
+ ${datadir}/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-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
+# drop-in PulseAudio replacement, providing a pulseaudio-compatible
+# socket that can be used by applications that use libpulse.
+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 \
+"
+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 = "${datadir}/pipewire/jack.conf"
+FILES:${PN}-jack = "\
+ ${bindir}/pw-jack \
+ ${datadir}/pipewire/jack.conf \
+ ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \
+"
+
+# 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 PipeWire module packages (see set_dynamic_metapkg_rdepends).
+FILES:${PN}-modules = ""
+RRECOMMENDS:${PN}-modules += "${PN}-modules-meta"
+
+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/*"
+FILES:${PN}-modules-filter-chain += " \
+ ${datadir}/pipewire/filter-chain/* \
+"
+
+FILES:${PN}-alsa-card-profile = " \
+ ${datadir}/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"
diff --git a/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
index 5f78be4f51..aa92c58808 100644
--- a/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
+++ b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
@@ -2,14 +2,14 @@ SUMMARY = "RTMP Dump"
DESCRIPTION = "rtmpdump is a toolkit for RTMP streams. All forms of RTMP are \
supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://."
HOMEPAGE = "http://rtmpdump.mplayerhq.hu/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
DEPENDS = "gnutls zlib"
SRCREV = "fa8646daeb19dfd12c181f7d19de708d623704c0"
SRC_URI = " \
- git://git.ffmpeg.org/rtmpdump \
+ git://git.ffmpeg.org/rtmpdump;branch=master \
file://fix-racing-build-issue.patch"
S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb
index 70eb6e4be7..cb919d79e3 100644
--- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb
+++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb
@@ -3,7 +3,7 @@ LICENSE = "CC-BY-3.0"
# http://www.bigbuckbunny.org/index.php/about/
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
-SRC_URI = "http://themazzone.com/big_buck_bunny_1080p_surround.avi"
+SRC_URI = "http://www.peach.themazzone.com/big_buck_bunny_1080p_surround.avi"
SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a"
SRC_URI[sha256sum] = "69fe2cfe7154a6e752688e3a0d7d6b07b1605bbaf75b56f6470dc7b4c20c06ea"
@@ -14,4 +14,4 @@ do_install() {
install -m 0644 ${WORKDIR}/big_buck_bunny_1080p_surround.avi ${D}${datadir}/movies/
}
-FILES_${PN} += "${datadir}/movies"
+FILES:${PN} += "${datadir}/movies"
diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb
index df23689960..40dc2aacb5 100644
--- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb
+++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb
@@ -14,4 +14,4 @@ do_install() {
install -m 0644 ${WORKDIR}/big_buck_bunny_480p_surround-fix.avi ${D}${datadir}/movies/
}
-FILES_${PN} += "${datadir}/movies"
+FILES:${PN} += "${datadir}/movies"
diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb
index cb8ece0cb1..ed1d027b40 100644
--- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb
+++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb
@@ -14,4 +14,4 @@ do_install() {
install -m 0644 ${WORKDIR}/big_buck_bunny_720p_surround.avi ${D}${datadir}/movies/
}
-FILES_${PN} += "${datadir}/movies"
+FILES:${PN} += "${datadir}/movies"
diff --git a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb
index 04cbd2e34d..78f15f143f 100644
--- a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb
+++ b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb
@@ -13,4 +13,4 @@ do_install() {
install -m 0644 ${WORKDIR}/ToS-4k-1920.mov ${D}${datadir}/movies/
}
-FILES_${PN} += "${datadir}/movies"
+FILES:${PN} += "${datadir}/movies"
diff --git a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch
new file mode 100644
index 0000000000..498630c638
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch
@@ -0,0 +1,43 @@
+From 7c998657c1787fcad8f0a502063adff71d78a140 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 12 Jun 2023 09:37:10 -0700
+Subject: [PATCH] testsuite: Add tmp-orc.c for missing
+ _orc_code_orc_deinterleave2_s16
+
+Fixes
+| aarch64-yoe-linux-ld.lld: error: undefined symbol: _orc_code_orc_deinterleave2_s16
+| >>> referenced by schroorc.h:1312 (../schroedinger/schroorc.h:1312)
+| >>> wavelet_max_gain.o:(iwt_ref)
+| >>> referenced by schroorc.h:1312 (../schroedinger/schroorc.h:1312)
+| >>> wavelet_max_gain.o:(iwt_ref)
+|
+| aarch64-yoe-linux-ld.lld: error: undefined symbol: _orc_code_orc_interleave2_s16
+| >>> referenced by wavelet_max_gain.c:281 (/usr/src/debug/schroedinger/1.0.11-r0/testsuite/wavelet_max_gain.c:281)
+| >>> wavelet_max_gain.o:(iiwt_ref)
+| >>> referenced by wavelet_max_gain.c:281 (/usr/src/debug/schroedinger/1.0.11-r0/testsuite/wavelet_max_gain.c:281)
+| >>> wavelet_max_gain.o:(iiwt_ref)
+| clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
+| make[3]: *** [Makefile:1147: wavelet_max_gain] Error 1
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ testsuite/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
+index 6ee1130..762ecf2 100644
+--- a/testsuite/Makefile.am
++++ b/testsuite/Makefile.am
+@@ -100,6 +100,7 @@ wavelet_2d_SOURCES = wavelet_2d.c
+ nodist_wavelet_2d_SOURCES = $(top_srcdir)/schroedinger/tmp-orc.c
+
+ wavelet_max_gain_SOURCES = wavelet_max_gain.c
++nodist_wavelet_max_gain_SOURCES = $(top_srcdir)/schroedinger/tmp-orc.c
+
+ wavelet_noise_2d_SOURCES = wavelet_noise_2d.c
+
+--
+2.41.0
+
diff --git a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
index 2f1fda341e..e8f6df6348 100644
--- a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
+++ b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
@@ -1,6 +1,6 @@
SUMMARY = "Dirac compressed video encoder/decoder"
HOMEPAGE = "http://schrodinger.sourceforge.net/"
-LICENSE = "MPL-1.1 | GPLv2 | LGPLv2 | MIT"
+LICENSE = "MPL-1.1 | GPL-2.0-only | LGPL-2.0-only | MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \
file://COPYING.GPL;md5=e181e3b7c66f5f96921d813c1074f833 \
@@ -11,6 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \
DEPENDS = "orc-native orc"
SRC_URI = "https://download.videolan.org/contrib/${BPN}/${BP}.tar.gz \
+ file://0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch \
file://configure.ac.patch"
SRC_URI[md5sum] = "da6af08e564ca1157348fb8d92efc891"
@@ -18,5 +19,5 @@ SRC_URI[sha256sum] = "1e572a0735b92aca5746c4528f9bebd35aa0ccf8619b22fa2756137a8c
EXTRA_OECONF += "STAGING_DIR=${STAGING_DIR_NATIVE}"
-inherit autotools-brokensep pkgconfig
+inherit autotools-brokensep pkgconfig gtk-doc
diff --git a/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch b/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch
index 4f02a66fcc..3085bd495c 100644
--- a/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch
+++ b/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch
@@ -1,11 +1,11 @@
From d0313be5fb947df399a4db24a5f9244510d2ce87 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 12 Jul 2017 16:36:06 -0700
-Subject: [PATCH] remove the #error line and live without file-type detection
- with pipes
+Subject: [PATCH] remove the #error line and live without file-type detection with pipes
this fallback is executed with musl
+Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/formats.c | 1 -
diff --git a/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb b/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb
index 2d6e913d87..011cbc2a9d 100644
--- a/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb
+++ b/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb
@@ -4,7 +4,7 @@ and can apply different effects and filters to the audio data."
HOMEPAGE = "http://sox.sourceforge.net"
SECTION = "audio"
-DEPENDS = "libpng ffmpeg libsndfile1"
+DEPENDS = "libpng libsndfile1 libtool"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \
magic \
@@ -23,7 +23,7 @@ PACKAGECONFIG[id3tag] = "--with-id3tag,--without-id3tag,libid3tag,"
PACKAGECONFIG[lame] = "--with-lame,--without-lame,lame,"
PACKAGECONFIG[ao] = "--with-ao,--without-ao,libao,"
-LICENSE = "GPLv2 & LGPLv2.1"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe \
file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24"
@@ -36,4 +36,7 @@ SRC_URI[sha256sum] = "b45f598643ffbd8e363ff24d61166ccec4836fea6d3888881b8df53e3b
inherit autotools pkgconfig
-EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "0", "1", d)}"
+# Enable largefile support
+CFLAGS += "-D_FILE_OFFSET_BITS=64"
+
+EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch
new file mode 100644
index 0000000000..af504be766
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch
@@ -0,0 +1,56 @@
+From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de>
+Date: Thu, 14 Mar 2024 09:41:57 +0100
+Subject: [PATCH 2/2] configure: Replace manual search for libxml by
+ AC_CHECK_LIB
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The manual search fails if the include directories (and build environment)
+are located somewhere else.
+
+Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de>
+Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74]
+---
+
+ERROR: spandsp-3.0.0+git-r0 do_configure: QA Issue: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities.
+
+ configure.ac | 22 +++++-----------------
+ 1 file changed, 5 insertions(+), 17 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2140837..b5138d6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -185,23 +185,11 @@ then
+ fi
+
+ # Determine XML2 include path
+-AC_MSG_CHECKING(for libxml/xmlmemory.h)
+-
+-# Can we include headers using system include dirs?
+-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE=" "],[XML2_INCLUDE=])
+-
+-# Hunt through several possible directories to find the includes for libxml2
+-if test "x$XML2_INCLUDE" = "x"; then
+- old_CPPFLAGS="$CPPFLAGS"
+- for i in $xml2_include_dir /usr/include /usr/local/include /usr/include/libxml2 /usr/local/include/libxml2 ; do
+- CPPFLAGS="$old_CPPFLAGS -I$i"
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE="-I$i"],[XML2_INCLUDE=
+- ])
+- if test "x$XML2_INCLUDE" != "x"; then
+- break;
+- fi
+- done
+- CPPFLAGS="$old_CPPFLAGS $XML2_INCLUDE"
++AC_CHECK_LIB([xml2], [xmlParseFile], [libxml2_found=yes])
++if test "$libxml2_found" = "yes" ; then
++ AC_DEFINE(HAVE_LIBXML2,1,[defined when libxml2 is available])
++else
++ AC_MSG_WARN([libxml2 not found. Disabling cache.])
+ fi
+
+ AC_CHECK_HEADERS([libxml/xmlmemory.h])
+--
+2.34.1
+
diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch
new file mode 100644
index 0000000000..d3eb047fe5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch
@@ -0,0 +1,161 @@
+From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de>
+Date: Thu, 14 Mar 2024 08:08:13 +0100
+Subject: [PATCH 1/2] configure: Use AX_PROG_CC_FOR_BUILD for cross compiling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The macro AX_PROG_CC_FOR_BUILD [1] sets the variables CC_FOR_BUILD and
+..._FLAGS_FOR_BUILD they can be used [2] to build binaries used at compile
+time.
+
+[1]: https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
+[2]: https://stackoverflow.com/questions/24201260/autotools-cross-compilation-and-generated-sources/24208587#24208587
+
+Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de>
+Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74]
+---
+ configure.ac | 49 +-------------------------------------------
+ src/Makefile.am | 54 +++++++++++++++++++++++++------------------------
+ 2 files changed, 29 insertions(+), 74 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 96fd022..2140837 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,54 +55,7 @@ AC_LANG([C])
+
+ AX_COMPILER_VENDOR
+
+-if test "${build}" != "${host}"
+-then
+- # If we are doing a Canadian Cross, in which the host and build systems
+- # are not the same, we set reasonable default values for the tools.
+-
+- CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
+- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)"
+- CC=${CC-${host_alias}-gcc}
+- CFLAGS=${CFLAGS-"-g -O2"}
+- CXX=${CXX-${host_alias}-c++}
+- CXXFLAGS=${CXXFLAGS-"-g -O2"}
+-else
+- # Set reasonable default values for some tools even if not Canadian.
+- # Of course, these are different reasonable default values, originally
+- # specified directly in the Makefile.
+- # We don't export, so that autoconf can do its job.
+- # Note that all these settings are above the fragment inclusion point
+- # in Makefile.in, so can still be overridden by fragments.
+- # This is all going to change when we autoconfiscate...
+- CC_FOR_BUILD="\$(CC)"
+- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)"
+- AC_PROG_CC
+-
+- # We must set the default linker to the linker used by gcc for the correct
+- # operation of libtool. If LD is not defined and we are using gcc, try to
+- # set the LD default to the ld used by gcc.
+- if test -z "$LD"
+- then
+- if test "$GCC" = yes
+- then
+- case $build in
+- *-*-mingw*)
+- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
+- *)
+- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
+- esac
+- case $gcc_prog_ld in
+- # Accept absolute paths.
+- [[\\/]* | [A-Za-z]:[\\/]*)]
+- LD="$gcc_prog_ld" ;;
+- esac
+- fi
+- fi
+-
+- CXX=${CXX-"c++"}
+- CFLAGS=${CFLAGS-"-g -O2"}
+- CXXFLAGS=${CXXFLAGS-"-g -O2"}
+-fi
++AX_PROG_CC_FOR_BUILD
+
+ AC_DEFUN([REMOVE_FROM_VAR],[
+ new_val=""
+diff --git a/src/Makefile.am b/src/Makefile.am
+index e05fad5..9b409a1 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -386,44 +386,46 @@ noinst_HEADERS = cielab_luts.h \
+ v34_tx_pre_emphasis_filters.h \
+ v34_tables.h
+
+-make_at_dictionary$(EXEEXT): $(top_srcdir)/src/make_at_dictionary.c
+- $(CC_FOR_BUILD) -o make_at_dictionary$(EXEEXT) $(top_srcdir)/src/make_at_dictionary.c -DHAVE_CONFIG_H -I$(top_builddir)/src
++LINK_FOR_BUILD.c = $(CC_FOR_BUILD) -DHAVE_CONFIG_H -I$(top_builddir)/src $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(TARGET_ARCH_FOR_BUILD)
+
+-make_cielab_luts$(EXEEXT): $(top_srcdir)/src/make_cielab_luts.c
+- $(CC_FOR_BUILD) -o make_cielab_luts$(EXEEXT) $(top_srcdir)/src/make_cielab_luts.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_at_dictionary$(BUILD_EXEEXT): $(top_srcdir)/src/make_at_dictionary.c
++ $(LINK_FOR_BUILD.c) -o $@ $^
+
+-make_math_fixed_tables$(EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c
+- $(CC_FOR_BUILD) -o make_math_fixed_tables$(EXEEXT) $(top_srcdir)/src/make_math_fixed_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_cielab_luts$(BUILD_EXEEXT): $(top_srcdir)/src/make_cielab_luts.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_modem_filter$(EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c
+- $(CC_FOR_BUILD) -o make_modem_filter$(EXEEXT) $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_math_fixed_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_modem_godard_coefficients$(EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c
+- $(CC_FOR_BUILD) -o make_modem_godard_coefficients$(EXEEXT) $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_modem_filter$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_t43_gray_code_tables$(EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c
+- $(CC_FOR_BUILD) -o make_t43_gray_code_tables$(EXEEXT) $(top_srcdir)/src/make_t43_gray_code_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_modem_godard_coefficients$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v17_v32_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
+- $(CC_FOR_BUILD) -o make_v17_v32_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_t43_gray_code_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v17_v32_convolutional_encoder$(EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
+- $(CC_FOR_BUILD) -o make_v17_v32_convolutional_encoder$(EXEEXT) $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_v17_v32_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v29_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
+- $(CC_FOR_BUILD) -o make_v29_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_v17_v32_convolutional_encoder$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v34_convolutional_coders$(EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c
+- $(CC_FOR_BUILD) -o make_v34_convolutional_coders$(EXEEXT) $(top_srcdir)/src/make_v34_convolutional_coders.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_v29_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v34_probe_signals$(EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
+- $(CC_FOR_BUILD) -o make_v34_probe_signals$(EXEEXT) $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_v34_convolutional_coders$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v34_shell_map$(EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c
+- $(CC_FOR_BUILD) -o make_v34_shell_map$(EXEEXT) $(top_srcdir)/src/make_v34_shell_map.c -DHAVE_CONFIG_H -I$(top_builddir)/src
++make_v34_probe_signals$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/src -lm
+
+-make_v34_tx_pre_emphasis_filters$(EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c
+- $(CC_FOR_BUILD) -o make_v34_tx_pre_emphasis_filters$(EXEEXT) $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c -DHAVE_CONFIG_H -I$(top_builddir)/src -I$(top_builddir)/tools -lm
++make_v34_shell_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c
++ $(LINK_FOR_BUILD.c) -o $@ $^
++
++make_v34_tx_pre_emphasis_filters$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/tools -lm
+
+ # We need to run make_at_dictionary, so it generates the
+ # at_interpreter_dictionary.h file
+--
+2.34.1
+
diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb
new file mode 100644
index 0000000000..f115553fd1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb
@@ -0,0 +1,50 @@
+SUMMARY = "A DSP library for telephony"
+DESCRIPTION = "\
+ SpanDSP is a low-level signal processing library that modulates and \
+ demodulates signals commonly used in telephony, such as the \"noise\" \
+ generated by a fax modem or DTMF touchpad. \
+"
+HOMEPAGE = "https://www.soft-switch.org/"
+BUGTRACKER = "https://github.com/freeswitch/spandsp/issues"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8791c23ddf418deb5be264cffb5fa6bc"
+
+DEPENDS = "\
+ libxml2 \
+ tiff \
+ tiff-native \
+"
+
+PV = "3.0.0+git"
+
+SRC_URI = "\
+ git://github.com/freeswitch/spandsp.git;protocol=https;branch=master \
+ file://configure.patch \
+ file://makefile.patch \
+"
+# Fails to build with Clang since 5394b2cae6c482ccb835335b769469977e6802ae
+# https://github.com/freeswitch/spandsp/issues/67
+# https://lists.openembedded.org/g/openembedded-devel/message/109325
+SRCREV = "df1282eb9af538ab1aadb6d66146e258451d4fe4"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG ?= ""
+
+PACKAGECONFIG[mmx] = "--enable-mmx,--disable-mmx"
+PACKAGECONFIG[sse] = "--enable-sse,--disable-sse"
+PACKAGECONFIG[sse2] = "--enable-sse2,--disable-sse2"
+PACKAGECONFIG[sse3] = "--enable-sse3,--disable-sse3"
+PACKAGECONFIG[ssse3] = "--enable-ssse3,--disable-ssse3"
+PACKAGECONFIG[sse4-1] = "--enable-sse4-1,--disable-sse4-1"
+PACKAGECONFIG[sse4-2] = "--enable-sse4-2,--disable-sse4-2"
+PACKAGECONFIG[avx] = "--enable-avx,--disable-avx"
+PACKAGECONFIG[avx2] = "--enable-avx2,--disable-avx2"
+PACKAGECONFIG[neon] = "--enable-neon,--disable-neon"
+PACKAGECONFIG[fixed-point] = "--enable-fixed-point,--disable-fixed-point"
+PACKAGECONFIG[v32bis] = "--enable-v32bis,--disable-v32bis"
+PACKAGECONFIG[v34] = "--enable-v34,--disable-v34"
+PACKAGECONFIG[sslfax] = "--enable-sslfax,--disable-sslfax"
diff --git a/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb
index 722815ab6a..6014326826 100644
--- a/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb
+++ b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb
@@ -2,7 +2,7 @@ SUMMARY = "download online streams into audio files"
DESCRIPTION = "This command-line tool can be used to record MPEG III \
and OGG online radio-streams into track-separated audio files."
HOMEPAGE = "http://streamripper.sourceforge.net"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
DEPENDS = "glib-2.0 libmad libogg libvorbis"
@@ -29,4 +29,4 @@ EXTRA_OECONF += "\
"
# the included argv library needs this
-CPPFLAGS_append = " -DANSI_PROTOTYPES"
+CPPFLAGS:append = " -DANSI_PROTOTYPES"
diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch
deleted file mode 100644
index 6f9c39996b..0000000000
--- a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From fe4f3c2a37a81201f463ff962364f014f50c9896 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 16 Dec 2019 22:58:41 -0800
-Subject: [PATCH] Use CMAKE_INSTALL_<path> instead of hardcoding bin/lib/
- install paths
-
-Helps fix build/packaging issues on machines where default libdir is not
-lib but say lib64
-
-Upstream-Status: Submitted [https://github.com/tinyalsa/tinyalsa/pull/143]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 14 +++++++++++---
- 1 file changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cb31c58..1cc4a85 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -41,12 +41,20 @@ add_util("tinymix" "utils/tinymix.c")
- install(FILES ${HDRS}
- DESTINATION "include/tinyalsa")
-
-+if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
-+ set(CMAKE_INSTALL_LIBDIR lib)
-+endif()
-+
-+if(NOT DEFINED CMAKE_INSTALL_BINDIR)
-+ set(CMAKE_INSTALL_BINDIR bin)
-+endif()
-+
- install(TARGETS "tinyalsa"
- "tinyplay"
- "tinycap"
- "tinymix"
- "tinypcminfo"
-- RUNTIME DESTINATION "bin"
-- ARCHIVE DESTINATION "lib"
-- LIBRARY DESTINATION "lib")
-+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
-
---
-2.24.1
-
diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch
new file mode 100644
index 0000000000..64ebdb19c9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch
@@ -0,0 +1,69 @@
+From 639650dd64e483074dd7c3c7ea6dc1b1bd542743 Mon Sep 17 00:00:00 2001
+From: alperak <alperyasinak1@gmail.com>
+Date: Sun, 12 Nov 2023 20:16:55 +0300
+Subject: [PATCH] fixed compilation error caused by strncpy
+
+Issue:
+ https://github.com/tinyalsa/tinyalsa/issues/219
+
+Fix:
+ https://github.com/tinyalsa/tinyalsa/pull/220
+ https://github.com/tinyalsa/tinyalsa/pull/221
+
+Upstream-Status: Submitted
+
+Signed-off-by: alperak <alperyasinak1@gmail.com>
+---
+ src/mixer_plugin.c | 8 +++++---
+ src/pcm_plugin.c | 9 ++++++---
+ 2 files changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/src/mixer_plugin.c b/src/mixer_plugin.c
+index 34117a9..f608563 100644
+--- a/src/mixer_plugin.c
++++ b/src/mixer_plugin.c
+@@ -82,7 +82,8 @@ static int mixer_plug_get_elem_id(struct mixer_plug_data *plug_data,
+ id->iface = ctl->iface;
+
+ strncpy((char *)id->name, (char *)ctl->name,
+- sizeof(id->name));
++ sizeof(id->name) - 1);
++ ((char *)id->name)[sizeof(id->name) - 1] = '\0';
+
+ return 0;
+ }
+@@ -100,8 +101,9 @@ static int mixer_plug_info_enum(struct snd_control *ctl,
+
+ strncpy(einfo->value.enumerated.name,
+ val->texts[einfo->value.enumerated.item],
+- sizeof(einfo->value.enumerated.name));
+-
++ sizeof(einfo->value.enumerated.name) - 1);
++ einfo->value.enumerated.name[sizeof(einfo->value.enumerated.name) - 1] = '\0';
++
+ return 0;
+ }
+
+diff --git a/src/pcm_plugin.c b/src/pcm_plugin.c
+index 15bfc80..47bf4a5 100644
+--- a/src/pcm_plugin.c
++++ b/src/pcm_plugin.c
+@@ -153,9 +153,12 @@ static int pcm_plug_info(struct pcm_plug_data *plug_data,
+ return ret;
+ }
+
+- strncpy((char *)info->id, name, sizeof(info->id));
+- strncpy((char *)info->name, name, sizeof(info->name));
+- strncpy((char *)info->subname, name, sizeof(info->subname));
++ strncpy((char *)info->id, name, sizeof(info->id) - 1);
++ ((char *)info->id)[sizeof(info->id) - 1] = '\0';
++ strncpy((char *)info->name, name, sizeof(info->name) - 1);
++ ((char *)info->name)[sizeof(info->name) - 1] = '\0';
++ strncpy((char *)info->subname, name, sizeof(info->subname) - 1);
++ ((char *)info->subname)[sizeof(info->subname) - 1] = '\0';
+
+ info->subdevices_count = 1;
+
+--
+2.25.1
+
diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb
index 062096892e..e261611afd 100644
--- a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
+++ b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb
@@ -4,13 +4,12 @@ HOMEPAGE = "https://github.com/tinyalsa/tinyalsa"
SECTION = "libs/multimedia"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://NOTICE;md5=dbdefe400d894b510a9de14813181d0b"
+LIC_FILES_CHKSUM = "file://NOTICE;md5=e04cd6fa58488e016f7fb648ebea1db4"
-SRCREV = "8449529c7e50f432091539ba7b438e79b04059b5"
-SRC_URI = "git://github.com/tinyalsa/tinyalsa \
- file://0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch \
+SRCREV = "1c5fb68ced57d838f2b7ecd0c00bc1fefc9ab60d"
+SRC_URI = "git://github.com/tinyalsa/tinyalsa;branch=master;protocol=https \
+ file://0001-fixed-compilation-error-caused-by-strncpy.patch \
"
-PV = "1.1.1+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb b/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb
index 6abf6080bd..f8ab1bf680 100644
--- a/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb
+++ b/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \
file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f"
DEPENDS = "libogg"
-SRC_URI = "git://gitlab.xiph.org/xiph/tremor.git;protocol=https \
+SRC_URI = "git://gitlab.xiph.org/xiph/tremor.git;protocol=https;branch=master \
file://obsolete_automake_macros.patch;striplevel=0 \
file://tremor-arm-thumb2.patch \
"
diff --git a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb
index fe06699ab4..42c771e0ff 100644
--- a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb
+++ b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb
@@ -1,6 +1,6 @@
SUMMARY = "libdvdcss is a simple library for accessing DVDs like block devices"
DESCRIPTION = "libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption."
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "http://download.videolan.org/pub/libdvdcss/${PV}/libdvdcss-${PV}.tar.bz2"
@@ -9,5 +9,4 @@ inherit autotools
EXTRA_OECONF = " --disable-doc "
-SRC_URI[md5sum] = "7b74f2e142b13c9de6dc8d807ab912d4"
-SRC_URI[sha256sum] = "78c2ed77ec9c0d8fbed7bf7d3abc82068b8864be494cfad165821377ff3f2575"
+SRC_URI[sha256sum] = "233cc92f5dc01c5d3a96f5b3582be7d5cee5a35a52d3a08158745d3d86070079"
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch
deleted file mode 100644
index e1383c826c..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-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-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch
index 950c09b8ae..d6ff0b2dba 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch
@@ -5,11 +5,9 @@ Upstream-Status: Inappropriate [configuration]
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
-Index: vlc-2.1.4/configure.ac
-===================================================================
---- vlc-2.1.4.orig/configure.ac
-+++ vlc-2.1.4/configure.ac
-@@ -1693,7 +1693,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu
+--- a/configure.ac
++++ b/configure.ac
+@@ -1891,7 +1891,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu
dnl
dnl OpenCV wrapper and example filters
dnl
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch
new file mode 100644
index 0000000000..866ed03294
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch
@@ -0,0 +1,44 @@
+From fc4bd86bea0b81da0b6fa5be0a352aecc8fa690a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Sep 2023 20:13:55 -0700
+Subject: [PATCH] po: Fix invalid .oc translation format string
+
+gettext can validate format strings now [1] with 0.22 and newer release
+
+[1] https://savannah.gnu.org/bugs/index.php?64332#comment1
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ po/oc.po | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/po/oc.po b/po/oc.po
+index 667696cfe7..ddb1677d8a 100644
+--- a/po/oc.po
++++ b/po/oc.po
+@@ -5298,18 +5298,18 @@ msgstr "Comanda+"
+ #: src/misc/update.c:482
+ #, c-format
+ msgid "%.1f GiB"
+-msgstr "%.lf Gio"
++msgstr "%.1f Gio"
+
+ #: src/misc/update.c:484
+ #, c-format
+ msgid "%.1f MiB"
+-msgstr "%.lf Mio"
++msgstr "%.1f Mio"
+
+ #: src/misc/update.c:486 modules/gui/macosx/VLCPlaylistInfo.m:138
+ #: modules/gui/macosx/VLCPlaylistInfo.m:140
+ #, c-format
+ msgid "%.1f KiB"
+-msgstr "%.lf Kio"
++msgstr "%.1f Kio"
+
+ #: src/misc/update.c:488
+ #, c-format
+--
+2.42.0
+
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch
new file mode 100644
index 0000000000..2dff9b63ce
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch
@@ -0,0 +1,50 @@
+From 5b921009b0db2c5c15aef7ce241d3c81f9c272c9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Mar 2024 12:26:39 -0800
+Subject: [PATCH] taglib: Fix build on x86 32-bit
+
+While compiling with clang, there are errors seen such as
+on function override signature mismatches
+
+meta_engine/taglib.cpp:240:10: error: virtual function 'tell' has a different return type ('long') than the function it overrides (which has return type 'offset_t' (aka 'long long'))
+ 240 | long tell() const
+ | ~~~~ ^
+/mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux/vlc/3.0.20/recipe-sysroot/usr/include/taglib/tiostream.h:156:22: note: overridden virtual function is here
+ 156 | virtual offset_t tell() const = 0;
+ | ~~~~~~~~ ^
+meta_engine/taglib.cpp:245:10: error: virtual function 'length' has a different return type ('long') than the function it overrides (which has return type 'offset_t' (aka 'long long'))
+ 245 | long length()
+ | ~~~~ ^
+/mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux/vlc/3.0.20/recipe-sysroot/usr/include/taglib/tiostream.h:161:22: note: overridden virtual function is here
+ 161 | virtual offset_t length() = 0;
+ | ~~~~~~~~ ^
+
+Upstream-Status: Submitted [https://mailman.videolan.org/pipermail/vlc-devel/2024-March/143639.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/meta_engine/taglib.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index f371485008..129fdf55f1 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -237,12 +237,12 @@ public:
+ return;
+ }
+
+- long tell() const
++ offset_t tell() const
+ {
+- return m_previousPos;
++ return (offset_t)m_previousPos;
+ }
+
+- long length()
++ offset_t length()
+ {
+ uint64_t i_size;
+ if (vlc_stream_GetSize( m_stream, &i_size ) != VLC_SUCCESS)
+--
+2.44.0
+
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch
index d05cf02b71..f68da33607 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch
@@ -1,14 +1,12 @@
* tremor provides libvorbisidec, use it instead of libvorbisdec
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
-Index: vlc-2.2.1/modules/codec/Makefile.am
-===================================================================
---- vlc-2.2.1.orig/modules/codec/Makefile.am
-+++ vlc-2.2.1/modules/codec/Makefile.am
-@@ -234,7 +234,7 @@ codec_LTLIBRARIES += $(LTLIBtheora)
+--- a/modules/codec/Makefile.am
++++ b/modules/codec/Makefile.am
+@@ -324,7 +324,7 @@ codec_LTLIBRARIES += $(LTLIBdaala)
libtremor_plugin_la_SOURCES = codec/vorbis.c
libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor
libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)'
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch
index 96b5d2d246..e10002f78e 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch
@@ -1,7 +1,7 @@
* luaL_checkint and luaL_optint were deprecated in lua 5.3
* replacement functions are luaL_checkinteger and luaL_optinteger
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
index 424aaa2815..6659a44a0a 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
@@ -8,16 +8,15 @@ in different locations, therefore its best to rely on pkgconf to find
the libs and header locations instead of assuming /opt/vc which might
work on some distros ( like raspbian ) but not everywhere
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 31 +++++++++++--------------------
1 file changed, 11 insertions(+), 20 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index d7cf692..f81b99d 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -3427,27 +3427,18 @@ AC_ARG_ENABLE(mmal,
+@@ -3460,27 +3460,18 @@ AC_ARG_ENABLE(mmal,
AS_HELP_STRING([--enable-mmal],
[Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
if test "${enable_mmal}" != "no"; then
@@ -56,6 +55,3 @@ index d7cf692..f81b99d 100644
dnl
dnl evas plugin
---
-2.26.1
-
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch
new file mode 100644
index 0000000000..89e7d585d7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch
@@ -0,0 +1,40 @@
+From a46cee56d05884b8020ace6f67ef8389ac1845da Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 5 Mar 2023 13:50:40 -0800
+Subject: [PATCH 1/3] ioctl does not have same signature between glibc and musl
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/access/v4l2/lib.c | 4 ++++
+ modules/access/v4l2/v4l2.h | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+--- a/modules/access/v4l2/lib.c
++++ b/modules/access/v4l2/lib.c
+@@ -49,7 +49,11 @@ int (*v4l2_fd_open) (int, int) = fd_open
+ //int (*v4l2_open) (const char *, int, ...) = open;
+ //int (*v4l2_dup) (const char *, int, ...) = dup;
+ int (*v4l2_close) (int) = close;
++#ifdef __GLIBC__
+ int (*v4l2_ioctl) (int, unsigned long int, ...) = ioctl;
++#else
++int (*v4l2_ioctl) (int, int, ...) = ioctl;
++#endif
+ ssize_t (*v4l2_read) (int, void *, size_t) = read;
+ //ssize_t (*v4l2_write) (int, const void *, size_t) = write;
+ void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t) = mmap;
+--- a/modules/access/v4l2/v4l2.h
++++ b/modules/access/v4l2/v4l2.h
+@@ -28,7 +28,11 @@
+ /* libv4l2 functions */
+ extern int (*v4l2_fd_open) (int, int);
+ extern int (*v4l2_close) (int);
++#ifdef __GLIBC__
+ extern int (*v4l2_ioctl) (int, unsigned long int, ...);
++#else
++extern int (*v4l2_ioctl) (int, int, ...);
++#endif
+ extern ssize_t (*v4l2_read) (int, void *, size_t);
+ extern void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t);
+ extern int (*v4l2_munmap) (void *, size_t);
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch
deleted file mode 100644
index 405490dcfc..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From f7957c35654222e5bd1038341612bbb40a88e98b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 16 Nov 2020 12:08:43 -0800
-Subject: [PATCH] linux/thread: Use SYS_futex instead of __NR_futex
-
-SYS_futex it expected from system C library.
-in glibc (/usr/include/bits/syscall.h defines it in terms of of NR_futex)
-some newer 32bit architectures e.g. riscv32 are using 64bit time_t from
-get go unlike other 32bit architectures in glibc, therefore it wont have
-NR_futex defined but just NR_futex_time64 this aliases it to NR_futex so
-that SYS_futex is then defined for rv32
-
-Upstream-Status: Submitted [https://github.com/videolan/vlc/pull/117]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/linux/thread.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/src/linux/thread.c b/src/linux/thread.c
-index 20da296..30639a3 100644
---- a/src/linux/thread.c
-+++ b/src/linux/thread.c
-@@ -30,6 +30,11 @@
- #include <sys/syscall.h>
- #include <linux/futex.h>
-
-+/* 32bit architectures with 64bit time_t do not define __NR_futex syscall */
-+#if !defined(SYS_futex) && defined(SYS_futex_time64)
-+#define SYS_futex SYS_futex_time64
-+#endif
-+
- #ifndef FUTEX_PRIVATE_FLAG
- #define FUTEX_WAKE_PRIVATE FUTEX_WAKE
- #define FUTEX_WAIT_PRIVATE FUTEX_WAIT
-@@ -50,7 +55,7 @@ unsigned long vlc_thread_id(void)
- static int sys_futex(void *addr, int op, unsigned val,
- const struct timespec *to, void *addr2, int val3)
- {
-- return syscall(__NR_futex, addr, op, val, to, addr2, val3);
-+ return syscall(SYS_futex, addr, op, val, to, addr2, val3);
- }
-
- static int vlc_futex_wake(void *addr, int nr)
---
-2.29.2
-
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch
new file mode 100644
index 0000000000..b158328aa2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch
@@ -0,0 +1,26 @@
+From 048e4fdd08ac588feb27b03e3ec1824e24f77d62 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 5 Mar 2023 14:13:25 -0800
+Subject: [PATCH 3/3] configure: Disable incompatible-function-pointer-types
+ warning
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -98,6 +98,11 @@ AS_IF([test -n "${with_binary_version}"]
+ dnl Prevent clang from accepting unknown flags with a mere warning
+ AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
+ AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])
++dnl disable clang from erroring on function pointer protype mismatch, vlc seems to rely on that
++dnl especially in modules/video_filter/deinterlace/algo_yadif.c how it interpolates 'filter` variable
++dnl between different functions yadif_filter_line_c_16bit() and yadif_filter_line_c()
++AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CFLAGS])
++AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CXXFLAGS])
+
+ dnl
+ dnl Check the operating system
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch
new file mode 100644
index 0000000000..f238ff4244
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch
@@ -0,0 +1,67 @@
+Fix build with taglib 2.0
+
+Source: https://gitlab.archlinux.org/archlinux/packaging/packages/vlc/-/blob/main/taglib-2.patch?ref_type=heads
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -185,7 +185,7 @@ public:
+ ByteVector res(length, 0);
+ ssize_t i_read = vlc_stream_Read( m_stream, res.data(), length);
+ if (i_read < 0)
+- return ByteVector::null;
++ return ByteVector();
+ else if ((size_t)i_read != length)
+ res.resize(i_read);
+ return res;
+@@ -465,7 +465,7 @@ static void ReadMetaFromASF( ASF::Tag* t
+ static void ReadMetaFromBasicTag(const Tag* tag, vlc_meta_t *dest)
+ {
+ #define SET( accessor, meta ) \
+- if( !tag->accessor().isNull() && !tag->accessor().isEmpty() ) \
++ if( !tag->accessor().isEmpty() ) \
+ vlc_meta_Set##meta( dest, tag->accessor().toCString(true) )
+ #define SETINT( accessor, meta ) \
+ if( tag->accessor() ) \
+@@ -806,15 +806,15 @@ static void ReadMetaFromMP4( MP4::Tag* t
+ {
+ MP4::Item list;
+ #define SET( keyName, metaName ) \
+- if( tag->itemListMap().contains(keyName) ) \
++ if( tag->itemMap().contains(keyName) ) \
+ { \
+- list = tag->itemListMap()[keyName]; \
++ list = tag->itemMap()[keyName]; \
+ vlc_meta_Set##metaName( p_meta, list.toStringList().front().toCString( true ) ); \
+ }
+ #define SET_EXTRA( keyName, metaName ) \
+- if( tag->itemListMap().contains(keyName) ) \
++ if( tag->itemMap().contains(keyName) ) \
+ { \
+- list = tag->itemListMap()[keyName]; \
++ list = tag->itemMap()[keyName]; \
+ vlc_meta_AddExtra( p_meta, metaName, list.toStringList().front().toCString( true ) ); \
+ }
+
+@@ -824,9 +824,9 @@ static void ReadMetaFromMP4( MP4::Tag* t
+ #undef SET
+ #undef SET_EXTRA
+
+- if( tag->itemListMap().contains("covr") )
++ if( tag->itemMap().contains("covr") )
+ {
+- MP4::CoverArtList list = tag->itemListMap()["covr"].toCoverArtList();
++ MP4::CoverArtList list = tag->itemMap()["covr"].toCoverArtList();
+ const char *psz_format = list[0].format() == MP4::CoverArt::PNG ? "image/png" : "image/jpeg";
+
+ msg_Dbg( p_demux_meta, "Found embedded art (%s) is %i bytes",
+@@ -1337,7 +1337,7 @@ static int WriteMeta( vlc_object_t *p_th
+ if( RIFF::AIFF::File* riff_aiff = dynamic_cast<RIFF::AIFF::File*>(f.file()) )
+ WriteMetaToId3v2( riff_aiff->tag(), p_item );
+ else if( RIFF::WAV::File* riff_wav = dynamic_cast<RIFF::WAV::File*>(f.file()) )
+- WriteMetaToId3v2( riff_wav->tag(), p_item );
++ WriteMetaToId3v2( riff_wav->ID3v2Tag(), p_item );
+ }
+ else if( TrueAudio::File* trueaudio = dynamic_cast<TrueAudio::File*>(f.file()) )
+ {
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb
index cb796a00fa..d25a20ae01 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb
@@ -2,10 +2,10 @@ DESCRIPTION = "Video player and streamer - davinci edition"
HOMEPAGE = "http://www.videolan.org"
SECTION = "multimedia"
-LICENSE = "GPL-2.0"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \
+DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native bison-native \
dbus libxml2 gnutls \
tremor faad2 ffmpeg flac alsa-lib \
lua-native lua libidn \
@@ -13,20 +13,22 @@ DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \
libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \
tiff"
-LDFLAGS_append_riscv64 = " -latomic"
-LDFLAGS_append_riscv32 = " -latomic"
+LDFLAGS:append:riscv64 = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
-SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz \
+SRC_URI = "https://get.videolan.org/${BPN}/${PV}/${BP}.tar.xz \
file://0001-make-opencv-configurable.patch \
file://0002-use-vorbisidec.patch \
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 \
+ file://0005-ioctl-does-not-have-same-signature-between-glibc-and.patch \
+ file://0006-configure-Disable-incompatible-function-pointer-type.patch \
+ file://taglib-2.patch \
+ file://0001-taglib-Fix-build-on-x86-32-bit.patch \
"
-SRC_URI[sha256sum] = "eff458f38a92126094f44f2263c2bf2c7cdef271b48192d0fe7b1726388cf879"
+SRC_URI[sha256sum] = "adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5"
-inherit autotools features_check gettext pkgconfig mime-xdg
+inherit autotools-brokensep features_check gettext pkgconfig mime-xdg
REQUIRED_DISTRO_FEATURES = "x11"
@@ -95,13 +97,12 @@ PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native"
-do_configure_append() {
- sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool
-
+do_configure:append() {
# moc needs support: precreate build paths
for qtpath in adapters components/epg components/playlist components/sout dialogs managers styles util/buttons; do
mkdir -p "${B}/modules/gui/qt/$qtpath"
done
+ sed -i -e 's|${WORKDIR}||g' ${B}/config.h
}
# This recipe packages vlc as a library as well, so qt4 dependencies
@@ -109,9 +110,9 @@ do_configure_append() {
PACKAGES =+ "libvlc"
LEAD_SONAME_libvlc = "libvlc.so.5"
-FILES_libvlc = "${libdir}/lib*.so.*"
+FILES:libvlc = "${libdir}/lib*.so.*"
-FILES_${PN} += "\
+FILES:${PN} += "\
${bindir}/vlc \
${libdir}/vlc/vlc/libvlc_vdpau.so \
${datadir}/applications \
@@ -120,15 +121,15 @@ FILES_${PN} += "\
${datadir}/metainfo/vlc.appdata.xml \
"
-FILES_${PN}-dbg += "\
+FILES:${PN}-dbg += "\
${libdir}/vlc/*/.debug \
${libdir}/vlc/plugins/*/.debug \
"
-FILES_${PN}-staticdev += "\
+FILES:${PN}-staticdev += "\
${libdir}/vlc/plugins/*/*.a \
"
-INSANE_SKIP_${PN} = "dev-so"
+INSANE_SKIP:${PN} = "dev-so"
-EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "0", "1", d)}"
+EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch
deleted file mode 100644
index b623dbf37e..0000000000
--- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Upstream-Status: Backport
-
-Backport patch to fix CVE-2015-6749 from:
-
-https://trac.xiph.org/ticket/2212
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 04815d3e1bfae3a6cdfb2c25358a5a72b61299f7 Mon Sep 17 00:00:00 2001
-From: Mark Harris <mark.hsj@gmail.com>
-Date: Sun, 30 Aug 2015 05:54:46 -0700
-Subject: [PATCH] oggenc: Fix large alloca on bad AIFF input
-
-Fixes #2212
----
- oggenc/audio.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/oggenc/audio.c b/oggenc/audio.c
-index 477da8c..4921fb9 100644
---- a/oggenc/audio.c
-+++ b/oggenc/audio.c
-@@ -245,8 +245,8 @@ static int aiff_permute_matrix[6][6] =
- int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen)
- {
- int aifc; /* AIFC or AIFF? */
-- unsigned int len;
-- unsigned char *buffer;
-+ unsigned int len, readlen;
-+ unsigned char buffer[22];
- unsigned char buf2[8];
- aiff_fmt format;
- aifffile *aiff = malloc(sizeof(aifffile));
-@@ -269,9 +269,9 @@ int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen)
- return 0; /* Weird common chunk */
- }
-
-- buffer = alloca(len);
--
-- if(fread(buffer,1,len,in) < len)
-+ readlen = len < sizeof(buffer) ? len : sizeof(buffer);
-+ if(fread(buffer,1,readlen,in) < readlen ||
-+ (len > readlen && !seek_forward(in, len-readlen)))
- {
- fprintf(stderr, _("Warning: Unexpected EOF in reading AIFF header\n"));
- return 0;
---
-2.5.0
-
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch
new file mode 100644
index 0000000000..36a31a85cd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch
@@ -0,0 +1,27 @@
+From 8c10181547c93438fc10f753e7164ee004add6d1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 27 Aug 2022 10:28:47 -0700
+Subject: [PATCH] ogginfo: Include utf8.h for missing utf8_decode
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ogginfo/codec_skeleton.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ogginfo/codec_skeleton.c b/ogginfo/codec_skeleton.c
+index a27f8da..3ac13f6 100644
+--- a/ogginfo/codec_skeleton.c
++++ b/ogginfo/codec_skeleton.c
+@@ -25,6 +25,7 @@
+ #include <ogg/ogg.h>
+
+ #include "i18n.h"
++#include "utf8.h" /* utf8_decode */
+
+ #include "private.h"
+
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch
deleted file mode 100644
index 111e98ac1f..0000000000
--- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Petter Reinholdtsen <pere@hungry.com>
-Date: Wed, 22 Oct 2014 13:25:21 +0200
-Subject: Fix format error blocking compilation with hardening
-
-Last-Update: 2014-10-22
-Forwarded: no
-
-Enabling hardening refuses to compile code with sprintf() calls
-with no formatting string. Adjust the code to work with hardening.
----
- ogg123/status.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ogg123/status.c b/ogg123/status.c
-index 92b8ff1..ccec389 100644
---- a/ogg123/status.c
-+++ b/ogg123/status.c
-@@ -148,7 +148,7 @@ int print_statistics_line (stat_format_t stats[])
-
- switch (stats->type) {
- case stat_noarg:
-- len += sprintf(str+len, stats->formatstr);
-+ len += sprintf(str+len, "%s", stats->formatstr);
- break;
- case stat_intarg:
- len += sprintf(str+len, stats->formatstr, stats->arg.intarg);
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch
index b61ce7c184..dd03fa9524 100644
--- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch
+++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch
@@ -2,23 +2,10 @@ Fix build with gettext 0.20.x
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -2,8 +2,8 @@
-
- AUTOMAKE_OPTIONS = foreign dist-zip
-
--SUBDIRS = po intl include share debian win32 @OPT_SUBDIRS@
--DIST_SUBDIRS = po intl include share debian win32 ogg123 oggenc oggdec ogginfo \
-+SUBDIRS = po include share debian win32 @OPT_SUBDIRS@
-+DIST_SUBDIRS = po include share debian win32 ogg123 oggenc oggdec ogginfo \
- vcut vorbiscomment m4
-
- EXTRA_DIST = config.rpath README AUTHORS COPYING CHANGES vorbis-tools.spec config.h mkinstalldirs
+Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
--- a/configure.ac
+++ b/configure.ac
-@@ -31,7 +31,7 @@ CFLAGS="$cflags_save"
+@@ -34,7 +34,7 @@
AC_PROG_LIBTOOL
ALL_LINGUAS="be cs da en_GB eo es fr hr hu nl pl ro ru sk sv uk vi"
@@ -27,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
dnl --------------------------------------------------
dnl System checks
-@@ -383,7 +383,6 @@ AC_OUTPUT([
+@@ -397,7 +397,6 @@
Makefile
m4/Makefile
po/Makefile.in
@@ -35,3 +22,16 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
include/Makefile
share/Makefile
win32/Makefile
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,8 +2,8 @@
+
+ AUTOMAKE_OPTIONS = foreign dist-zip
+
+-SUBDIRS = po intl include share win32 @OPT_SUBDIRS@
+-DIST_SUBDIRS = po intl include share win32 ogg123 oggenc oggdec ogginfo \
++SUBDIRS = po include share win32 @OPT_SUBDIRS@
++DIST_SUBDIRS = po include share win32 ogg123 oggenc oggdec ogginfo \
+ vcut vorbiscomment m4
+
+ EXTRA_DIST = config.rpath README AUTHORS COPYING CHANGES
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.2.bb
index 89e66528ac..61a4aedb85 100644
--- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb
+++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.2.bb
@@ -5,19 +5,18 @@ include some command line applications to use the libraries."
HOMEPAGE = "http://www.vorbis.com/"
BUGTRACKER = "https://trac.xiph.org"
SECTION = "multimedia"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "libogg libvorbis"
SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.gz \
- file://0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch \
- file://0004-Fix-format-error-blocking-compilation-with-hardening.patch \
file://gettext.patch \
+ file://0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch \
"
-SRC_URI[md5sum] = "567e0fb8d321b2cd7124f8208b8b90e6"
-SRC_URI[sha256sum] = "a389395baa43f8e5a796c99daf62397e435a7e73531c9f44d9084055a05d22bc"
+SRC_URI[md5sum] = "998fca293bd4e4bdc2b96fb70f952f4e"
+SRC_URI[sha256sum] = "db7774ec2bf2c939b139452183669be84fda5774d6400fc57fde37f77624f0b0"
inherit autotools pkgconfig gettext
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch
new file mode 100644
index 0000000000..37b4db6894
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch
@@ -0,0 +1,95 @@
+From b6ad4b7086a6487b36d626248322f4c9d5bf420a Mon Sep 17 00:00:00 2001
+From: "thomas.georgec" <thomas.georgec@lge.com>
+Date: Sun, 12 Mar 2023 14:28:50 +0530
+Subject: [PATCH] Fix return-type errors
+
+Fix "control reaches end of non-void function" in code when -Werror=return-type
+is used.
+
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc: In function 'float webrtc::{anonymous}::GetLevel(const webrtc::VadLevelAnalyzer::Result&, LevelEstimatorType)':
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc:45:1: error: control reaches end of non-void function [-Werror=return-type]
+ 45 | }
+ | ^
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc: In function 'webrtc::GainControl::Mode webrtc::{anonymous}::Agc1ConfigModeToInterfaceMode(webrtc::AudioProcessing::Config::GainController1::Mode)':
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc:117:1: error: control reaches end of non-void function [-Werror=return-type]
+ 117 | }
+ | ^
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc: In lambda function:
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc:1853:13: error: control reaches end of non-void function -Werror=return-type]
+ 1853 | default:
+ | ^~~~~~~
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/28]
+
+ .../audio_processing/agc2/adaptive_mode_level_estimator.cc | 2 ++
+ webrtc/modules/audio_processing/audio_processing_impl.cc | 3 +++
+ webrtc/modules/audio_processing/include/audio_processing.cc | 6 ++++++
+ 3 files changed, 11 insertions(+)
+
+diff --git a/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc b/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
+index f09f63b..9cdf6ca 100644
+--- a/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
++++ b/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
+@@ -42,6 +42,8 @@ float GetLevel(const VadLevelAnalyzer::Result& vad_level,
+ return vad_level.peak_dbfs;
+ break;
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ } // namespace
+diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
+index 67208df..3b8262a 100644
+--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
++++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
+@@ -114,6 +114,8 @@ GainControl::Mode Agc1ConfigModeToInterfaceMode(
+ case Agc1Config::kFixedDigital:
+ return GainControl::kFixedDigital;
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ // Maximum lengths that frame of samples being passed from the render side to
+@@ -1852,6 +1854,7 @@ void AudioProcessingImpl::InitializeNoiseSuppressor() {
+ return NsConfig::SuppressionLevel::k21dB;
+ default:
+ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+ };
+
+diff --git a/webrtc/modules/audio_processing/include/audio_processing.cc b/webrtc/modules/audio_processing/include/audio_processing.cc
+index 8854415..cc8752b 100644
+--- a/webrtc/modules/audio_processing/include/audio_processing.cc
++++ b/webrtc/modules/audio_processing/include/audio_processing.cc
+@@ -28,6 +28,8 @@ std::string NoiseSuppressionLevelToString(
+ case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh:
+ return "VeryHigh";
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ std::string GainController1ModeToString(
+@@ -40,6 +42,8 @@ std::string GainController1ModeToString(
+ case AudioProcessing::Config::GainController1::Mode::kFixedDigital:
+ return "FixedDigital";
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ std::string GainController2LevelEstimatorToString(
+@@ -50,6 +54,8 @@ std::string GainController2LevelEstimatorToString(
+ case AudioProcessing::Config::GainController2::LevelEstimator::kPeak:
+ return "Peak";
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ int GetDefaultMaxInternalRate() {
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch
new file mode 100644
index 0000000000..ef1d454663
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch
@@ -0,0 +1,33 @@
+From 141fb5cbdaa6a883a61b5bf390c849159fc77605 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Thu, 14 Sep 2023 16:12:32 +0200
+Subject: [PATCH] file_wrapper.h: add missing include for musl
+
+this fixes:
+| In file included from ../webrtc-audio-processing-1.3/webrtc/rtc_base/system/file_wrapper.cc:11:
+| ../webrtc-audio-processing-1.3/webrtc/rtc_base/system/file_wrapper.h:86:21: error: 'int64_t' has not been declared
+
+if built with musl libc
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/37]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ webrtc/rtc_base/system/file_wrapper.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/webrtc/rtc_base/system/file_wrapper.h b/webrtc/rtc_base/system/file_wrapper.h
+index 42c463c..c34d366 100644
+--- a/webrtc/rtc_base/system/file_wrapper.h
++++ b/webrtc/rtc_base/system/file_wrapper.h
+@@ -13,6 +13,7 @@
+
+ #include <stddef.h>
+ #include <stdio.h>
++#include <cstdint>
+
+ #include <string>
+
+--
+2.41.0
+
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb
new file mode 100644
index 0000000000..c56ca53f89
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Audio processing bits of the WebRTC reference implementation"
+HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/"
+SECTION = "audio"
+
+DEPENDS = "abseil-cpp"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2"
+
+SRC_URI = " \
+ http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/webrtc-audio-processing-${PV}.tar.xz \
+ file://0001-add-missing-header-for-musl.patch \
+ file://0001-Fix-return-type-errors.patch \
+"
+SRC_URI[sha256sum] = "2365e93e778d7b61b5d6e02d21c47d97222e9c7deff9e1d0838ad6ec2e86f1b9"
+S = "${WORKDIR}/webrtc-audio-processing-${PV}"
+
+LDFLAGS:append:libc-musl = " -lexecinfo"
+
+inherit meson pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb
index b94dcf9f18..6e56c4409c 100644
--- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb
+++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Audio processing bits of the WebRTC reference implementation"
HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/"
SECTION = "audio"
-DEPENDS_append_libc-musl = " libexecinfo"
+DEPENDS:append:libc-musl = " libexecinfo"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \
@@ -19,5 +19,5 @@ SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${
SRC_URI[md5sum] = "6e10724ca34bcbc715a4c208273acb0c"
SRC_URI[sha256sum] = "a0fdd938fd85272d67e81572c5a4d9e200a0c104753cb3c209ded175ce3c5dbf"
-LDFLAGS_append_libc-musl = " -lexecinfo"
+LDFLAGS:append:libc-musl = " -lexecinfo"
inherit autotools pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua b/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua
new file mode 100644
index 0000000000..353a49c0b5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua
@@ -0,0 +1,5 @@
+-- These features require a session DBus instance, which is not available
+-- by default in OE generated images. The absence of such a DBus instance
+-- causes WirePlumber to fail to start. Turn these off to prevent that.
+alsa_monitor.properties["alsa.reserve"] = false
+default_access.properties["enable-flatpak-portal"] = false
diff --git a/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.1.bb b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.1.bb
new file mode 100644
index 0000000000..9115076a24
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.1.bb
@@ -0,0 +1,145 @@
+SUMMARY = "Session / policy manager implementation for PipeWire"
+HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/wireplumber"
+BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/wireplumber/issues"
+SECTION = "multimedia"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=17d1fe479cdec331eecbc65d26bc7e77"
+
+DEPENDS = "glib-2.0 glib-2.0-native lua pipewire \
+ ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "python3-native python3-lxml-native doxygen-native", "", d)} \
+"
+
+SRCREV = "961450b2ac700e8c9c85a0beb2426b875fa08bff"
+SRC_URI = " \
+ git://gitlab.freedesktop.org/pipewire/wireplumber.git;branch=master;protocol=https \
+ file://90-OE-disable-session-dbus-dependent-features.lua \
+"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig gobject-introspection systemd
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+# Enable system-lua to let wireplumber use OE's lua.
+# Documentation needs python-sphinx, which is not in oe-core or meta-python2 for now.
+# elogind is not (yet) available in OE, so disable support.
+EXTRA_OEMESON += " \
+ -Ddoc=disabled \
+ -Dsystem-lua=true \
+ -Delogind=disabled \
+ -Dsystemd-system-unit-dir=${systemd_system_unitdir} \
+ -Dsystemd-user-unit-dir=${systemd_user_unitdir} \
+ -Dtests=false \
+"
+
+PACKAGECONFIG ??= " dbus \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \
+"
+
+PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
+PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=true,-Dsystemd-system-service=false,systemd"
+# "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=true,-Dsystemd-user-service=false,systemd"
+PACKAGECONFIG[dbus] = ""
+
+PACKAGESPLITFUNCS:prepend = " split_dynamic_packages "
+PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends "
+
+WP_MODULE_SUBDIR = "wireplumber-0.5"
+
+do_install:append() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'false', 'true', d)}; then
+ install -m 0644 ${WORKDIR}/90-OE-disable-session-dbus-dependent-features.lua ${D}${datadir}/wireplumber/main.lua.d
+ fi
+}
+
+python split_dynamic_packages () {
+ # Create packages for each WirePlumber module.
+ wp_module_libdir = d.expand('${libdir}/${WP_MODULE_SUBDIR}')
+ do_split_packages(d, wp_module_libdir, r'^libwireplumber-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'WirePlumber %s module', extra_depends='', recursive=False)
+}
+
+python set_dynamic_metapkg_rdepends () {
+ import os
+ import oe.utils
+
+ # Go through all generated WirePlumber 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')
+
+ wp_module_pn = base_pn + '-modules'
+ wp_module_metapkg = wp_module_pn + '-meta'
+
+ d.setVar('ALLOW_EMPTY:' + wp_module_metapkg, "1")
+ d.setVar('FILES:' + wp_module_metapkg, "")
+
+ blacklist = [ wp_module_pn, wp_module_metapkg ]
+ wp_module_metapkg_rdepends = []
+ pkgdest = d.getVar('PKGDEST')
+
+ for pkg in oe.utils.packages_filter_out_system(d):
+ if pkg in blacklist:
+ continue
+
+ is_wp_module_pkg = pkg.startswith(wp_module_pn)
+ if not is_wp_module_pkg:
+ continue
+
+ if pkg in wp_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_wp_module_pkg:
+ wp_module_metapkg_rdepends.append(pkg)
+
+ d.setVar('RDEPENDS:' + wp_module_metapkg, ' '.join(wp_module_metapkg_rdepends))
+ d.setVar('DESCRIPTION:' + wp_module_metapkg, wp_module_pn + ' meta package')
+}
+
+PACKAGES =+ "\
+ libwireplumber \
+ ${PN}-default-config \
+ ${PN}-scripts \
+ ${PN}-modules \
+ ${PN}-modules-meta \
+"
+
+PACKAGES_DYNAMIC = "^${PN}-modules.*"
+
+CONFFILES:${PN} += " \
+ ${datadir}/wireplumber/wireplumber.conf \
+ ${datadir}/wireplumber/*.lua.d/* \
+"
+# Add pipewire to RRECOMMENDS, since WirePlumber expects a PipeWire daemon to
+# be present. While in theory any application that uses libpipewire can configure
+# itself to become a daemon, in practice, the PipeWire daemon is used.
+RRECOMMENDS:${PN} += "pipewire ${PN}-scripts ${PN}-modules-meta"
+
+FILES:${PN} += "${systemd_user_unitdir} ${systemd_system_unitdir} ${datadir}/zsh"
+
+FILES:libwireplumber = " \
+ ${libdir}/libwireplumber-*.so.* \
+"
+
+FILES:${PN}-scripts += "${datadir}/wireplumber/scripts/*"
+
+# Dynamic packages (see set_dynamic_metapkg_rdepends).
+FILES:${PN}-modules = ""
+RRECOMMENDS:${PN}-modules += "${PN}-modules-meta"
diff --git a/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb b/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb
index 8c34526cc3..2d4f389e34 100644
--- a/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb
+++ b/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb
@@ -2,7 +2,7 @@ SUMMARY = "H.265/HEVC video encoder"
DESCRIPTION = "A free software library and application for encoding video streams into the H.265/HEVC format."
HOMEPAGE = "http://www.videolan.org/developers/x265.html"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LICENSE_FLAGS = "commercial"
LIC_FILES_CHKSUM = "file://../COPYING;md5=c9e0427bc58f129f99728c62d4ad4091"
@@ -17,8 +17,13 @@ SRC_URI[sha256sum] = "fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b5
inherit lib_package pkgconfig cmake
-EXTRA_OECMAKE_append_x86 = " -DENABLE_ASSEMBLY=OFF"
+do_generate_toolchain_file:append() {
+ echo "set(CMAKE_ASM_NASM_FLAGS --debug-prefix-map ${S}=${TARGET_DBGSRC_DIR})" >> ${WORKDIR}/toolchain.cmake
+}
+
+EXTRA_OECMAKE:append:x86 = " -DENABLE_ASSEMBLY=OFF"
+EXTRA_OECMAKE:append:aarch64 = " -DENABLE_PIC=ON"
AS[unexport] = "1"
-COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
+COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux'