summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-multimedia')
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/0001-topology-correct-version-script-path.patch38
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib_1.2.14.bb (renamed from meta/recipes-multimedia/alsa/alsa-lib_1.2.11.bb)6
-rw-r--r--meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam_av.c-Include-missing-string.h.patch25
-rw-r--r--meta/recipes-multimedia/alsa/alsa-plugins_1.2.12.bb (renamed from meta/recipes-multimedia/alsa/alsa-plugins_1.2.7.1.bb)9
-rw-r--r--meta/recipes-multimedia/alsa/alsa-tools_1.2.14.bb (renamed from meta/recipes-multimedia/alsa/alsa-tools_1.2.11.bb)2
-rw-r--r--meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.14.bb (renamed from meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.11.bb)2
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils_1.2.14.bb (renamed from meta/recipes-multimedia/alsa/alsa-utils_1.2.11.bb)10
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg_7.1.1.bb (renamed from meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb)25
-rw-r--r--meta/recipes-multimedia/flac/flac/0001-API-documentation-replace-modules.html-by-topics.htm.patch45
-rw-r--r--meta/recipes-multimedia/flac/flac_1.5.0.bb (renamed from meta/recipes-multimedia/flac/flac_1.4.3.bb)27
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch5
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb)3
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples/0001-Make-player-examples-installable.patch26
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb)12
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb)5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb4
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb47
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch29
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb)25
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch15
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch3
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb)4
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch38
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb)9
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb)6
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb)6
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb)4
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb)4
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch7
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch21
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch7
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch11
-rwxr-xr-xmeta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest16
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb)4
-rw-r--r--meta/recipes-multimedia/lame/lame_3.100.bb3
-rw-r--r--meta/recipes-multimedia/libogg/libogg_1.3.6.bb (renamed from meta/recipes-multimedia/libogg/libogg_1.3.5.bb)3
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch58
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/disable-so-versioning.patch36
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch20
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch19
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch18
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb45
-rw-r--r--meta/recipes-multimedia/libpng/files/run-ptest7
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.43.bb33
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.48.bb71
-rw-r--r--meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb2
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/0001-Include-stdbool.h-instead-of-redefining-bool-true-an.patch65
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2024-50612.patch409
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb4
-rw-r--r--meta/recipes-multimedia/libtheora/libtheora-1.1.1/no-docs.patch15
-rw-r--r--meta/recipes-multimedia/libtheora/libtheora/0001-add-missing-files.patch769
-rw-r--r--meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb21
-rw-r--r--meta/recipes-multimedia/libtheora/libtheora_1.2.0.bb28
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch238
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0002.patch28
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2023-52356.patch49
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2023-6228.patch31
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch27
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch36
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch162
-rw-r--r--meta/recipes-multimedia/libtiff/tiff_4.7.0.bb (renamed from meta/recipes-multimedia/libtiff/tiff_4.6.0.bb)18
-rw-r--r--meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch24
-rw-r--r--meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb1
-rw-r--r--meta/recipes-multimedia/mpg123/mpg123_1.33.0.bb (renamed from meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb)4
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio.inc13
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb2
-rw-r--r--meta/recipes-multimedia/sbc/sbc_2.1.bb (renamed from meta/recipes-multimedia/sbc/sbc_2.0.bb)9
-rw-r--r--meta/recipes-multimedia/webp/libwebp_1.5.0.bb (renamed from meta/recipes-multimedia/webp/libwebp_1.4.0.bb)4
-rw-r--r--meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch51
-rw-r--r--meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch33
-rw-r--r--meta/recipes-multimedia/x264/x264_git.bb11
74 files changed, 1618 insertions, 1264 deletions
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-correct-version-script-path.patch b/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-correct-version-script-path.patch
deleted file mode 100644
index 30aeef5817..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-correct-version-script-path.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From 2a736a0d2543f206fd2653aaae8a08a4c42eb917 Mon Sep 17 00:00:00 2001
2From: Michael Opdenacker <michael.opdenacker@bootlin.com>
3Date: Tue, 30 Jan 2024 14:24:25 +0100
4Subject: [PATCH] topology: correct version script path
5
6From: Jan Palus <jpalus@fastmail.com>
7
8contrary to libasound, version script for libatopology is a regular
9source file. while it's often the case that $(builddir) and $(srcdir)
10point to the same directory, they don't always have to. therefore path
11needs to point explicitly to $(srcdir) for Versions script in topology
12
13Closes: https://github.com/alsa-project/alsa-lib/pull/383
14Fixes: GH-382
15Fixes: dc7da761f3a2 ("topology: separate Versions linker script")
16Signed-off-by: Jan Palus <jpalus@fastmail.com>
17Signed-off-by: Jaroslav Kysela <perex@perex.cz>
18Upstream-Status: Backport [https://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=2a736a0d2543f206fd2653aaae8a08a4c42eb917]
19---
20 src/topology/Makefile.am | 2 +-
21 1 file changed, 1 insertion(+), 1 deletion(-)
22
23diff --git a/src/topology/Makefile.am b/src/topology/Makefile.am
24index 04299588..e0b78373 100644
25--- a/src/topology/Makefile.am
26+++ b/src/topology/Makefile.am
27@@ -2,7 +2,7 @@ EXTRA_DIST = Versions
28 COMPATNUM=@LIBTOOL_VERSION_INFO@
29
30 if VERSIONED_SYMBOLS
31-VSYMS = -Wl,--version-script=Versions
32+VSYMS = -Wl,--version-script=$(srcdir)/Versions
33 else
34 VSYMS =
35 endif
36--
372.34.1
38
diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.2.11.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.2.14.bb
index c212b17aa3..41a42f9ecc 100644
--- a/meta/recipes-multimedia/alsa/alsa-lib_1.2.11.bb
+++ b/meta/recipes-multimedia/alsa/alsa-lib_1.2.14.bb
@@ -9,10 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
9 file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \ 9 file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \
10 " 10 "
11 11
12SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2 \ 12SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
13 file://0001-topology-correct-version-script-path.patch \ 13SRC_URI[sha256sum] = "be9c88a0b3604367dd74167a2b754a35e142f670292ae47a2fdef27a2ee97a32"
14 "
15SRC_URI[sha256sum] = "9f3f2f69b995f9ad37359072fbc69a3a88bfba081fc83e9be30e14662795bb4d"
16 14
17inherit autotools pkgconfig 15inherit autotools pkgconfig
18 16
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam_av.c-Include-missing-string.h.patch b/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam_av.c-Include-missing-string.h.patch
deleted file mode 100644
index ff7745d637..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam_av.c-Include-missing-string.h.patch
+++ /dev/null
@@ -1,25 +0,0 @@
1From b01b176a665ba65979d74922955f51dc4888a713 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 23 Aug 2022 15:21:16 -0700
4Subject: [PATCH] arcam_av.c: Include missing string.h
5
6bzero() function needs this header to be included
7
8Upstream-Status: Submitted [https://github.com/alsa-project/alsa-plugins/pull/47]
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 arcam-av/arcam_av.c | 1 +
12 1 file changed, 1 insertion(+)
13
14diff --git a/arcam-av/arcam_av.c b/arcam-av/arcam_av.c
15index 63f9b4e..29fc537 100644
16--- a/arcam-av/arcam_av.c
17+++ b/arcam-av/arcam_av.c
18@@ -27,6 +27,7 @@
19 #include <signal.h>
20 #include <stddef.h>
21 #include <stdio.h>
22+#include <string.h>
23 #include <termios.h>
24 #include <unistd.h>
25
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins_1.2.7.1.bb b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.12.bb
index 9500462d5c..7db0c4d677 100644
--- a/meta/recipes-multimedia/alsa/alsa-plugins_1.2.7.1.bb
+++ b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.12.bb
@@ -5,6 +5,7 @@ They are used while configuring ALSA in the .asoundrc file."
5HOMEPAGE = "http://alsa-project.org" 5HOMEPAGE = "http://alsa-project.org"
6BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" 6BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
7SECTION = "multimedia" 7SECTION = "multimedia"
8CVE_PRODUCT = "alsa"
8 9
9# The primary license of alsa-plugins is LGPL-2.1-only. 10# The primary license of alsa-plugins is LGPL-2.1-only.
10# 11#
@@ -19,13 +20,11 @@ LICENSE = "LGPL-2.1-only & GPL-2.0-or-later"
19LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ 20LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
20 file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \ 21 file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \
21 file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \ 22 file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \
22 file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \ 23 file://rate/rate_samplerate.c;endline=35;md5=07fcfc9e83a7159ad14a7196ecdc7d48 \
23 " 24 "
24 25
25SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2 \ 26SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2"
26 file://0001-arcam_av.c-Include-missing-string.h.patch \ 27SRC_URI[sha256sum] = "7bd8a83d304e8e2d86a25895d8dcb0ef0245a8df32e271959cdbdc6af39b66f2"
27 "
28SRC_URI[sha256sum] = "8c337814954bb7c167456733a6046142a2931f12eccba3ec2a4ae618a3432511"
29 28
30DEPENDS += "alsa-lib" 29DEPENDS += "alsa-lib"
31 30
diff --git a/meta/recipes-multimedia/alsa/alsa-tools_1.2.11.bb b/meta/recipes-multimedia/alsa/alsa-tools_1.2.14.bb
index 53868041c0..751d9e8a76 100644
--- a/meta/recipes-multimedia/alsa/alsa-tools_1.2.11.bb
+++ b/meta/recipes-multimedia/alsa/alsa-tools_1.2.14.bb
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=59530bdf33659b29e73d4adb9f9f65
14 14
15SRC_URI = "https://www.alsa-project.org/files/pub/tools/${BP}.tar.bz2" 15SRC_URI = "https://www.alsa-project.org/files/pub/tools/${BP}.tar.bz2"
16 16
17SRC_URI[sha256sum] = "0915c9634a502fd3655ca9c574d259bc9e79983d91d45aeacff6f3c00f8ae3e9" 17SRC_URI[sha256sum] = "faef6fdd39ec79c9a5473dc63aa1b6331bf7664a9d452a0a8198cec7016cbc6f"
18 18
19inherit autotools-brokensep pkgconfig 19inherit autotools-brokensep pkgconfig
20# brokensep as as10k1 (and probably more) fail out of tree 20# brokensep as as10k1 (and probably more) fail out of tree
diff --git a/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.11.bb b/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.14.bb
index ce1a42c9b8..d9ef831937 100644
--- a/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.11.bb
+++ b/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.14.bb
@@ -8,7 +8,7 @@ LICENSE = "BSD-3-Clause"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" 8LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4"
9 9
10SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" 10SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
11SRC_URI[sha256sum] = "387c01cf30e2a1676d7b8f72b2681cf219abca70dd1ec2a9e33add5bf3feae81" 11SRC_URI[sha256sum] = "32e9809f592d92b978aa1032e35293c33b8d0f1ec475f937022c3ee9a3069c21"
12# Something went wrong at upstream tarballing 12# Something went wrong at upstream tarballing
13 13
14inherit allarch 14inherit allarch
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.2.11.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.2.14.bb
index e598fac9f8..3cbb9b464b 100644
--- a/meta/recipes-multimedia/alsa/alsa-utils_1.2.11.bb
+++ b/meta/recipes-multimedia/alsa/alsa-utils_1.2.14.bb
@@ -24,9 +24,8 @@ PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev
24PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" 24PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
25 25
26# alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe 26# alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe
27SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2 \ 27SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2"
28 " 28SRC_URI[sha256sum] = "0794c74d33fed943e7c50609c13089e409312b6c403d6ae8984fc429c0960741"
29SRC_URI[sha256sum] = "9ac6ca3a883f151e568dcf979b8d2e5cbecc51b819bb0e6bb8a2e9b34cc428a7"
30 29
31# On build machines with python-docutils (not python3-docutils !!) installed 30# On build machines with python-docutils (not python3-docutils !!) installed
32# rst2man (not rst2man.py) is detected and compile fails with 31# rst2man (not rst2man.py) is detected and compile fails with
@@ -51,6 +50,7 @@ ALSA_UTILS_PKGS = "\
51 alsa-utils-speakertest \ 50 alsa-utils-speakertest \
52 alsa-utils-aseqnet \ 51 alsa-utils-aseqnet \
53 alsa-utils-aseqdump \ 52 alsa-utils-aseqdump \
53 alsa-utils-aseqsend \
54 alsa-utils-alsactl \ 54 alsa-utils-alsactl \
55 alsa-utils-alsaloop \ 55 alsa-utils-alsaloop \
56 alsa-utils-alsaucm \ 56 alsa-utils-alsaucm \
@@ -69,9 +69,10 @@ FILES:alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord ${bindir}/axfe
69FILES:alsa-utils-amixer = "${bindir}/amixer" 69FILES:alsa-utils-amixer = "${bindir}/amixer"
70FILES:alsa-utils-alsamixer = "${bindir}/alsamixer" 70FILES:alsa-utils-alsamixer = "${bindir}/alsamixer"
71FILES:alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/speaker-test/" 71FILES:alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/speaker-test/"
72FILES:alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi" 72FILES:alsa-utils-midi = "${bindir}/aplaymidi* ${bindir}/arecordmidi* ${bindir}/amidi"
73FILES:alsa-utils-aconnect = "${bindir}/aconnect" 73FILES:alsa-utils-aconnect = "${bindir}/aconnect"
74FILES:alsa-utils-aseqnet = "${bindir}/aseqnet" 74FILES:alsa-utils-aseqnet = "${bindir}/aseqnet"
75FILES:alsa-utils-aseqsend = "${bindir}/aseqsend"
75FILES:alsa-utils-iecset = "${bindir}/iecset" 76FILES:alsa-utils-iecset = "${bindir}/iecset"
76FILES:alsa-utils-alsactl = "${sbindir}/alsactl */udev/rules.d/90-alsa-restore.rules */*/udev/rules.d/90-alsa-restore.rules ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/" 77FILES:alsa-utils-alsactl = "${sbindir}/alsactl */udev/rules.d/90-alsa-restore.rules */*/udev/rules.d/90-alsa-restore.rules ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/"
77FILES:alsa-utils-aseqdump = "${bindir}/aseqdump" 78FILES:alsa-utils-aseqdump = "${bindir}/aseqdump"
@@ -118,7 +119,6 @@ do_install() {
118 rm -rf ${D}/unwanted 119 rm -rf ${D}/unwanted
119} 120}
120 121
121
122PROVIDES = "alsa-utils-alsaconf alsa-utils-scripts" 122PROVIDES = "alsa-utils-alsaconf alsa-utils-scripts"
123 123
124RDEPENDS:${PN}-scripts += "bash" 124RDEPENDS:${PN}-scripts += "bash"
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.1.1.bb
index aa59755034..4314ab9f31 100644
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb
+++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.1.1.bb
@@ -24,7 +24,7 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
24 24
25SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz" 25SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz"
26 26
27SRC_URI[sha256sum] = "8684f4b00f94b85461884c3719382f1261f0d9eb3d59640a1f4ac0873616f968" 27SRC_URI[sha256sum] = "733984395e0dbbe5c046abda2dc49a5544e7e0e1e2366bba849222ae9e3a03b1"
28 28
29# https://nvd.nist.gov/vuln/detail/CVE-2023-39018 29# https://nvd.nist.gov/vuln/detail/CVE-2023-39018
30# https://github.com/bramp/ffmpeg-cli-wrapper/issues/291 30# https://github.com/bramp/ffmpeg-cli-wrapper/issues/291
@@ -42,7 +42,8 @@ ARM_INSTRUCTION_SET:armv6 = "arm"
42# libpostproc was previously packaged from a separate recipe 42# libpostproc was previously packaged from a separate recipe
43PROVIDES = "libav libpostproc" 43PROVIDES = "libav libpostproc"
44 44
45DEPENDS = "nasm-native" 45DEPENDS:append:x86 = " nasm-native"
46DEPENDS:append:x86-64 = " nasm-native"
46 47
47inherit autotools pkgconfig 48inherit autotools pkgconfig
48 49
@@ -124,6 +125,8 @@ EXTRA_OECONF = " \
124" 125"
125 126
126EXTRA_OECONF:append:linux-gnux32 = " --disable-asm" 127EXTRA_OECONF:append:linux-gnux32 = " --disable-asm"
128# --enable-pic is used and x86 assembly is not PIC on x86
129EXTRA_OECONF:append:x86 = " --disable-asm"
127 130
128EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', '--disable-mips64r2 --disable-mips32r2', '', d)}" 131EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', '--disable-mips64r2 --disable-mips32r2', '', d)}"
129EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r2', '--disable-mips64r6 --disable-mips32r6', '', d)}" 132EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"
@@ -137,10 +140,6 @@ EXTRA_OECONF:append:powerpc = " --extra-libs=-latomic"
137EXTRA_OECONF:append:armv7a = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}" 140EXTRA_OECONF:append:armv7a = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}"
138EXTRA_OECONF:append:armv7ve = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}" 141EXTRA_OECONF:append:armv7ve = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}"
139 142
140# gold crashes on x86, another solution is to --disable-asm but thats more hacky
141# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684
142
143LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
144LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=bfd ', '', d)}" 143LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=bfd ', '', d)}"
145 144
146EXTRA_OEMAKE = "V=1" 145EXTRA_OEMAKE = "V=1"
@@ -164,7 +163,8 @@ PACKAGES =+ "libavcodec \
164 libavutil \ 163 libavutil \
165 libpostproc \ 164 libpostproc \
166 libswresample \ 165 libswresample \
167 libswscale" 166 libswscale \
167 ${PN}-examples"
168 168
169FILES:libavcodec = "${libdir}/libavcodec${SOLIBS}" 169FILES:libavcodec = "${libdir}/libavcodec${SOLIBS}"
170FILES:libavdevice = "${libdir}/libavdevice${SOLIBS}" 170FILES:libavdevice = "${libdir}/libavdevice${SOLIBS}"
@@ -174,13 +174,6 @@ FILES:libavutil = "${libdir}/libavutil${SOLIBS}"
174FILES:libpostproc = "${libdir}/libpostproc${SOLIBS}" 174FILES:libpostproc = "${libdir}/libpostproc${SOLIBS}"
175FILES:libswresample = "${libdir}/libswresample${SOLIBS}" 175FILES:libswresample = "${libdir}/libswresample${SOLIBS}"
176FILES:libswscale = "${libdir}/libswscale${SOLIBS}" 176FILES:libswscale = "${libdir}/libswscale${SOLIBS}"
177FILES:${PN}-examples = "${datadir}/${BPN}/examples"
177 178
178# ffmpeg disables PIC on some platforms (e.g. x86-32) 179CVE_PRODUCT = "ffmpeg libswresample libavcodec"
179INSANE_SKIP:${MLPREFIX}libavcodec = "textrel"
180INSANE_SKIP:${MLPREFIX}libavdevice = "textrel"
181INSANE_SKIP:${MLPREFIX}libavfilter = "textrel"
182INSANE_SKIP:${MLPREFIX}libavformat = "textrel"
183INSANE_SKIP:${MLPREFIX}libavutil = "textrel"
184INSANE_SKIP:${MLPREFIX}libswscale = "textrel"
185INSANE_SKIP:${MLPREFIX}libswresample = "textrel"
186INSANE_SKIP:${MLPREFIX}libpostproc = "textrel"
diff --git a/meta/recipes-multimedia/flac/flac/0001-API-documentation-replace-modules.html-by-topics.htm.patch b/meta/recipes-multimedia/flac/flac/0001-API-documentation-replace-modules.html-by-topics.htm.patch
new file mode 100644
index 0000000000..0e6be8c8d2
--- /dev/null
+++ b/meta/recipes-multimedia/flac/flac/0001-API-documentation-replace-modules.html-by-topics.htm.patch
@@ -0,0 +1,45 @@
1From 6ad5b6a9ce81383ef75e6f7b88f54d3c29294e63 Mon Sep 17 00:00:00 2001
2From: Michael Opdenacker <michael.opdenacker@rootcommit.com>
3Date: Sat, 15 Mar 2025 11:50:08 +0100
4Subject: [PATCH] API documentation: replace modules.html by topics.html
5
6This fixes the issue reported on
7https://lists.xiph.org/pipermail/flac-dev/2025-February/006696.html
8
9Newer Doxygen versions call what was previously api/modules.html
10api/topics.html instead.
11
12Signed-off-by: Michael Opdenacker <michael.opdenacker@rootcommit.com>
13Suggested-by: Christian Weisgerber <naddy@mips.inka.de>
14Upstream-Status: Submitted [https://github.com/xiph/flac/pull/824]
15---
16 configure.ac | 2 +-
17 include/FLAC/all.h | 2 +-
18 2 files changed, 2 insertions(+), 2 deletions(-)
19
20diff --git a/configure.ac b/configure.ac
21index 8eb82320..74295eec 100644
22--- a/configure.ac
23+++ b/configure.ac
24@@ -296,7 +296,7 @@ if test "x$enable_doxygen_docs" != xfalse ; then
25 fi
26 AM_CONDITIONAL(FLaC__HAS_DOXYGEN, test -n "$DOXYGEN")
27
28-if test ! -n "$DOXYGEN" && test -f "$srcdir/doc/FLAC.tag" && test -f "$srcdir/doc/api/modules.html" ; then
29+if test ! -n "$DOXYGEN" && test -f "$srcdir/doc/FLAC.tag" && test -f "$srcdir/doc/api/topics.html" ; then
30 HAS_PREBUILT_DOXYGEN=yes
31 fi
32 AM_CONDITIONAL(FLaC__HAS_PREBUILT_DOXYGEN, test "x$HAS_PREBUILT_DOXYGEN" = xyes)
33diff --git a/include/FLAC/all.h b/include/FLAC/all.h
34index f29aa010..0be26fd7 100644
35--- a/include/FLAC/all.h
36+++ b/include/FLAC/all.h
37@@ -102,7 +102,7 @@
38 * \section getting_started Getting Started
39 *
40 * A good starting point for learning the API is to browse through
41- * the <A HREF="modules.html">modules</A>. Modules are logical
42+ * the <A HREF="topics.html">modules</A>. Modules are logical
43 * groupings of related functions or classes, which correspond roughly
44 * to header files or sections of header files. Each module includes a
45 * detailed description of the general usage of its functions or
diff --git a/meta/recipes-multimedia/flac/flac_1.4.3.bb b/meta/recipes-multimedia/flac/flac_1.5.0.bb
index d4e463cda5..d6df801aec 100644
--- a/meta/recipes-multimedia/flac/flac_1.4.3.bb
+++ b/meta/recipes-multimedia/flac/flac_1.5.0.bb
@@ -3,17 +3,20 @@ DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, a lossless audio compr
3HOMEPAGE = "https://xiph.org/flac/" 3HOMEPAGE = "https://xiph.org/flac/"
4BUGTRACKER = "https://github.com/xiph/flac/issues" 4BUGTRACKER = "https://github.com/xiph/flac/issues"
5SECTION = "libs" 5SECTION = "libs"
6LICENSE = "GFDL-1.2 & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-3-Clause" 6LICENSE = "GFDL-1.3 & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \ 7LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=802e79e394e372d01e863e3f4058cf40 \
8 file://src/Makefile.am;beginline=1;endline=17;md5=b1dab2704be7f01bfbd9b7f6d5f000a9 \ 8 file://src/Makefile.am;beginline=1;endline=17;md5=9c882153132df8f3a1cb1a8ca1f2350f \
9 file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 9 file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://src/flac/main.c;beginline=1;endline=18;md5=23099119c034d894bd1bf7ef5bd22101 \ 10 file://src/flac/main.c;beginline=1;endline=18;md5=1e826b5083ba1e028852fe7ceec6a8ad \
11 file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \ 11 file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \
12 file://COPYING.Xiph;md5=0c90e41ab2fa7e69ca9391330d870221 \ 12 file://COPYING.Xiph;md5=78a131b2ea50675d245d280ccc34f8b6 \
13 file://include/FLAC/all.h;beginline=65;endline=70;md5=39aaf5e03c7364363884c8b8ddda8eea" 13 file://include/FLAC/all.h;beginline=65;endline=70;md5=39aaf5e03c7364363884c8b8ddda8eea \
14 "
14 15
15SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz" 16SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz \
16SRC_URI[sha256sum] = "6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70" 17 file://0001-API-documentation-replace-modules.html-by-topics.htm.patch"
18
19SRC_URI[sha256sum] = "f2c1c76592a82ffff8413ba3c4a1299b6c7ab06c734dee03fd88630485c2b920"
17 20
18CVE_PRODUCT = "libflac flac" 21CVE_PRODUCT = "libflac flac"
19 22
@@ -21,7 +24,6 @@ inherit autotools gettext
21 24
22EXTRA_OECONF = "--disable-oggtest \ 25EXTRA_OECONF = "--disable-oggtest \
23 --without-libiconv-prefix \ 26 --without-libiconv-prefix \
24 ac_cv_prog_NASM="" \
25 " 27 "
26 28
27PACKAGECONFIG ??= " \ 29PACKAGECONFIG ??= " \
@@ -34,3 +36,10 @@ PACKAGES += "libflac libflac++"
34FILES:${PN} = "${bindir}/*" 36FILES:${PN} = "${bindir}/*"
35FILES:libflac = "${libdir}/libFLAC.so.*" 37FILES:libflac = "${libdir}/libFLAC.so.*"
36FILES:libflac++ = "${libdir}/libFLAC++.so.*" 38FILES:libflac++ = "${libdir}/libFLAC++.so.*"
39
40do_install:append() {
41 # make the links in documentation relative to avoid buildpaths reproducibility problem
42 sed -i "s#${S}/include#${includedir}#g" ${D}${docdir}/flac/FLAC.tag ${D}${docdir}/flac/api/*.html
43 # there is also one root path without trailing slash
44 sed -i "s#${S}#/#g" ${D}${docdir}/flac/api/*.html
45}
diff --git a/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch b/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch
index 21e30d6d46..aeb296aa96 100644
--- a/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch
+++ b/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch
@@ -1,4 +1,4 @@
1From 0c73b8131efba63c5cd37ea8c7551434c3b57304 Mon Sep 17 00:00:00 2001 1From 9ed608c901955b0906aac102d5d7ab06accee60e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 9 Sep 2018 17:38:10 -0700 3Date: Sun, 9 Sep 2018 17:38:10 -0700
4Subject: [PATCH] connect has a different signature on musl 4Subject: [PATCH] connect has a different signature on musl
@@ -8,10 +8,9 @@ API has a different signature, this patch fixes this so it can compile
8on musl, the functionality should remain same as it is immediately 8on musl, the functionality should remain same as it is immediately
9typcasted to struct sockaddr_in* type inside the function before use 9typcasted to struct sockaddr_in* type inside the function before use
10 10
11Upstream-Status: Pending 11Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8767]
12 12
13Signed-off-by: Khem Raj <raj.khem@gmail.com> 13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14
15--- 14---
16 validate/plugins/fault_injection/socket_interposer.c | 7 ++++++- 15 validate/plugins/fault_injection/socket_interposer.c | 7 ++++++-
17 1 file changed, 6 insertions(+), 1 deletion(-) 16 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gst-devtools_1.26.3.bb
index 2be406192f..f107af110b 100644
--- a/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-devtools_1.26.3.bb
@@ -12,7 +12,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-${PV}
12 file://0001-connect-has-a-different-signature-on-musl.patch \ 12 file://0001-connect-has-a-different-signature-on-musl.patch \
13 " 13 "
14 14
15SRC_URI[sha256sum] = "07766425ecb5bf857ab5ad3962321c55cd89f9386b720843f9df71c0a455eb9b" 15SRC_URI[sha256sum] = "4fde19c3c144834f8cb05c2ca3f14b3a50d395bad203d17f98a6e70c1672f2ba"
16 16
17DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base" 17DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base"
18RRECOMMENDS:${PN} = "git" 18RRECOMMENDS:${PN} = "git"
@@ -37,6 +37,7 @@ EXTRA_OEMESON += " \
37 -Ddoc=disabled \ 37 -Ddoc=disabled \
38 -Ddebug_viewer=disabled \ 38 -Ddebug_viewer=disabled \
39 -Dtests=disabled \ 39 -Dtests=disabled \
40 -Ddots_viewer=disabled \
40 -Dvalidate=enabled \ 41 -Dvalidate=enabled \
41 ${@gettext_oemeson(d)} \ 42 ${@gettext_oemeson(d)} \
42" 43"
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples/0001-Make-player-examples-installable.patch b/meta/recipes-multimedia/gstreamer/gst-examples/0001-Make-player-examples-installable.patch
index ab93c13244..828c87dc9a 100644
--- a/meta/recipes-multimedia/gstreamer/gst-examples/0001-Make-player-examples-installable.patch
+++ b/meta/recipes-multimedia/gstreamer/gst-examples/0001-Make-player-examples-installable.patch
@@ -13,25 +13,25 @@ https://bugzilla.gnome.org/show_bug.cgi?id=777827
13 playback/player/gtk/meson.build | 1 + 13 playback/player/gtk/meson.build | 1 +
14 2 files changed, 2 insertions(+) 14 2 files changed, 2 insertions(+)
15 15
16diff --git a/playback/player/gst-play/meson.build b/playback/player/gst-play/meson.build 16Index: gst-examples/playback/player/gst-play/meson.build
17index 8ec021d..977cc5c 100644 17===================================================================
18--- a/playback/player/gst-play/meson.build 18--- gst-examples.orig/playback/player/gst-play/meson.build
19+++ b/playback/player/gst-play/meson.build 19+++ gst-examples/playback/player/gst-play/meson.build
20@@ -2,5 +2,6 @@ executable('gst-play', 20@@ -2,5 +2,6 @@ executable('gst-play',
21 ['gst-play.c', 21 ['gst-play.c',
22 'gst-play-kb.c', 22 'gst-play-kb.c',
23 'gst-play-kb.h'], 23 'gst-play-kb.h'],
24+ install: true, 24+ install: true,
25 dependencies : [gst_dep, gstplayer_dep, m_dep]) 25 dependencies : [gst_dep, dependency('gstreamer-play-1.0'), m_dep])
26 26
27diff --git a/playback/player/gtk/meson.build b/playback/player/gtk/meson.build 27Index: gst-examples/playback/player/gtk/meson.build
28index f7a7419..6281130 100644 28===================================================================
29--- a/playback/player/gtk/meson.build 29--- gst-examples.orig/playback/player/gtk/meson.build
30+++ b/playback/player/gtk/meson.build 30+++ gst-examples/playback/player/gtk/meson.build
31@@ -13,5 +13,6 @@ if gtk_dep.found() 31@@ -20,5 +20,6 @@ if gtk_dep.found()
32 gtk_play_resources,
33 'gtk-video-renderer.h', 32 'gtk-video-renderer.h',
34 'gtk-video-renderer.c'], 33 'gtk-video-renderer.c'],
35+ install: true, 34 c_args : extra_c_args,
36 dependencies : [glib_dep, gobject_dep, gmodule_dep, gst_dep, gsttag_dep, gstplayer_dep, gtk_dep, x11_dep]) 35+ install: true,
36 dependencies : [gst_dep, gsttag_dep, gstplay_dep, gtk_dep, x11_dep])
37 endif 37 endif
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb b/meta/recipes-multimedia/gstreamer/gst-examples_1.26.3.bb
index 02282ac5d9..8835b7d97b 100644
--- a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-examples_1.26.3.bb
@@ -5,25 +5,25 @@ BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues"
5LICENSE = "LGPL-2.0-or-later" 5LICENSE = "LGPL-2.0-or-later"
6LIC_FILES_CHKSUM = "file://playback/player/gtk/gtk-play.c;beginline=1;endline=20;md5=f8c72dae3d36823ec716a9ebcae593b9" 6LIC_FILES_CHKSUM = "file://playback/player/gtk/gtk-play.c;beginline=1;endline=20;md5=f8c72dae3d36823ec716a9ebcae593b9"
7 7
8DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gtk+3 libsoup-2.4 json-glib glib-2.0-native" 8DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gtk+3 json-glib glib-2.0-native"
9 9
10SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gst-examples.git;protocol=https;branch=1.18 \ 10SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gstreamer.git;protocol=https;branch=1.26;tag=${PV} \
11 file://0001-Make-player-examples-installable.patch \ 11 file://0001-Make-player-examples-installable.patch \
12 file://gst-player.desktop \ 12 file://gst-player.desktop \
13 " 13 "
14 14
15SRCREV = "70e4fcf4fc8ae19641aa990de5f37d758cdfcea4" 15SRCREV = "87bc0c6e949e3dcc440658f78ef52aa8088cb62f"
16 16
17S = "${WORKDIR}/git" 17S = "${UNPACKDIR}/${BP}/subprojects/gst-examples"
18 18
19inherit meson pkgconfig features_check 19inherit meson pkgconfig features_check
20 20
21UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)" 21UPSTREAM_CHECK_GITTAGREGEX = "^(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
22 22
23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
24 24
25do_install:append() { 25do_install:append() {
26 install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop 26 install -m 0644 -D ${UNPACKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop
27} 27}
28 28
29RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback" 29RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.3.bb
index f3287efa96..4125fdf31f 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.3.bb
@@ -12,9 +12,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
12 " 12 "
13 13
14SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz" 14SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
15SRC_URI[sha256sum] = "6b13dcc9332ef27a7c1e7005c0196883874f91622f8aa6e52f218b05b15d2bf5" 15SRC_URI[sha256sum] = "3ada7e50a3b9b8ba3e405b14c4021e25fbb10379f77d2ce490aa16523ed2724d"
16 16
17S = "${WORKDIR}/gst-libav-${PV}" 17S = "${UNPACKDIR}/gst-libav-${PV}"
18 18
19DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg" 19DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg"
20 20
@@ -22,6 +22,7 @@ inherit meson pkgconfig upstream-version-is-even
22 22
23EXTRA_OEMESON += " \ 23EXTRA_OEMESON += " \
24 -Dtests=disabled \ 24 -Dtests=disabled \
25 -Ddoc=disabled \
25" 26"
26 27
27FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" 28FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
index 6cc11e1928..dcb5c0e6b5 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
@@ -7,8 +7,8 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
7inherit packagegroup 7inherit packagegroup
8 8
9COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}" 9COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}"
10DEPENDS_UGLY="${@'gstreamer1.0-plugins-ugly' if 'ugly' in COMMERCIAL_PLUGINS.split('-') else ''}" 10DEPENDS_UGLY = "${@'gstreamer1.0-plugins-ugly' if 'ugly' in COMMERCIAL_PLUGINS.split('-') else ''}"
11DEPENDS_BAD="${@'gstreamer1.0-plugins-bad' if 'bad' in COMMERCIAL_PLUGINS.split('-') else ''}" 11DEPENDS_BAD = "${@'gstreamer1.0-plugins-bad' if 'bad' in COMMERCIAL_PLUGINS.split('-') else ''}"
12DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good ${DEPENDS_UGLY} ${DEPENDS_BAD}" 12DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good ${DEPENDS_UGLY} ${DEPENDS_BAD}"
13 13
14PACKAGES = "\ 14PACKAGES = "\
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb
deleted file mode 100644
index 97348fb398..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb
+++ /dev/null
@@ -1,47 +0,0 @@
1SUMMARY = "OpenMAX IL plugins for GStreamer"
2DESCRIPTION = "Wraps available OpenMAX IL components and makes them available as standard GStreamer elements."
3HOMEPAGE = "http://gstreamer.freedesktop.org/"
4SECTION = "multimedia"
5
6LICENSE = "LGPL-2.1-or-later"
7LICENSE_FLAGS = "commercial"
8LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
9 file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
10
11SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
12
13SRC_URI[sha256sum] = "18dfdf5f6b773d67e62a315c6cf6247da320b83603a5819493f53c69ed2eeef6"
14
15S = "${WORKDIR}/gst-omx-${PV}"
16
17DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad virtual/libomxil"
18
19inherit meson pkgconfig upstream-version-is-even
20
21GSTREAMER_1_0_OMX_TARGET ?= "bellagio"
22GSTREAMER_1_0_OMX_CORE_NAME ?= "${libdir}/libomxil-bellagio.so.0"
23
24EXTRA_OEMESON += "-Dtarget=${GSTREAMER_1_0_OMX_TARGET}"
25
26python __anonymous () {
27 omx_target = d.getVar("GSTREAMER_1_0_OMX_TARGET")
28 if omx_target in ['generic', 'bellagio']:
29 # Bellagio headers are incomplete (they are missing the OMX_VERSION_MAJOR,#
30 # OMX_VERSION_MINOR, OMX_VERSION_REVISION, and OMX_VERSION_STEP macros);
31 # appending a directory path to gst-omx' internal OpenMAX IL headers fixes this
32 d.appendVar("CFLAGS", " -I${S}/omx/openmax")
33 elif omx_target == "rpi":
34 # Dedicated Raspberry Pi OpenMAX IL support makes this package machine specific
35 d.setVar("PACKAGE_ARCH", d.getVar("MACHINE_ARCH"))
36}
37
38set_omx_core_name() {
39 sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}${sysconfdir}/xdg/gstomx.conf"
40}
41do_install[postfuncs] += " set_omx_core_name "
42
43FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
44FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
45
46VIRTUAL-RUNTIME_libomxil ?= "libomxil"
47RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_libomxil}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch
index a57fcd7d21..4dd9febbf6 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch
@@ -1,4 +1,4 @@
1From 8be0c6ac60c96e87d8aa443be9c431844dc3d92a Mon Sep 17 00:00:00 2001 1From 9456674cea4a933d5fbc24230d307fe0f52588f3 Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com> 2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Tue, 26 Jan 2016 15:16:01 -0800 3Date: Tue, 26 Jan 2016 15:16:01 -0800
4Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os 4Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os
@@ -6,13 +6,12 @@ Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os
6Upstream-Status: Pending 6Upstream-Status: Pending
7 7
8Signed-off-by: Andre McCurdy <armccurdy@gmail.com> 8Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
9
10--- 9---
11 gst-libs/gst/codecparsers/gstvc1parser.c | 2 +- 10 gst-libs/gst/codecparsers/gstvc1parser.c | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-) 11 1 file changed, 1 insertion(+), 1 deletion(-)
13 12
14diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c 13diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c
15index 2c60ced..e8226d8 100644 14index f9af175..6661e2e 100644
16--- a/gst-libs/gst/codecparsers/gstvc1parser.c 15--- a/gst-libs/gst/codecparsers/gstvc1parser.c
17+++ b/gst-libs/gst/codecparsers/gstvc1parser.c 16+++ b/gst-libs/gst/codecparsers/gstvc1parser.c
18@@ -1730,7 +1730,7 @@ gst_vc1_parse_sequence_layer (const guint8 * data, gsize size, 17@@ -1730,7 +1730,7 @@ gst_vc1_parse_sequence_layer (const guint8 * data, gsize size,
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch
index 6509a293b7..e6ae7f4bfe 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch
@@ -1,4 +1,4 @@
1From 426ee79adeecc24605426030a486d7c5a755048c Mon Sep 17 00:00:00 2001 1From dd2b92fb70fed2799809c423fea79221a3e17108 Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com> 2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Wed, 3 Feb 2016 18:05:41 -0800 3Date: Wed, 3 Feb 2016 18:05:41 -0800
4Subject: [PATCH] avoid including <sys/poll.h> directly 4Subject: [PATCH] avoid including <sys/poll.h> directly
@@ -8,13 +8,12 @@ musl libc generates warnings if <sys/poll.h> is included directly.
8Upstream-Status: Pending 8Upstream-Status: Pending
9 9
10Signed-off-by: Andre McCurdy <armccurdy@gmail.com> 10Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
11
12--- 11---
13 sys/dvb/gstdvbsrc.c | 2 +- 12 sys/dvb/gstdvbsrc.c | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-) 13 1 file changed, 1 insertion(+), 1 deletion(-)
15 14
16diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c 15diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c
17index b8e5b1a..5bca6e5 100644 16index 33ee3ff..b8ddea9 100644
18--- a/sys/dvb/gstdvbsrc.c 17--- a/sys/dvb/gstdvbsrc.c
19+++ b/sys/dvb/gstdvbsrc.c 18+++ b/sys/dvb/gstdvbsrc.c
20@@ -98,7 +98,7 @@ 19@@ -98,7 +98,7 @@
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch
index 50a3143eca..d49cf5bd89 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch
@@ -1,4 +1,4 @@
1From e6eb7536fcfc2c75f7831f67b1f16f3f36ef2545 Mon Sep 17 00:00:00 2001 1From 11a08e3f3135b649b68714c77670c37559f3a33c Mon Sep 17 00:00:00 2001
2From: Andrey Zhizhikin <andrey.z@gmail.com> 2From: Andrey Zhizhikin <andrey.z@gmail.com>
3Date: Mon, 27 Jan 2020 10:22:35 +0000 3Date: Mon, 27 Jan 2020 10:22:35 +0000
4Subject: [PATCH] opencv: resolve missing opencv data dir in yocto build 4Subject: [PATCH] opencv: resolve missing opencv data dir in yocto build
@@ -12,22 +12,21 @@ Upstream-Status: Inappropriate [OE-specific]
12 12
13Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com> 13Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
14Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 14Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
15
16--- 15---
17 ext/opencv/meson.build | 3 +++ 16 gst-libs/gst/opencv/meson.build | 3 +++
18 1 file changed, 3 insertions(+) 17 1 file changed, 3 insertions(+)
19 18
20diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build 19diff --git a/gst-libs/gst/opencv/meson.build b/gst-libs/gst/opencv/meson.build
21index 37e2015..326f737 100644 20index 64e913e..42a0958 100644
22--- a/ext/opencv/meson.build 21--- a/gst-libs/gst/opencv/meson.build
23+++ b/ext/opencv/meson.build 22+++ b/gst-libs/gst/opencv/meson.build
24@@ -87,6 +87,9 @@ if opencv_found 23@@ -61,6 +61,9 @@ gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"']
25 opencv_prefix = opencv_dep.get_variable('prefix') 24 # /usr/include/opencv4/opencv2/flann/logger.h:83:36: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
26 gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"'] 25 gstopencv_cargs += cxx.get_supported_arguments(['-Wno-missing-include-dirs', '-Wno-format-nonliteral'])
27 26
28+ pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip() 27+pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip()
29+ opencv_prefix = pkgconf_sysroot + opencv_prefix 28+opencv_prefix = pkgconf_sysroot + opencv_prefix
30+ 29+
31 # Check the data dir used by opencv for its xml data files 30 # Check the data dir used by opencv for its xml data files
32 # Use prefix from pkg-config to be compatible with cross-compilation 31 # Use prefix from pkg-config to be compatible with cross-compilation
33 r = run_command('test', '-d', opencv_prefix + '/share/opencv', check: false) 32 fsmod = import('fs')
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.3.bb
index 523ee7a5ae..12992057e7 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.3.bb
@@ -10,9 +10,9 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad
10 file://0002-avoid-including-sys-poll.h-directly.patch \ 10 file://0002-avoid-including-sys-poll.h-directly.patch \
11 file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \ 11 file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
12 " 12 "
13SRC_URI[sha256sum] = "808d3b33fc4c71aeb2561c364a87c2e8a3e2343319a83244c8391be4b09499c8" 13SRC_URI[sha256sum] = "95c48dacaf14276f4e595f4cbca94b3cfebfc22285e765e2aa56d0a7275d7561"
14 14
15S = "${WORKDIR}/gst-plugins-bad-${PV}" 15S = "${UNPACKDIR}/gst-plugins-bad-${PV}"
16 16
17LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" 17LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
18LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 18LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
@@ -28,10 +28,11 @@ PACKAGECONFIG ??= " \
28 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ 28 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
29 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ 29 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
30 bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \ 30 bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \
31 sndfile ttml uvch264 webp \ 31 sndfile ttml uvch264 webp analytics \
32 ${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'rsvg', d)} \ 32 ${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'rsvg', d)} \
33" 33"
34 34
35PACKAGECONFIG[analytics] = "-Danalyticsoverlay=enabled,-Danalyticsoverlay=disabled,"
35PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom" 36PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom"
36PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass" 37PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass"
37PACKAGECONFIG[avtp] = "-Davtp=enabled,-Davtp=disabled,libavtp" 38PACKAGECONFIG[avtp] = "-Davtp=enabled,-Davtp=disabled,libavtp"
@@ -46,6 +47,7 @@ PACKAGECONFIG[dtls] = "-Ddtls=enabled,-Ddtls=disabled,openssl"
46PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac" 47PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac"
47PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2" 48PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2"
48PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth" 49PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth"
50PACKAGECONFIG[gtk3] = "-Dgtk3=enabled,-Dgtk3=disabled,gtk3+"
49PACKAGECONFIG[hls] = "-Dhls=enabled,-Dhls=disabled," 51PACKAGECONFIG[hls] = "-Dhls=enabled,-Dhls=disabled,"
50# Pick atleast one crypto backend below when enabling hls 52# Pick atleast one crypto backend below when enabling hls
51PACKAGECONFIG[nettle] = "-Dhls-crypto=nettle,,nettle" 53PACKAGECONFIG[nettle] = "-Dhls-crypto=nettle,,nettle"
@@ -60,7 +62,7 @@ PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde26
60PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2" 62PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2"
61PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms" 63PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms"
62PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug" 64PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug"
63PACKAGECONFIG[msdk] = "-Dmsdk=enabled -Dmfx_api=oneVPL,-Dmsdk=disabled,onevpl-intel-gpu" 65PACKAGECONFIG[msdk] = "-Dmsdk=enabled -Dmfx_api=oneVPL,-Dmsdk=disabled,vpl-gpu-rt"
64PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon" 66PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon"
65PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft" 67PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft"
66PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv" 68PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv"
@@ -92,7 +94,7 @@ PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-load
92PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols libdrm" 94PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols libdrm"
93PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp" 95PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp"
94PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice" 96PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice"
95PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing" 97PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing-1"
96PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar" 98PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar"
97PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libxcb libxkbcommon" 99PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libxcb libxkbcommon"
98PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265" 100PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265"
@@ -124,7 +126,6 @@ EXTRA_OEMESON += " \
124 -Dgs=disabled \ 126 -Dgs=disabled \
125 -Dgsm=disabled \ 127 -Dgsm=disabled \
126 -Diqa=disabled \ 128 -Diqa=disabled \
127 -Dkate=disabled \
128 -Dladspa=disabled \ 129 -Dladspa=disabled \
129 -Dldac=disabled \ 130 -Dldac=disabled \
130 -Dlv2=disabled \ 131 -Dlv2=disabled \
@@ -152,6 +153,16 @@ EXTRA_OEMESON += " \
152 -Dwinscreencap=disabled \ 153 -Dwinscreencap=disabled \
153 -Dwpe=disabled \ 154 -Dwpe=disabled \
154 -Dzxing=disabled \ 155 -Dzxing=disabled \
156 -Dlcevcdecoder=disabled \
157 -Dlcevcencoder=disabled \
158 -Dtensordecoders=disabled \
159 -Dnvcomp=disabled \
160 -Dnvdswrapper=disabled \
161 -Dsvtjpegxs=disabled \
162 -Dwebview2=disabled \
163 -Daja=disabled \
164 -Dcuda-nvmm=disabled \
165 -Dd3d12=disabled \
155" 166"
156 167
157export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" 168export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}"
@@ -159,6 +170,8 @@ export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}"
159ARM_INSTRUCTION_SET:armv4 = "arm" 170ARM_INSTRUCTION_SET:armv4 = "arm"
160ARM_INSTRUCTION_SET:armv5 = "arm" 171ARM_INSTRUCTION_SET:armv5 = "arm"
161 172
173CVE_PRODUCT = "gst-plugins-bad"
174
162FILES:${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs" 175FILES:${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs"
163FILES:${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" 176FILES:${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
164FILES:${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles" 177FILES:${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch
index 34c99ded42..7373bd3e26 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch
@@ -1,4 +1,4 @@
1From 63fe5a7b4ef70e2c490bad3b0838329935a8d77c Mon Sep 17 00:00:00 2001 1From bd1436f0027bb09cdcf90386910a497422d9a871 Mon Sep 17 00:00:00 2001
2From: zhouming <b42586@freescale.com> 2From: zhouming <b42586@freescale.com>
3Date: Wed, 14 May 2014 10:16:20 +0800 3Date: Wed, 14 May 2014 10:16:20 +0800
4Subject: [PATCH] ENGR00312515: get caps from src pad when query caps 4Subject: [PATCH] ENGR00312515: get caps from src pad when query caps
@@ -8,7 +8,6 @@ https://bugzilla.gnome.org/show_bug.cgi?id=728312
8Upstream-Status: Pending 8Upstream-Status: Pending
9 9
10Signed-off-by: zhouming <b42586@freescale.com> 10Signed-off-by: zhouming <b42586@freescale.com>
11
12--- 11---
13 gst-libs/gst/tag/gsttagdemux.c | 13 +++++++++++++ 12 gst-libs/gst/tag/gsttagdemux.c | 13 +++++++++++++
14 1 file changed, 13 insertions(+) 13 1 file changed, 13 insertions(+)
@@ -17,7 +16,7 @@ Signed-off-by: zhouming <b42586@freescale.com>
17diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c 16diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
18old mode 100644 17old mode 100644
19new mode 100755 18new mode 100755
20index 173da37..2b7f34c 19index 975fe83..df82840
21--- a/gst-libs/gst/tag/gsttagdemux.c 20--- a/gst-libs/gst/tag/gsttagdemux.c
22+++ b/gst-libs/gst/tag/gsttagdemux.c 21+++ b/gst-libs/gst/tag/gsttagdemux.c
23@@ -1796,6 +1796,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) 22@@ -1796,6 +1796,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
index 2adeae93d6..fc9ad474d9 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
@@ -1,4 +1,4 @@
1From 7bf9525528c8f4a47413d7f82214d76f95f0c5f6 Mon Sep 17 00:00:00 2001 1From 1cc876662b7707eb5a2f668654f7921b5642e108 Mon Sep 17 00:00:00 2001
2From: Mingke Wang <mingke.wang@freescale.com> 2From: Mingke Wang <mingke.wang@freescale.com>
3Date: Thu, 19 Mar 2015 14:17:10 +0800 3Date: Thu, 19 Mar 2015 14:17:10 +0800
4Subject: [PATCH] ssaparse: enhance SSA text lines parsing. 4Subject: [PATCH] ssaparse: enhance SSA text lines parsing.
@@ -9,7 +9,6 @@ and there's are maybe multiple Dialog lines in one input buffer.
9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/178] 9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/178]
10 10
11Signed-off-by: Mingke Wang <mingke.wang@freescale.com> 11Signed-off-by: Mingke Wang <mingke.wang@freescale.com>
12
13--- 12---
14 gst/subparse/gstssaparse.c | 150 +++++++++++++++++++++++++++++++++---- 13 gst/subparse/gstssaparse.c | 150 +++++++++++++++++++++++++++++++++----
15 1 file changed, 134 insertions(+), 16 deletions(-) 14 1 file changed, 134 insertions(+), 16 deletions(-)
@@ -18,10 +17,10 @@ Signed-off-by: Mingke Wang <mingke.wang@freescale.com>
18diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c 17diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c
19old mode 100644 18old mode 100644
20new mode 100755 19new mode 100755
21index d6fdb9c..5ebe678 20index c162a54..bd8afd9
22--- a/gst/subparse/gstssaparse.c 21--- a/gst/subparse/gstssaparse.c
23+++ b/gst/subparse/gstssaparse.c 22+++ b/gst/subparse/gstssaparse.c
24@@ -270,6 +270,7 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt) 23@@ -304,6 +304,7 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt)
25 * gst_ssa_parse_push_line: 24 * gst_ssa_parse_push_line:
26 * @parse: caller element 25 * @parse: caller element
27 * @txt: text to push 26 * @txt: text to push
@@ -29,7 +28,7 @@ index d6fdb9c..5ebe678
29 * @start: timestamp for the buffer 28 * @start: timestamp for the buffer
30 * @duration: duration for the buffer 29 * @duration: duration for the buffer
31 * 30 *
32@@ -279,27 +280,133 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt) 31@@ -313,27 +314,133 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt)
33 * Returns: result of the push of the created buffer 32 * Returns: result of the push of the created buffer
34 */ 33 */
35 static GstFlowReturn 34 static GstFlowReturn
@@ -174,7 +173,7 @@ index d6fdb9c..5ebe678
174 GST_LOG_OBJECT (parse, "Text : %s", t); 173 GST_LOG_OBJECT (parse, "Text : %s", t);
175 174
176 if (gst_ssa_parse_remove_override_codes (parse, t)) { 175 if (gst_ssa_parse_remove_override_codes (parse, t)) {
177@@ -317,13 +424,22 @@ gst_ssa_parse_push_line (GstSsaParse * parse, gchar * txt, 176@@ -351,13 +458,22 @@ gst_ssa_parse_push_line (GstSsaParse * parse, gchar * txt,
178 gst_buffer_fill (buf, 0, escaped, len + 1); 177 gst_buffer_fill (buf, 0, escaped, len + 1);
179 gst_buffer_set_size (buf, len); 178 gst_buffer_set_size (buf, len);
180 g_free (escaped); 179 g_free (escaped);
@@ -201,7 +200,7 @@ index d6fdb9c..5ebe678
201 200
202 ret = gst_pad_push (parse->srcpad, buf); 201 ret = gst_pad_push (parse->srcpad, buf);
203 202
204@@ -343,6 +459,7 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf) 203@@ -377,6 +493,7 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf)
205 GstClockTime ts; 204 GstClockTime ts;
206 gchar *txt; 205 gchar *txt;
207 GstMapInfo map; 206 GstMapInfo map;
@@ -209,7 +208,7 @@ index d6fdb9c..5ebe678
209 208
210 if (G_UNLIKELY (!parse->framed)) 209 if (G_UNLIKELY (!parse->framed))
211 goto not_framed; 210 goto not_framed;
212@@ -360,13 +477,14 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf) 211@@ -394,13 +511,14 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf)
213 /* make double-sure it's 0-terminated and all */ 212 /* make double-sure it's 0-terminated and all */
214 gst_buffer_map (buf, &map, GST_MAP_READ); 213 gst_buffer_map (buf, &map, GST_MAP_READ);
215 txt = g_strndup ((gchar *) map.data, map.size); 214 txt = g_strndup ((gchar *) map.data, map.size);
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
index a605533be8..06b5bc41ed 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
@@ -1,4 +1,4 @@
1From 2b07840122bc2e83bd23dad59aa80d9479f2e1e4 Mon Sep 17 00:00:00 2001 1From c0c6944eca0c497477aa9f2cec2c83c4ea7a70e5 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org> 2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Tue, 21 May 2019 14:01:11 +0200 3Date: Tue, 21 May 2019 14:01:11 +0200
4Subject: [PATCH] viv-fb: Make sure config.h is included 4Subject: [PATCH] viv-fb: Make sure config.h is included
@@ -8,7 +8,6 @@ This prevents build errors due to missing GST_API_* symbols
8Upstream-Status: Pending 8Upstream-Status: Pending
9 9
10Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> 10Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
11
12--- 11---
13 gst-libs/gst/gl/gl-prelude.h | 4 ++++ 12 gst-libs/gst/gl/gl-prelude.h | 4 ++++
14 1 file changed, 4 insertions(+) 13 1 file changed, 4 insertions(+)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.3.bb
index 7aa10eb646..74eb1360f6 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.3.bb
@@ -11,9 +11,9 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-ba
11 file://0003-viv-fb-Make-sure-config.h-is-included.patch \ 11 file://0003-viv-fb-Make-sure-config.h-is-included.patch \
12 file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \ 12 file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \
13 " 13 "
14SRC_URI[sha256sum] = "65eaf72296cc5edc985695a4d80affc931e64a79f4879d05615854f7a2cf5bd1" 14SRC_URI[sha256sum] = "4ef9f9ef09025308ce220e2dd22a89e4c992d8ca71b968e3c70af0634ec27933"
15 15
16S = "${WORKDIR}/gst-plugins-base-${PV}" 16S = "${UNPACKDIR}/gst-plugins-base-${PV}"
17 17
18DEPENDS += "iso-codes util-linux zlib" 18DEPENDS += "iso-codes util-linux zlib"
19 19
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch
deleted file mode 100644
index 33bd4200f6..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From b77d4806fd5de50d0b017a3e6a19c5bfdef7b3e4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 13 Feb 2023 12:47:31 -0800
4Subject: [PATCH] v4l2: Define ioctl_req_t for posix/linux case
5
6this is an issue seen with musl based linux distros e.g. alpine [1]
7musl is not going to change this since it breaks ABI/API interfaces
8Newer compilers are stringent ( e.g. clang16 ) which can now detect
9signature mismatches in function pointers too, existing code warned but
10did not error with older clang
11
12Fixes
13gstv4l2object.c:544:23: error: incompatible function pointer types assigning to 'gint (*)(gint, ioctl_req_t, ...)' (aka 'int (*)(int, unsigned long, ...)') from 'int (int, int, ...)' [-Wincompatible-function-pointer-types]
14 v4l2object->ioctl = ioctl;
15 ^ ~~~~~
16
17[1] https://gitlab.alpinelinux.org/alpine/aports/-/issues/7580
18
19Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3950]
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
21
22---
23 sys/v4l2/gstv4l2object.h | 2 ++
24 1 file changed, 2 insertions(+)
25
26diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
27index d95b375..5223cbb 100644
28--- a/sys/v4l2/gstv4l2object.h
29+++ b/sys/v4l2/gstv4l2object.h
30@@ -76,6 +76,8 @@ typedef gboolean (*GstV4l2UpdateFpsFunction) (GstV4l2Object * v4l2object);
31 * 'unsigned long' for the 2nd parameter */
32 #ifdef __ANDROID__
33 typedef unsigned ioctl_req_t;
34+#elif defined(__linux__) && !defined(__GLIBC__) /* musl/linux */
35+typedef int ioctl_req_t;
36 #else
37 typedef gulong ioctl_req_t;
38 #endif
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.3.bb
index 9ce3f73f7c..601a7961c7 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.3.bb
@@ -4,12 +4,11 @@ SUMMARY = "'Good' GStreamer plugins"
4HOMEPAGE = "https://gstreamer.freedesktop.org/" 4HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues" 5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues"
6 6
7SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ 7SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz"
8 file://0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch"
9 8
10SRC_URI[sha256sum] = "6ddd032381827d31820540735f0004b429436b0bdac19aaeab44fa22faad52e2" 9SRC_URI[sha256sum] = "fe4ec9670edfe6bb1e5f27169ae145b5ac2dd218ac98bd8251c8fba41ad33c53"
11 10
12S = "${WORKDIR}/gst-plugins-good-${PV}" 11S = "${UNPACKDIR}/gst-plugins-good-${PV}"
13 12
14LICENSE = "LGPL-2.1-or-later" 13LICENSE = "LGPL-2.1-or-later"
15LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ 14LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
@@ -36,6 +35,8 @@ X11DISABLEOPTS = "-Dximagesrc=disabled -Dximagesrc-xshm=disabled -Dximagesrc-xfi
36 35
37QT5WAYLANDDEPENDS = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "qtwayland", "", d)}" 36QT5WAYLANDDEPENDS = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "qtwayland", "", d)}"
38 37
38PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr"
39PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr"
39PACKAGECONFIG[asm] = "-Dasm=enabled,-Dasm=disabled,nasm-native" 40PACKAGECONFIG[asm] = "-Dasm=enabled,-Dasm=disabled,nasm-native"
40PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" 41PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2"
41PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo" 42PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.3.bb
index 99f41d4f3d..cc3da89556 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.3.bb
@@ -15,9 +15,9 @@ SRC_URI = " \
15 https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ 15 https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
16 " 16 "
17 17
18SRC_URI[sha256sum] = "7758b7decfd20c00cae5700822bcbbf03f98c723e33e17634db2e07ca1da60bf" 18SRC_URI[sha256sum] = "417f5ee895f734ac0341b3719c175fff16b4c8eae8806e29e170b3bcb3d9dba5"
19 19
20S = "${WORKDIR}/gst-plugins-ugly-${PV}" 20S = "${UNPACKDIR}/gst-plugins-ugly-${PV}"
21 21
22DEPENDS += "gstreamer1.0-plugins-base" 22DEPENDS += "gstreamer1.0-plugins-base"
23 23
@@ -27,8 +27,6 @@ PACKAGECONFIG ??= " \
27 ${GSTREAMER_ORC} \ 27 ${GSTREAMER_ORC} \
28" 28"
29 29
30PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr"
31PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr"
32PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52" 30PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52"
33PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio" 31PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio"
34PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread" 32PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.3.bb
index 0fbb03f757..1f80063a0b 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.3.bb
@@ -8,14 +8,14 @@ LICENSE = "LGPL-2.1-or-later"
8LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740" 8LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740"
9 9
10SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" 10SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
11SRC_URI[sha256sum] = "f7a5450d93fd81bf46060dca7f4a048d095b6717961fec211731a11a994c99a7" 11SRC_URI[sha256sum] = "9343b9a7c45f472498c24ddb6fea9aba5f1a24395ddbc0b79da6e485e42d1b12"
12 12
13DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" 13DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject gstreamer1.0-plugins-bad"
14RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" 14RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
15 15
16PNREAL = "gst-python" 16PNREAL = "gst-python"
17 17
18S = "${WORKDIR}/${PNREAL}-${PV}" 18S = "${UNPACKDIR}/${PNREAL}-${PV}"
19 19
20EXTRA_OEMESON += "\ 20EXTRA_OEMESON += "\
21 -Dtests=disabled \ 21 -Dtests=disabled \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.3.bb
index 554ed9ec8f..7ee7a1f07f 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.3.bb
@@ -10,9 +10,9 @@ PNREAL = "gst-rtsp-server"
10 10
11SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" 11SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
12 12
13SRC_URI[sha256sum] = "ec49d474750a6ff6729c85b448abc607fb6840b21717ad7abc967e2adbf07a24" 13SRC_URI[sha256sum] = "415e8a53a9844789770dd4f116ac2e3a4a33de42673c57acc25c5ba0f4406fc5"
14 14
15S = "${WORKDIR}/${PNREAL}-${PV}" 15S = "${UNPACKDIR}/${PNREAL}-${PV}"
16 16
17inherit meson pkgconfig upstream-version-is-even gobject-introspection 17inherit meson pkgconfig upstream-version-is-even gobject-introspection
18 18
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.3.bb
index 87eb8484a1..98eba8bcdb 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.3.bb
@@ -11,9 +11,9 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
11 11
12SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz" 12SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz"
13 13
14SRC_URI[sha256sum] = "6eae1360658302b9b512fa46b4d06f5b818dfce5f2f43d7d710ca8142719d8ad" 14SRC_URI[sha256sum] = "2d643fbd1420297da5a4d6945d11f0a5b4f82feea54ea6aec9368d42995d8b03"
15 15
16S = "${WORKDIR}/${REALPN}-${PV}" 16S = "${UNPACKDIR}/${REALPN}-${PV}"
17DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" 17DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
18 18
19inherit meson pkgconfig features_check upstream-version-is-even 19inherit meson pkgconfig features_check upstream-version-is-even
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
index 0d839bd6c8..5db93c5be1 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
@@ -1,4 +1,4 @@
1From 5372cd5bf2a9dd247b9c5fc6e4fe248046dbb085 Mon Sep 17 00:00:00 2001 1From cb49c5433f343aa9ae6c0656d2e835365330922b Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100 3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH] tests: respect the idententaion used in meson 4Subject: [PATCH] tests: respect the idententaion used in meson
@@ -6,16 +6,15 @@ Subject: [PATCH] tests: respect the idententaion used in meson
6Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 6Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
7 7
8Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 8Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
9
10--- 9---
11 tests/check/meson.build | 10 +++++----- 10 tests/check/meson.build | 10 +++++-----
12 1 file changed, 5 insertions(+), 5 deletions(-) 11 1 file changed, 5 insertions(+), 5 deletions(-)
13 12
14diff --git a/tests/check/meson.build b/tests/check/meson.build 13diff --git a/tests/check/meson.build b/tests/check/meson.build
15index 9787b0a..16caac7 100644 14index e8419fc..4cc4618 100644
16--- a/tests/check/meson.build 15--- a/tests/check/meson.build
17+++ b/tests/check/meson.build 16+++ b/tests/check/meson.build
18@@ -145,11 +145,11 @@ foreach t : core_tests 17@@ -149,11 +149,11 @@ foreach t : core_tests
19 18
20 if not skip_test 19 if not skip_test
21 exe = executable(test_name, fname, 20 exe = executable(test_name, fname,
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
index 64717e66c3..ba8e410669 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
@@ -1,4 +1,4 @@
1From 27e977d03b0f7c1d0bf19621ef0cec0585410e7b Mon Sep 17 00:00:00 2001 1From bfb530d2f0761f28c2645e2c45de5147b0528e4d Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100 3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH] tests: add support for install the tests 4Subject: [PATCH] tests: add support for install the tests
@@ -10,7 +10,6 @@ This will provide to run the tests using the gnome-desktop-testing [1]
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11 11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13
14--- 13---
15 meson.build | 4 ++++ 14 meson.build | 4 ++++
16 meson_options.txt | 1 + 15 meson_options.txt | 1 +
@@ -20,10 +19,10 @@ Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
20 create mode 100644 tests/check/template.test.in 19 create mode 100644 tests/check/template.test.in
21 20
22diff --git a/meson.build b/meson.build 21diff --git a/meson.build b/meson.build
23index 60c7bec..f7650b1 100644 22index ba50005..09c7212 100644
24--- a/meson.build 23--- a/meson.build
25+++ b/meson.build 24+++ b/meson.build
26@@ -606,6 +606,10 @@ if bashcomp_dep.found() 25@@ -664,6 +664,10 @@ if bashcomp_dep.found()
27 endif 26 endif
28 endif 27 endif
29 28
@@ -35,10 +34,10 @@ index 60c7bec..f7650b1 100644
35 34
36 pkgconfig = import('pkgconfig') 35 pkgconfig = import('pkgconfig')
37diff --git a/meson_options.txt b/meson_options.txt 36diff --git a/meson_options.txt b/meson_options.txt
38index 7363bdb..a34ba37 100644 37index 39255cf..78af552 100644
39--- a/meson_options.txt 38--- a/meson_options.txt
40+++ b/meson_options.txt 39+++ b/meson_options.txt
41@@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso 40@@ -16,6 +16,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
42 option('memory-alignment', type: 'combo', 41 option('memory-alignment', type: 'combo',
43 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'], 42 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
44 value: 'malloc') 43 value: 'malloc')
@@ -47,14 +46,14 @@ index 7363bdb..a34ba37 100644
47 # Feature options 46 # Feature options
48 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries') 47 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
49diff --git a/tests/check/meson.build b/tests/check/meson.build 48diff --git a/tests/check/meson.build b/tests/check/meson.build
50index 16caac7..f2d400f 100644 49index 4cc4618..f290e2e 100644
51--- a/tests/check/meson.build 50--- a/tests/check/meson.build
52+++ b/tests/check/meson.build 51+++ b/tests/check/meson.build
53@@ -124,10 +124,16 @@ test_defines = [ 52@@ -128,10 +128,16 @@ test_defines = [
54 '-UG_DISABLE_ASSERT', 53 '-UG_DISABLE_ASSERT',
55 '-UG_DISABLE_CAST_CHECKS', 54 '-UG_DISABLE_CAST_CHECKS',
56 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"', 55 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
57- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"', 56- '-DTESTFILE="' + fsmod.as_posix(meson.current_source_dir()) + '/meson.build"',
58 '-DGST_DISABLE_DEPRECATED', 57 '-DGST_DISABLE_DEPRECATED',
59 ] 58 ]
60 59
@@ -68,7 +67,7 @@ index 16caac7..f2d400f 100644
68 # sanity checking 67 # sanity checking
69 if get_option('check').disabled() 68 if get_option('check').disabled()
70 if get_option('tests').enabled() 69 if get_option('tests').enabled()
71@@ -150,6 +156,8 @@ foreach t : core_tests 70@@ -154,6 +160,8 @@ foreach t : core_tests
72 include_directories : [configinc], 71 include_directories : [configinc],
73 link_with : link_with_libs, 72 link_with : link_with_libs,
74 dependencies : gst_deps + test_deps, 73 dependencies : gst_deps + test_deps,
@@ -77,7 +76,7 @@ index 16caac7..f2d400f 100644
77 ) 76 )
78 77
79 env = environment() 78 env = environment()
80@@ -161,6 +169,18 @@ foreach t : core_tests 79@@ -165,6 +173,18 @@ foreach t : core_tests
81 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner') 80 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
82 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer') 81 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
83 82
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
index 0fd830f150..79e494a22a 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
@@ -1,4 +1,4 @@
1From 7041bc5adf9501beb1428d8bbae6b351a6bf07f9 Mon Sep 17 00:00:00 2001 1From d24110809da4588354ad3df4ae99556e8c62838a Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sat, 24 Apr 2021 10:34:47 +0100 3Date: Sat, 24 Apr 2021 10:34:47 +0100
4Subject: [PATCH] tests: use a dictionaries for environment 4Subject: [PATCH] tests: use a dictionaries for environment
@@ -9,16 +9,15 @@ use a dictionary as this is simplest solution to install the environment.
9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
10 10
11Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 11Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
12
13--- 12---
14 tests/check/meson.build | 21 +++++++++++++-------- 13 tests/check/meson.build | 21 +++++++++++++--------
15 1 file changed, 13 insertions(+), 8 deletions(-) 14 1 file changed, 13 insertions(+), 8 deletions(-)
16 15
17diff --git a/tests/check/meson.build b/tests/check/meson.build 16diff --git a/tests/check/meson.build b/tests/check/meson.build
18index f2d400f..50dff7f 100644 17index f290e2e..a3ffcb6 100644
19--- a/tests/check/meson.build 18--- a/tests/check/meson.build
20+++ b/tests/check/meson.build 19+++ b/tests/check/meson.build
21@@ -160,14 +160,19 @@ foreach t : core_tests 20@@ -164,14 +164,19 @@ foreach t : core_tests
22 install: installed_tests_enabled, 21 install: installed_tests_enabled,
23 ) 22 )
24 23
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
index 5689dc9fbb..4b1aad2616 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
@@ -1,4 +1,4 @@
1From 1b1d1ce4227b6bea7c7def5dac4a663486e070c2 Mon Sep 17 00:00:00 2001 1From 3b9ae399b57cfb6e332fac6a90997a3abd33c819 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 2 May 2021 01:58:01 +0100 3Date: Sun, 2 May 2021 01:58:01 +0100
4Subject: [PATCH] tests: add helper script to run the installed_tests 4Subject: [PATCH] tests: add helper script to run the installed_tests
@@ -10,7 +10,6 @@ testing framework.
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11 11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13
14--- 13---
15 tests/check/meson.build | 17 +++++++++++++++++ 14 tests/check/meson.build | 17 +++++++++++++++++
16 tests/check/template.sh.in | 9 +++++++++ 15 tests/check/template.sh.in | 9 +++++++++
@@ -19,10 +18,10 @@ Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
19 create mode 100755 tests/check/template.sh.in 18 create mode 100755 tests/check/template.sh.in
20 19
21diff --git a/tests/check/meson.build b/tests/check/meson.build 20diff --git a/tests/check/meson.build b/tests/check/meson.build
22index 50dff7f..2b9e979 100644 21index a3ffcb6..b907dcf 100644
23--- a/tests/check/meson.build 22--- a/tests/check/meson.build
24+++ b/tests/check/meson.build 23+++ b/tests/check/meson.build
25@@ -184,6 +184,23 @@ foreach t : core_tests 24@@ -188,6 +188,23 @@ foreach t : core_tests
26 install_dir: installed_tests_metadir, 25 install_dir: installed_tests_metadir,
27 configuration: test_conf 26 configuration: test_conf
28 ) 27 )
@@ -48,7 +47,7 @@ index 50dff7f..2b9e979 100644
48 test(test_name, exe, env: env, timeout : 3 * 60) 47 test(test_name, exe, env: env, timeout : 3 * 60)
49diff --git a/tests/check/template.sh.in b/tests/check/template.sh.in 48diff --git a/tests/check/template.sh.in b/tests/check/template.sh.in
50new file mode 100755 49new file mode 100755
51index 0000000..cf7d31b 50index 0000000..f1318fa
52--- /dev/null 51--- /dev/null
53+++ b/tests/check/template.sh.in 52+++ b/tests/check/template.sh.in
54@@ -0,0 +1,9 @@ 53@@ -0,0 +1,9 @@
@@ -60,7 +59,7 @@ index 0000000..cf7d31b
60+GST_PLUGIN_LOADING_WHITELIST="@GST_PLUGIN_LOADING_WHITELIST@" 59+GST_PLUGIN_LOADING_WHITELIST="@GST_PLUGIN_LOADING_WHITELIST@"
61+GST_REGISTRY=@GST_REGISTRY@ 60+GST_REGISTRY=@GST_REGISTRY@
62+GST_STATE_IGNORE_ELEMENTS="@GST_STATE_IGNORE_ELEMENTS@" 61+GST_STATE_IGNORE_ELEMENTS="@GST_STATE_IGNORE_ELEMENTS@"
63+exec @TEST@ 62+exec @TEST@ "$@"
64diff --git a/tests/check/template.test.in b/tests/check/template.test.in 63diff --git a/tests/check/template.test.in b/tests/check/template.test.in
65index f701627..b74ef6a 100644 64index f701627..b74ef6a 100644
66--- a/tests/check/template.test.in 65--- a/tests/check/template.test.in
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
index 7d0312005f..44dc350eb3 100755
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
@@ -1,11 +1,13 @@
1#! /bin/sh 1#! /bin/sh
2 2
3# Multiply all timeouts by ten so they're more likely to work 3# Multiply all timeouts by five so they're more likely to work
4# on a loaded system. 4# on a loaded system. The default timeout is 20s so this makes it
5# one minute.
5export CK_TIMEOUT_MULTIPLIER=5 6export CK_TIMEOUT_MULTIPLIER=5
6 7
7# Skip some tests that we know are problematic 8# Skip some tests that we know are problematic
8export GST_CHECKS_IGNORE="" 9export GST_CHECKS_IGNORE=""
10
9# gstnetclientclock.c:test_functioning is very sensitive to load 11# gstnetclientclock.c:test_functioning is very sensitive to load
10GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning" 12GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning"
11 13
@@ -13,4 +15,12 @@ GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning"
13# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410 15# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410
14GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_infinite_seek_50_src_live" 16GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_infinite_seek_50_src_live"
15 17
16gnome-desktop-testing-runner gstreamer 18# Known unreliable tests as per subprojects/gst-devtools/validate/launcher/testsuites/check.py:
19GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,parser_pull_short_read"
20
21# These tests are fragile
22# https://bugzilla.yoctoproject.org/show_bug.cgi?id=14884
23# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3524
24GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,parser_convert_duration,parser_pull_frame_growth,parser_reverse_playback"
25
26gnome-desktop-testing-runner --parallel=4 gstreamer "$@"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.3.bb
index 8965497d01..9de76944fb 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.3.bb
@@ -13,7 +13,7 @@ inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection p
13LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \ 13LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
14 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" 14 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
15 15
16S = "${WORKDIR}/gstreamer-${PV}" 16S = "${UNPACKDIR}/gstreamer-${PV}"
17 17
18SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ 18SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
19 file://run-ptest \ 19 file://run-ptest \
@@ -22,7 +22,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.x
22 file://0003-tests-use-a-dictionaries-for-environment.patch \ 22 file://0003-tests-use-a-dictionaries-for-environment.patch \
23 file://0004-tests-add-helper-script-to-run-the-installed_tests.patch \ 23 file://0004-tests-add-helper-script-to-run-the-installed_tests.patch \
24 " 24 "
25SRC_URI[sha256sum] = "3d16259e9dab8b002c57ce208a09b350d8282f5b0197306c0cdba9a0d0799744" 25SRC_URI[sha256sum] = "dc661603221293dccc740862425eb54fbbed60fb29d08c801d440a6a3ff82680"
26 26
27PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ 27PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
28 check \ 28 check \
diff --git a/meta/recipes-multimedia/lame/lame_3.100.bb b/meta/recipes-multimedia/lame/lame_3.100.bb
index 5b42795f4e..efaf3b9817 100644
--- a/meta/recipes-multimedia/lame/lame_3.100.bb
+++ b/meta/recipes-multimedia/lame/lame_3.100.bb
@@ -14,10 +14,9 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/lame/lame-${PV}.tar.gz \
14 file://no-gtk1.patch \ 14 file://no-gtk1.patch \
15 " 15 "
16 16
17SRC_URI[md5sum] = "83e260acbe4389b54fe08e0bdbf7cddb"
18SRC_URI[sha256sum] = "ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e" 17SRC_URI[sha256sum] = "ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e"
19 18
20inherit autotools pkgconfig 19inherit autotools pkgconfig sourceforge-releases
21 20
22PACKAGES += "libmp3lame libmp3lame-dev" 21PACKAGES += "libmp3lame libmp3lame-dev"
23FILES:${PN} = "${bindir}/lame" 22FILES:${PN} = "${bindir}/lame"
diff --git a/meta/recipes-multimedia/libogg/libogg_1.3.5.bb b/meta/recipes-multimedia/libogg/libogg_1.3.6.bb
index b4f02e404c..4810f156f2 100644
--- a/meta/recipes-multimedia/libogg/libogg_1.3.5.bb
+++ b/meta/recipes-multimedia/libogg/libogg_1.3.6.bb
@@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \
11 11
12SRC_URI = "http://downloads.xiph.org/releases/ogg/${BP}.tar.xz" 12SRC_URI = "http://downloads.xiph.org/releases/ogg/${BP}.tar.xz"
13 13
14SRC_URI[md5sum] = "3178c98341559657a15b185bf5d700a5" 14SRC_URI[sha256sum] = "5c8253428e181840cd20d41f3ca16557a9cc04bad4a3d04cce84808677fa1061"
15SRC_URI[sha256sum] = "c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705"
16 15
17inherit autotools pkgconfig 16inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch
deleted file mode 100644
index 876e80ef76..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch
+++ /dev/null
@@ -1,58 +0,0 @@
1To enable --disable-Werror for libomxil to avoid some compilers which check code strictly.
2
3For example, at least the following errors happened to some compilers:
4
51) OMX_INDEXTYPE in include/OMX_Index.h IS NOT OMX_INDEXVENDORTYPE in src/base/omx_base_component.h
6| i586-poky-linux-libtool: compile: i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/yocto-build5/poky/build/tmp/sysroots/qemux86 -DHAVE_Climinate-unused-debug-types -Wall -Werror -DCONFIG_DEBUG_LEVEL=0 -c OMXComponentRMExt.c -fPIC -DPIC -o .libs/libomxbase_la-OMXComponentRMExt.o
7| omx_base_component.c: In function 'omx_base_component_GetParameter':
8| omx_base_component.c:991:3: error: case value '2130706435' not in enumerated type 'OMX_INDEXTYPE' [-Werror=switch]
9| omx_base_component.c:918:3: error: case value '2130706436' not in enumerated type 'OMX_INDEXTYPE' [-Werror=switch]
10
112)
12| i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/yocto-build5/poky/build/tmp/sysroots/qemux86 -DHAVE_CONFIG_H -I. -I.. -DOMXILCOMPOminate-unused-debug-types -Wall -Werror -DCONFIG_DEBUG_LEVEL=0 -c -o omxregister_bellagio-omxregister.o `test -f 'omxregister.c' || echo './'`o
13| omxregister.c: In function 'buildComponentsList':
14| omxregister.c:175:7: error: variable 'err' set but not used [-Werror=unused-but-set-variable]
15| cc1: all warnings being treated as errors
16
17Upstream-Status: Inappropriate [configuration]
18
19Signed-off-by: Shane Wang <shane.wang@intel.com>
20
21diff -r 82d742d3ea90 configure.ac
22--- a/configure.ac Tue Dec 27 15:30:35 2011 +0800
23+++ b/configure.ac Tue Dec 27 16:26:03 2011 +0800
24@@ -5,7 +5,7 @@
25 AC_PREREQ([2.59])
26
27 AC_CONFIG_HEADERS([config.h])
28-CFLAGS="${CFLAGS} -Wall -Werror"
29+CFLAGS="${CFLAGS} -Wall"
30
31 ################################################################################
32 # Set the shared versioning info, according to section 6.3 of the libtool info #
33@@ -122,6 +122,14 @@
34 [with_android=$enableval],
35 [with_android=no])
36
37+AC_ARG_ENABLE(
38+ [Werror],
39+ [AC_HELP_STRING(
40+ [--disable-Werror],
41+ [whether to diable treating gcc warnings as errors])],
42+ [with_Werror=$enableval],
43+ [with_Werror=yes])
44+
45 ################################################################################
46 # Check for programs #
47 ################################################################################
48@@ -193,6 +201,10 @@
49 CFG_DEBUG_LEVEL=255
50 fi
51
52+if test "x$with_Werror" = "xyes"; then
53+ CFLAGS="${CFLAGS} -Werror"
54+fi
55+
56 AC_SUBST(CFG_DEBUG_LEVEL)
57 CFLAGS="${CFLAGS} -DCONFIG_DEBUG_LEVEL=$CFG_DEBUG_LEVEL"
58
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/disable-so-versioning.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/disable-so-versioning.patch
deleted file mode 100644
index f408e4a621..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/disable-so-versioning.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1Disable so versioning since they are really not a versioned shared lib.
2
3Upstream-Status: Submitted @ https://sourceforge.net/p/omxil/bugs/59/
4
5Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
6
7diff -rub libomxil-bellagio-0.9.3-orig/src/components/audio_effects/Makefile.am libomxil-bellagio-0.9.3/src/components/audio_effects/Makefile.am
8--- libomxil-bellagio-0.9.3-orig/src/components/audio_effects/Makefile.am 2014-07-20 15:22:00.858425234 -0400
9+++ libomxil-bellagio-0.9.3/src/components/audio_effects/Makefile.am 2014-07-20 15:25:42.687525225 -0400
10@@ -10,4 +10,5 @@
11 libomxaudio_effects_la_CFLAGS = -I$(top_srcdir)/include \
12 -I$(top_srcdir)/src \
13 -I$(top_srcdir)/src/base
14+libomxaudio_effects_la_LDFLAGS = -avoid-version
15
16diff -rub libomxil-bellagio-0.9.3-orig/src/components/clocksrc/Makefile.am libomxil-bellagio-0.9.3/src/components/clocksrc/Makefile.am
17--- libomxil-bellagio-0.9.3-orig/src/components/clocksrc/Makefile.am 2014-07-20 15:22:00.858425234 -0400
18+++ libomxil-bellagio-0.9.3/src/components/clocksrc/Makefile.am 2014-07-20 15:24:49.151259753 -0400
19@@ -10,4 +10,4 @@
20 -I$(top_srcdir)/include \
21 -I$(top_srcdir)/src \
22 -I$(top_srcdir)/src/base
23-
24+libomxclocksrc_la_LDFLAGS = -avoid-version
25diff -rub libomxil-bellagio-0.9.3-orig/src/components/videoscheduler/Makefile.am libomxil-bellagio-0.9.3/src/components/videoscheduler/Makefile.am
26--- libomxil-bellagio-0.9.3-orig/src/components/videoscheduler/Makefile.am 2014-07-20 15:22:00.862425254 -0400
27+++ libomxil-bellagio-0.9.3/src/components/videoscheduler/Makefile.am 2014-07-20 15:22:36.462601786 -0400
28@@ -6,7 +6,7 @@
29 library_entry_point.c
30
31 libomxvideosched_la_LIBADD = $(top_builddir)/src/libomxil-bellagio.la
32-libomxvideosched_la_LDFLAGS =
33+libomxvideosched_la_LDFLAGS = -avoid-version
34 libomxvideosched_la_CFLAGS = -I$(top_srcdir)/include \
35 -I$(top_srcdir)/src \
36 -I$(top_srcdir)/src/base
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch
deleted file mode 100644
index 787953a99b..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1This patch fixes link issue when libomxdynamicloader.so is loaded :
2Missing symbol RM_Deinit.
3
4This patch comes from "http://pkgs.fedoraproject.org/cgit/libomxil-bellagio.git/commit/?h=f17&id=4996a95828943d345e51ded6876c3103653eecf8"
5
6Upstream-Status: Pending
7
8Signed-off-by: Sébastien Mennetrier <s.mennetrier@innotis.org>
9
10--- a/src/dynamic_loader/Makefile.am 2014-02-25 15:29:10.128549636 +0100
11+++ b/src/dynamic_loader/Makefile.am 2014-02-25 15:30:15.756548808 +0100
12@@ -3,7 +3,7 @@
13 omxdynamicloader_LTLIBRARIES = libomxdynamicloader.la
14 libomxdynamicloader_la_SOURCES = ste_dynamic_component_loader.c ste_dynamic_component_loader.h
15
16-libomxdynamicloader_la_LDFLAGS =
17+libomxdynamicloader_la_LDFLAGS = -lomxil-bellagio -L$(top_builddir)/src/.libs
18 libomxdynamicloader_la_CFLAGS = -I$(top_srcdir)/include \
19 -I$(top_srcdir)/src \
20 -I$(top_srcdir)/src/base \
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch
deleted file mode 100644
index dbe8c41f74..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1This patch is to remove DESTDIR in docdir.
2Otherwise, when users install by running `make install DESTDIR=/alternate/directory' specified in the file INSTALL, the doc will go into /alternate/directory/alternate/directory, which is not expected.
3
4Upstream-Status: Pending
5
6Signed-off-by: Shane Wang <shane.wang@intel.com>
7
8diff -r 30b597e4e70d Makefile.am
9--- a/Makefile.am Wed Dec 28 15:38:35 2011 +0800
10+++ b/Makefile.am Wed Dec 28 15:39:25 2011 +0800
11@@ -7,7 +7,7 @@
12 pkgconfigdir = $(libdir)/pkgconfig
13 pkgconfig_DATA = libomxil-bellagio.pc
14
15-docdir = $(DESTDIR)$(prefix)/share/doc/@PACKAGE@
16+docdir = $(prefix)/share/doc/@PACKAGE@
17 doc_DATA = README \
18 ChangeLog \
19 TODO
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch
deleted file mode 100644
index 483ca1328b..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch
+++ /dev/null
@@ -1,18 +0,0 @@
1This patch is to make libomxil Makefile support "make -jN".
2The omxregister_bellagio stuffs depend on libomxil_bellagio library.
3
4Upstream-Status: Pending
5
6Signed-off-by: Shane Wang <shane.wang@intel.com>
7
8diff -r f59d077d3dd5 Makefile.am
9--- a/src/Makefile.am Wed Dec 28 10:54:36 2011 +0800
10+++ b/src/Makefile.am Wed Dec 28 10:55:46 2011 +0800
11@@ -7,6 +7,7 @@
12 omxregister_bellagio_SOURCES = omxregister.c common.c common.h
13 omxregister_bellagio_CFLAGS = -DOMXILCOMPONENTSPATH=\"$(plugindir)/\" \
14 -I$(top_srcdir)/include
15+omxregister_bellagio_LDADD = $(lib_LTLIBRARIES)
16 omxregister_bellagio_LDFLAGS = -lomxil-bellagio -L$(builddir)
17
18 lib_LTLIBRARIES = libomxil-bellagio.la
diff --git a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
deleted file mode 100644
index 4564d619ae..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
+++ /dev/null
@@ -1,45 +0,0 @@
1SUMMARY = "Bellagio OpenMAX Integration Layer (IL)"
2DESCRIPTION = "Bellagio is an opensource implementation of the Khronos OpenMAX \
3 Integration Layer API to access multimedia components."
4HOMEPAGE = "http://omxil.sourceforge.net/"
5
6LICENSE = "LGPL-2.1-or-later"
7LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'amr', 'commercial', '', d)}"
8LIC_FILES_CHKSUM = "file://COPYING;md5=ae6f0f4dbc7ac193b50f323a6ae191cb \
9 file://src/omxcore.h;beginline=1;endline=27;md5=806b1e5566c06486fe8e42b461e03a90"
10
11SRC_URI = "${SOURCEFORGE_MIRROR}/omxil/libomxil-bellagio-${PV}.tar.gz \
12 file://configure-fix.patch \
13 file://parallel-make.patch \
14 file://makefile-docdir-fix.patch \
15 file://dynamicloader-linking.patch \
16 file://disable-so-versioning.patch"
17
18SRC_URI[md5sum] = "a1de827fdb75c02c84e55f740ca27cb8"
19SRC_URI[sha256sum] = "593c0729c8ef8c1467b3bfefcf355ec19a46dd92e31bfc280e17d96b0934d74c"
20
21S = "${WORKDIR}/${BPN}-bellagio-${PV}"
22
23inherit autotools
24
25EXTRA_OECONF += "--disable-doc --disable-Werror"
26
27PROVIDES += "virtual/libomxil"
28
29CFLAGS += "-fcommon"
30
31PACKAGECONFIG ??= ""
32
33PACKAGECONFIG[amr] = "--enable-amr,,"
34
35#
36# The .so files under ${libdir}/bellagio are not intended to be versioned and symlinked.
37# Make sure they get packaged in the main package.
38#
39FILES:${PN} += "${libdir}/bellagio/*.so \
40 ${libdir}/omxloaders/*${SOLIBS}"
41FILES:${PN}-staticdev += "${libdir}/bellagio/*.a \
42 ${libdir}/omxloaders/*.a"
43FILES:${PN}-dev += "${libdir}/bellagio/*.la \
44 ${libdir}/omxloaders/*.la \
45 ${libdir}/omxloaders/*${SOLIBSDEV}"
diff --git a/meta/recipes-multimedia/libpng/files/run-ptest b/meta/recipes-multimedia/libpng/files/run-ptest
new file mode 100644
index 0000000000..85051a59f5
--- /dev/null
+++ b/meta/recipes-multimedia/libpng/files/run-ptest
@@ -0,0 +1,7 @@
1#!/bin/sh
2
3set -eux
4
5cd src
6
7make check-TESTS
diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.43.bb b/meta/recipes-multimedia/libpng/libpng_1.6.43.bb
deleted file mode 100644
index f1febd0a02..0000000000
--- a/meta/recipes-multimedia/libpng/libpng_1.6.43.bb
+++ /dev/null
@@ -1,33 +0,0 @@
1SUMMARY = "PNG image format decoding library"
2DESCRIPTION = "An open source project to develop and maintain the reference \
3library for use in applications that read, create, and manipulate PNG \
4(Portable Network Graphics) raster image files. "
5HOMEPAGE = "http://www.libpng.org/"
6SECTION = "libs"
7LICENSE = "Libpng"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=0fdbfbe10fc294a6fca24dc76134222a"
9DEPENDS = "zlib"
10
11LIBV = "16"
12
13SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz"
14SRC_URI[sha256sum] = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c"
15
16MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/"
17
18UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html"
19
20BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
21
22inherit autotools binconfig-disabled pkgconfig
23
24# Work around missing symbols
25ARMNEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}"
26ARMNEON:aarch64 = "--enable-hardware-optimizations=on"
27EXTRA_OECONF += "${ARMNEON}"
28
29PACKAGES =+ "${PN}-tools"
30
31FILES:${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp"
32
33BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.48.bb b/meta/recipes-multimedia/libpng/libpng_1.6.48.bb
new file mode 100644
index 0000000000..e603df1edd
--- /dev/null
+++ b/meta/recipes-multimedia/libpng/libpng_1.6.48.bb
@@ -0,0 +1,71 @@
1SUMMARY = "PNG image format decoding library"
2DESCRIPTION = "An open source project to develop and maintain the reference \
3library for use in applications that read, create, and manipulate PNG \
4(Portable Network Graphics) raster image files. "
5HOMEPAGE = "http://www.libpng.org/"
6SECTION = "libs"
7LICENSE = "Libpng"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=5516d77a3cf75f55a0d37254e3e65a20"
9DEPENDS = "zlib"
10
11LIBV = "16"
12
13SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz \
14 file://run-ptest \
15"
16
17SRC_URI[sha256sum] = "46fd06ff37db1db64c0dc288d78a3f5efd23ad9ac41561193f983e20937ece03"
18
19MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/"
20
21UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html"
22
23BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
24
25inherit autotools binconfig-disabled pkgconfig ptest
26
27# Work around missing symbols
28ARMNEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}"
29ARMNEON:aarch64 = "--enable-hardware-optimizations=on"
30EXTRA_OECONF += "${ARMNEON}"
31
32PACKAGES =+ "${PN}-tools"
33
34FILES:${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp"
35
36RDEPENDS:${PN}-ptest += "make bash gawk"
37
38do_install_ptest() {
39 # Install test scripts to ptest path
40 install -d ${D}${PTEST_PATH}/src/tests
41 install -m 755 ${S}/tests/* ${D}${PTEST_PATH}/src/tests
42 install -m 755 ${S}/test-driver ${D}${PTEST_PATH}
43 install -d ${D}${PTEST_PATH}/src/tests/scripts
44 install -m 755 ${S}/scripts/*.awk ${D}${PTEST_PATH}/src/tests/scripts
45 install -m 644 ${S}/scripts/pnglib* ${S}/scripts/*.c ${S}/scripts/*.def ${S}/scripts/macro.lst ${D}${PTEST_PATH}/src/tests/scripts
46 install -m 644 ${S}/scripts/pnglibconf.h.prebuilt ${D}${PTEST_PATH}/src/tests/scripts/pnglibconf.h
47 install -d ${D}${PTEST_PATH}/src/contrib/tools
48 install -m 755 ${S}/contrib/tools/*.sh ${D}${PTEST_PATH}/src/contrib/tools
49 install -m 644 ${S}/contrib/tools/*.c ${S}/contrib/tools/*.h ${D}${PTEST_PATH}/src/contrib/tools
50
51 # Install .libs directory binaries to ptest path
52 install -m 755 ${B}/.libs/pngtest ${B}/.libs/pngstest ${B}/.libs/pngimage ${B}/.libs/pngunknown ${B}/.libs/pngvalid ${D}${PTEST_PATH}/src
53
54 # Copy png files to ptest path
55 cd ${S} && find contrib -name '*.png' | cpio -pd ${D}${PTEST_PATH}/src
56
57 # Install Makefile and png files
58 install -m 644 ${S}/pngtest.png ${D}${PTEST_PATH}/src
59 install -m 644 ${S}/*.png ${S}/*.h ${S}/*.c ${S}/*.dfa ${B}/pnglibconf.out ${S}/Makefile.am ${S}/Makefile.in ${D}${PTEST_PATH}/src/tests
60
61 sed -e 's/^abs_srcdir = ..*/abs_srcdir = \.\./' \
62 -e 's/^top_srcdir = ..*/top_srcdir = \.\./' \
63 -e 's/^srcdir = ..*/srcdir = \./' \
64 -e 's/^Makefile: ..*/Makefile: /' \
65 -e 's/check-TESTS: $(check_PROGRAMS)/check-TESTS:/g' \
66 ${B}/Makefile > ${D}${PTEST_PATH}/src/Makefile
67
68 sed -e 's|#!/bin/awk|#!/usr/bin/awk|g' -i ${D}${PTEST_PATH}/src/tests/scripts/*.awk
69}
70
71BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
index 29d48fd333..819096878b 100644
--- a/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
+++ b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
@@ -16,7 +16,7 @@ CVE_PRODUCT = "libsamplerate"
16 16
17GITHUB_BASE_URI = "https://github.com/libsndfile/libsamplerate/releases" 17GITHUB_BASE_URI = "https://github.com/libsndfile/libsamplerate/releases"
18 18
19S = "${WORKDIR}/libsamplerate-${PV}" 19S = "${UNPACKDIR}/libsamplerate-${PV}"
20 20
21inherit autotools pkgconfig github-releases 21inherit autotools pkgconfig github-releases
22 22
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/0001-Include-stdbool.h-instead-of-redefining-bool-true-an.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/0001-Include-stdbool.h-instead-of-redefining-bool-true-an.patch
new file mode 100644
index 0000000000..542a783859
--- /dev/null
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1/0001-Include-stdbool.h-instead-of-redefining-bool-true-an.patch
@@ -0,0 +1,65 @@
1From 0ba5ab2fb7f29a01dbe570c324011e8cffc89d82 Mon Sep 17 00:00:00 2001
2From: Fabian Greffrath <fabian@greffrath.com>
3Date: Tue, 17 Dec 2024 10:38:47 +0100
4Subject: [PATCH] Include <stdbool.h> instead of redefining `bool`, `true` and
5 `false` keywords
6
7Fixes #1049
8
9Upstream-Status: Submitted [https://github.com/libsndfile/libsndfile/pull/1055]
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 src/ALAC/alac_decoder.c | 6 +-----
14 src/ALAC/alac_encoder.c | 7 +------
15 2 files changed, 2 insertions(+), 11 deletions(-)
16
17diff --git a/src/ALAC/alac_decoder.c b/src/ALAC/alac_decoder.c
18index 46d3330..1b4a87c 100644
19--- a/src/ALAC/alac_decoder.c
20+++ b/src/ALAC/alac_decoder.c
21@@ -26,6 +26,7 @@
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <stddef.h>
25+#include <stdbool.h>
26 #include <string.h>
27
28 #include "alac_codec.h"
29@@ -38,11 +39,6 @@
30 #include "ALACBitUtilities.h"
31 #include "EndianPortable.h"
32
33-typedef enum
34-{ false = 0,
35- true = 1
36-} bool ;
37-
38 // constants/data
39 const uint32_t kMaxBitDepth = 32 ; // max allowed bit depth is 32
40
41diff --git a/src/ALAC/alac_encoder.c b/src/ALAC/alac_encoder.c
42index 599399a..f303311 100644
43--- a/src/ALAC/alac_encoder.c
44+++ b/src/ALAC/alac_encoder.c
45@@ -30,6 +30,7 @@
46 // headers
47 #include <stdio.h>
48 #include <stdlib.h>
49+#include <stdbool.h>
50 #include <string.h>
51
52 #include "sfendian.h"
53@@ -44,12 +45,6 @@
54 #include "ALACAudioTypes.h"
55 #include "EndianPortable.h"
56
57-typedef enum
58-{
59- false = 0,
60- true = 1
61-} bool ;
62-
63 static void GetConfig (ALAC_ENCODER *p, ALACSpecificConfig * config) ;
64
65 static int32_t EncodeStereo (ALAC_ENCODER *p, struct BitBuffer * bitstream, const int32_t * input, uint32_t stride, uint32_t channelIndex, uint32_t numSamples) ;
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2024-50612.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2024-50612.patch
new file mode 100644
index 0000000000..368dd5446b
--- /dev/null
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2024-50612.patch
@@ -0,0 +1,409 @@
1From 4755f5bd7854611d92ad0f1295587b439f9950ba Mon Sep 17 00:00:00 2001
2From: Arthur Taylor <art@ified.ca>
3Date: Fri, 15 Nov 2024 19:46:53 -0800
4Subject: [PATCH] src/ogg: better error checking for vorbis. Fixes #1035
5
6CVE: CVE-2024-50612
7Upstream-Status: Backport [4755f5bd7854611d92ad0f1295587b439f9950ba]
8Signed-off-by: Ross Burton <ross.burton@arm.com>
9---
10 src/ogg.c | 12 ++--
11 src/ogg_opus.c | 17 +++--
12 src/ogg_vorbis.c | 170 ++++++++++++++++++++++++++---------------------
13 3 files changed, 114 insertions(+), 85 deletions(-)
14
15diff --git a/src/ogg.c b/src/ogg.c
16index 529941af8..e2d679d41 100644
17--- a/src/ogg.c
18+++ b/src/ogg.c
19@@ -211,12 +211,16 @@ ogg_read_first_page (SF_PRIVATE *psf, OGG_PRIVATE *odata)
20
21 int
22 ogg_write_page (SF_PRIVATE *psf, ogg_page *page)
23-{ int bytes ;
24+{ int n ;
25
26- bytes = psf_fwrite (page->header, 1, page->header_len, psf) ;
27- bytes += psf_fwrite (page->body, 1, page->body_len, psf) ;
28+ n = psf_fwrite (page->header, 1, page->header_len, psf) ;
29+ if (n == page->header_len)
30+ n += psf_fwrite (page->body, 1, page->body_len, psf) ;
31
32- return bytes == page->header_len + page->body_len ;
33+ if (n != page->body_len + page->header_len)
34+ return -1 ;
35+
36+ return n ;
37 } /* ogg_write_page */
38
39 sf_count_t
40diff --git a/src/ogg_opus.c b/src/ogg_opus.c
41index 511653ecc..e01224b99 100644
42--- a/src/ogg_opus.c
43+++ b/src/ogg_opus.c
44@@ -827,15 +827,16 @@ ogg_opus_write_header (SF_PRIVATE *psf, int UNUSED (calc_length))
45
46 /* The first page MUST only contain the header, so flush it out now */
47 ogg_stream_packetin (&odata->ostream, &op) ;
48- for ( ; (nn = ogg_stream_flush (&odata->ostream, &odata->opage)) ; )
49- { if (! (nn = ogg_write_page (psf, &odata->opage)))
50+ while (ogg_stream_flush (&odata->ostream, &odata->opage))
51+ { nn = ogg_write_page (psf, &odata->opage) ;
52+ if (nn < 0)
53 { psf_log_printf (psf, "Opus : Failed to write header!\n") ;
54 if (psf->error)
55 return psf->error ;
56 return SFE_INTERNAL ;
57 } ;
58 psf->dataoffset += nn ;
59- }
60+ } ;
61
62 /*
63 ** Metadata Tags (manditory)
64@@ -850,15 +851,16 @@ ogg_opus_write_header (SF_PRIVATE *psf, int UNUSED (calc_length))
65 vorbiscomment_write_tags (psf, &op, &opustags_ident, opus_get_version_string (), - (OGG_OPUS_COMMENT_PAD)) ;
66 op.packetno = 2 ;
67 ogg_stream_packetin (&odata->ostream, &op) ;
68- for ( ; (nn = ogg_stream_flush (&odata->ostream, &odata->opage)) ; )
69- { if (! (nn = ogg_write_page (psf, &odata->opage)))
70+ while (ogg_stream_flush (&odata->ostream, &odata->opage))
71+ { nn = ogg_write_page (psf, &odata->opage) ;
72+ if (nn < 0)
73 { psf_log_printf (psf, "Opus : Failed to write comments!\n") ;
74 if (psf->error)
75 return psf->error ;
76 return SFE_INTERNAL ;
77 } ;
78 psf->dataoffset += nn ;
79- }
80+ } ;
81
82 return 0 ;
83 } /* ogg_opus_write_header */
84@@ -1132,7 +1134,8 @@ ogg_opus_write_out (SF_PRIVATE *psf, OGG_PRIVATE *odata, OPUS_PRIVATE *oopus)
85 if (nbytes > 0)
86 { oopus->u.encode.last_segments -= ogg_page_segments (&odata->opage) ;
87 oopus->pg_pos = oopus->pkt_pos ;
88- ogg_write_page (psf, &odata->opage) ;
89+ if (ogg_write_page (psf, &odata->opage) < 0)
90+ return -1 ;
91 }
92 else
93 break ;
94diff --git a/src/ogg_vorbis.c b/src/ogg_vorbis.c
95index add123966..fae252ca0 100644
96--- a/src/ogg_vorbis.c
97+++ b/src/ogg_vorbis.c
98@@ -82,28 +82,6 @@
99 /* How many seconds in the future to not bother bisection searching for. */
100 #define VORBIS_SEEK_THRESHOLD 2
101
102-typedef int convert_func (SF_PRIVATE *psf, int, void *, int, int, float **) ;
103-
104-static int vorbis_read_header (SF_PRIVATE *psf) ;
105-static int vorbis_write_header (SF_PRIVATE *psf, int calc_length) ;
106-static int vorbis_close (SF_PRIVATE *psf) ;
107-static int vorbis_command (SF_PRIVATE *psf, int command, void *data, int datasize) ;
108-static int vorbis_byterate (SF_PRIVATE *psf) ;
109-static int vorbis_calculate_granulepos (SF_PRIVATE *psf, uint64_t *gp_out) ;
110-static int vorbis_skip (SF_PRIVATE *psf, uint64_t target_gp) ;
111-static int vorbis_seek_trysearch (SF_PRIVATE *psf, uint64_t target_gp) ;
112-static sf_count_t vorbis_seek (SF_PRIVATE *psf, int mode, sf_count_t offset) ;
113-static sf_count_t vorbis_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
114-static sf_count_t vorbis_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
115-static sf_count_t vorbis_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
116-static sf_count_t vorbis_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
117-static sf_count_t vorbis_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
118-static sf_count_t vorbis_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
119-static sf_count_t vorbis_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
120-static sf_count_t vorbis_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
121-static sf_count_t vorbis_read_sample (SF_PRIVATE *psf, void *ptr, sf_count_t lens, convert_func *transfn) ;
122-static int vorbis_rnull (SF_PRIVATE *psf, int samples, void *vptr, int off , int channels, float **pcm) ;
123-
124 typedef struct
125 { int id ;
126 const char *name ;
127@@ -145,6 +123,45 @@ typedef struct
128 sf_count_t last_page ;
129 } VORBIS_PRIVATE ;
130
131+typedef int convert_func (SF_PRIVATE *psf, int, void *, int, int, float **) ;
132+
133+static int vorbis_read_header (SF_PRIVATE *psf) ;
134+static int vorbis_write_header (SF_PRIVATE *psf, int calc_length) ;
135+static int vorbis_close (SF_PRIVATE *psf) ;
136+static int vorbis_command (SF_PRIVATE *psf, int command, void *data, int datasize) ;
137+static int vorbis_byterate (SF_PRIVATE *psf) ;
138+static int vorbis_calculate_granulepos (SF_PRIVATE *psf, uint64_t *gp_out) ;
139+static int vorbis_skip (SF_PRIVATE *psf, uint64_t target_gp) ;
140+static int vorbis_seek_trysearch (SF_PRIVATE *psf, uint64_t target_gp) ;
141+static sf_count_t vorbis_seek (SF_PRIVATE *psf, int mode, sf_count_t offset) ;
142+static sf_count_t vorbis_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
143+static sf_count_t vorbis_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
144+static sf_count_t vorbis_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
145+static sf_count_t vorbis_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
146+static sf_count_t vorbis_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
147+static sf_count_t vorbis_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
148+static sf_count_t vorbis_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
149+static sf_count_t vorbis_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
150+static sf_count_t vorbis_read_sample (SF_PRIVATE *psf, void *ptr, sf_count_t lens, convert_func *transfn) ;
151+static int vorbis_write_samples (SF_PRIVATE *psf, OGG_PRIVATE *odata, VORBIS_PRIVATE *vdata, int in_frames) ;
152+static int vorbis_rnull (SF_PRIVATE *psf, int samples, void *vptr, int off , int channels, float **pcm) ;
153+static void vorbis_log_error (SF_PRIVATE *psf, int error) ;
154+
155+
156+static void
157+vorbis_log_error(SF_PRIVATE *psf, int error) {
158+ switch (error)
159+ { case 0: return;
160+ case OV_EIMPL: psf->error = SFE_UNIMPLEMENTED ; break ;
161+ case OV_ENOTVORBIS: psf->error = SFE_MALFORMED_FILE ; break ;
162+ case OV_EBADHEADER: psf->error = SFE_MALFORMED_FILE ; break ;
163+ case OV_EVERSION: psf->error = SFE_UNSUPPORTED_ENCODING ; break ;
164+ case OV_EFAULT:
165+ case OV_EINVAL:
166+ default: psf->error = SFE_INTERNAL ;
167+ } ;
168+} ;
169+
170 static int
171 vorbis_read_header (SF_PRIVATE *psf)
172 { OGG_PRIVATE *odata = (OGG_PRIVATE *) psf->container_data ;
173@@ -380,7 +397,6 @@ vorbis_write_header (SF_PRIVATE *psf, int UNUSED (calc_length))
174 { ogg_packet header ;
175 ogg_packet header_comm ;
176 ogg_packet header_code ;
177- int result ;
178
179 vorbis_analysis_headerout (&vdata->vdsp, &vdata->vcomment, &header, &header_comm, &header_code) ;
180 ogg_stream_packetin (&odata->ostream, &header) ; /* automatically placed in its own page */
181@@ -390,9 +406,9 @@ vorbis_write_header (SF_PRIVATE *psf, int UNUSED (calc_length))
182 /* This ensures the actual
183 * audio data will start on a new page, as per spec
184 */
185- while ((result = ogg_stream_flush (&odata->ostream, &odata->opage)) != 0)
186- { ogg_write_page (psf, &odata->opage) ;
187- } ;
188+ while (ogg_stream_flush (&odata->ostream, &odata->opage))
189+ if (ogg_write_page (psf, &odata->opage) < 0)
190+ return -1 ;
191 }
192
193 return 0 ;
194@@ -402,6 +418,7 @@ static int
195 vorbis_close (SF_PRIVATE *psf)
196 { OGG_PRIVATE* odata = psf->container_data ;
197 VORBIS_PRIVATE *vdata = psf->codec_data ;
198+ int ret = 0 ;
199
200 if (odata == NULL || vdata == NULL)
201 return 0 ;
202@@ -412,34 +429,14 @@ vorbis_close (SF_PRIVATE *psf)
203 if (psf->file.mode == SFM_WRITE)
204 {
205 if (psf->write_current <= 0)
206- vorbis_write_header (psf, 0) ;
207-
208- vorbis_analysis_wrote (&vdata->vdsp, 0) ;
209- while (vorbis_analysis_blockout (&vdata->vdsp, &vdata->vblock) == 1)
210- {
211+ ret = vorbis_write_header (psf, 0) ;
212
213- /* analysis, assume we want to use bitrate management */
214- vorbis_analysis (&vdata->vblock, NULL) ;
215- vorbis_bitrate_addblock (&vdata->vblock) ;
216-
217- while (vorbis_bitrate_flushpacket (&vdata->vdsp, &odata->opacket))
218- { /* weld the packet into the bitstream */
219- ogg_stream_packetin (&odata->ostream, &odata->opacket) ;
220-
221- /* write out pages (if any) */
222- while (!odata->eos)
223- { int result = ogg_stream_pageout (&odata->ostream, &odata->opage) ;
224- if (result == 0) break ;
225- ogg_write_page (psf, &odata->opage) ;
226-
227- /* this could be set above, but for illustrative purposes, I do
228- it here (to show that vorbis does know where the stream ends) */
229-
230- if (ogg_page_eos (&odata->opage)) odata->eos = 1 ;
231- }
232- }
233- }
234- }
235+ if (ret == 0)
236+ { /* A write of zero samples tells Vorbis the stream is done and to
237+ flush. */
238+ ret = vorbis_write_samples (psf, odata, vdata, 0) ;
239+ } ;
240+ } ;
241
242 /* ogg_page and ogg_packet structs always point to storage in
243 libvorbis. They are never freed or manipulated directly */
244@@ -449,7 +446,7 @@ vorbis_close (SF_PRIVATE *psf)
245 vorbis_comment_clear (&vdata->vcomment) ;
246 vorbis_info_clear (&vdata->vinfo) ;
247
248- return 0 ;
249+ return ret ;
250 } /* vorbis_close */
251
252 int
253@@ -688,33 +685,40 @@ vorbis_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t lens)
254 /*==============================================================================
255 */
256
257-static void
258+static int
259 vorbis_write_samples (SF_PRIVATE *psf, OGG_PRIVATE *odata, VORBIS_PRIVATE *vdata, int in_frames)
260-{
261- vorbis_analysis_wrote (&vdata->vdsp, in_frames) ;
262+{ int ret ;
263+
264+ if ((ret = vorbis_analysis_wrote (&vdata->vdsp, in_frames)) != 0)
265+ return ret ;
266
267 /*
268 ** Vorbis does some data preanalysis, then divvies up blocks for
269 ** more involved (potentially parallel) processing. Get a single
270 ** block for encoding now.
271 */
272- while (vorbis_analysis_blockout (&vdata->vdsp, &vdata->vblock) == 1)
273+ while ((ret = vorbis_analysis_blockout (&vdata->vdsp, &vdata->vblock)) == 1)
274 {
275 /* analysis, assume we want to use bitrate management */
276- vorbis_analysis (&vdata->vblock, NULL) ;
277- vorbis_bitrate_addblock (&vdata->vblock) ;
278+ if ((ret = vorbis_analysis (&vdata->vblock, NULL)) != 0)
279+ return ret ;
280+ if ((ret = vorbis_bitrate_addblock (&vdata->vblock)) != 0)
281+ return ret ;
282
283- while (vorbis_bitrate_flushpacket (&vdata->vdsp, &odata->opacket))
284+ while ((ret = vorbis_bitrate_flushpacket (&vdata->vdsp, &odata->opacket)) == 1)
285 {
286 /* weld the packet into the bitstream */
287- ogg_stream_packetin (&odata->ostream, &odata->opacket) ;
288+ if ((ret = ogg_stream_packetin (&odata->ostream, &odata->opacket)) != 0)
289+ return ret ;
290
291 /* write out pages (if any) */
292 while (!odata->eos)
293- { int result = ogg_stream_pageout (&odata->ostream, &odata->opage) ;
294- if (result == 0)
295+ { ret = ogg_stream_pageout (&odata->ostream, &odata->opage) ;
296+ if (ret == 0)
297 break ;
298- ogg_write_page (psf, &odata->opage) ;
299+
300+ if (ogg_write_page (psf, &odata->opage) < 0)
301+ return -1 ;
302
303 /* This could be set above, but for illustrative purposes, I do
304 ** it here (to show that vorbis does know where the stream ends) */
305@@ -722,16 +726,22 @@ vorbis_write_samples (SF_PRIVATE *psf, OGG_PRIVATE *odata, VORBIS_PRIVATE *vdata
306 odata->eos = 1 ;
307 } ;
308 } ;
309+ if (ret != 0)
310+ return ret ;
311 } ;
312+ if (ret != 0)
313+ return ret ;
314
315 vdata->gp += in_frames ;
316+
317+ return 0 ;
318 } /* vorbis_write_data */
319
320
321 static sf_count_t
322 vorbis_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t lens)
323 {
324- int i, m, j = 0 ;
325+ int i, m, j = 0, ret ;
326 OGG_PRIVATE *odata = (OGG_PRIVATE *) psf->container_data ;
327 VORBIS_PRIVATE *vdata = (VORBIS_PRIVATE *) psf->codec_data ;
328 int in_frames = lens / psf->sf.channels ;
329@@ -740,14 +750,17 @@ vorbis_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t lens)
330 for (m = 0 ; m < psf->sf.channels ; m++)
331 buffer [m][i] = (float) (ptr [j++]) / 32767.0f ;
332
333- vorbis_write_samples (psf, odata, vdata, in_frames) ;
334+ if ((ret = vorbis_write_samples (psf, odata, vdata, in_frames)))
335+ { vorbis_log_error (psf, ret) ;
336+ return 0 ;
337+ } ;
338
339 return lens ;
340 } /* vorbis_write_s */
341
342 static sf_count_t
343 vorbis_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t lens)
344-{ int i, m, j = 0 ;
345+{ int i, m, j = 0, ret ;
346 OGG_PRIVATE *odata = (OGG_PRIVATE *) psf->container_data ;
347 VORBIS_PRIVATE *vdata = (VORBIS_PRIVATE *) psf->codec_data ;
348 int in_frames = lens / psf->sf.channels ;
349@@ -756,14 +769,17 @@ vorbis_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t lens)
350 for (m = 0 ; m < psf->sf.channels ; m++)
351 buffer [m][i] = (float) (ptr [j++]) / 2147483647.0f ;
352
353- vorbis_write_samples (psf, odata, vdata, in_frames) ;
354+ if ((ret = vorbis_write_samples (psf, odata, vdata, in_frames)))
355+ { vorbis_log_error (psf, ret) ;
356+ return 0 ;
357+ } ;
358
359 return lens ;
360 } /* vorbis_write_i */
361
362 static sf_count_t
363 vorbis_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t lens)
364-{ int i, m, j = 0 ;
365+{ int i, m, j = 0, ret ;
366 OGG_PRIVATE *odata = (OGG_PRIVATE *) psf->container_data ;
367 VORBIS_PRIVATE *vdata = (VORBIS_PRIVATE *) psf->codec_data ;
368 int in_frames = lens / psf->sf.channels ;
369@@ -772,14 +788,17 @@ vorbis_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t lens)
370 for (m = 0 ; m < psf->sf.channels ; m++)
371 buffer [m][i] = ptr [j++] ;
372
373- vorbis_write_samples (psf, odata, vdata, in_frames) ;
374+ if ((ret = vorbis_write_samples (psf, odata, vdata, in_frames)) != 0)
375+ { vorbis_log_error (psf, ret) ;
376+ return 0 ;
377+ } ;
378
379 return lens ;
380 } /* vorbis_write_f */
381
382 static sf_count_t
383 vorbis_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t lens)
384-{ int i, m, j = 0 ;
385+{ int i, m, j = 0, ret ;
386 OGG_PRIVATE *odata = (OGG_PRIVATE *) psf->container_data ;
387 VORBIS_PRIVATE *vdata = (VORBIS_PRIVATE *) psf->codec_data ;
388 int in_frames = lens / psf->sf.channels ;
389@@ -788,7 +807,10 @@ vorbis_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t lens)
390 for (m = 0 ; m < psf->sf.channels ; m++)
391 buffer [m][i] = (float) ptr [j++] ;
392
393- vorbis_write_samples (psf, odata, vdata, in_frames) ;
394+ if ((ret = vorbis_write_samples (psf, odata, vdata, in_frames)) != 0)
395+ { vorbis_log_error (psf, ret) ;
396+ return 0 ;
397+ } ;
398
399 return lens ;
400 } /* vorbis_write_d */
401@@ -884,7 +906,7 @@ vorbis_seek_trysearch (SF_PRIVATE *psf, uint64_t target_gp)
402 return 0 ;
403
404 /* Search for a position a half large-block before our target. As Vorbis is
405- ** lapped, every sample position come from two blocks, the "left" half of
406+ ** lapped, every sample position comes from two blocks, the "left" half of
407 ** one block and the "right" half of the previous block. The granule
408 ** position of an Ogg page of a Vorbis stream is the sample offset of the
409 ** last finished sample in the stream that can be decoded from a page. A
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb b/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb
index a9ee7c3575..0ec40dda7a 100644
--- a/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb
@@ -10,6 +10,8 @@ LICENSE = "LGPL-2.1-only"
10SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libsndfile-${PV}.tar.xz \ 10SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libsndfile-${PV}.tar.xz \
11 file://noopus.patch \ 11 file://noopus.patch \
12 file://cve-2022-33065.patch \ 12 file://cve-2022-33065.patch \
13 file://CVE-2024-50612.patch \
14 file://0001-Include-stdbool.h-instead-of-redefining-bool-true-an.patch \
13 " 15 "
14GITHUB_BASE_URI = "https://github.com/libsndfile/libsndfile/releases/" 16GITHUB_BASE_URI = "https://github.com/libsndfile/libsndfile/releases/"
15 17
@@ -19,7 +21,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a"
19 21
20CVE_PRODUCT = "libsndfile" 22CVE_PRODUCT = "libsndfile"
21 23
22S = "${WORKDIR}/libsndfile-${PV}" 24S = "${UNPACKDIR}/libsndfile-${PV}"
23 25
24PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" 26PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}"
25PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" 27PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
diff --git a/meta/recipes-multimedia/libtheora/libtheora-1.1.1/no-docs.patch b/meta/recipes-multimedia/libtheora/libtheora-1.1.1/no-docs.patch
deleted file mode 100644
index 359f3d1a7a..0000000000
--- a/meta/recipes-multimedia/libtheora/libtheora-1.1.1/no-docs.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1Upstream-Status: Inappropriate [configuration]
2
3Index: libtheora-1.1.1/Makefile.am
4===================================================================
5--- libtheora-1.1.1.orig/Makefile.am 2009-11-25 22:01:53.593775926 +0100
6+++ libtheora-1.1.1/Makefile.am 2009-11-25 22:02:00.777524017 +0100
7@@ -8,7 +8,7 @@
8 EXAMPLES_DIR =
9 endif
10
11-SUBDIRS = lib include doc tests m4 $(EXAMPLES_DIR)
12+SUBDIRS = lib include tests m4 $(EXAMPLES_DIR)
13
14
15 # we include the whole debian/ dir in EXTRA_DIST because there's a problem
diff --git a/meta/recipes-multimedia/libtheora/libtheora/0001-add-missing-files.patch b/meta/recipes-multimedia/libtheora/libtheora/0001-add-missing-files.patch
new file mode 100644
index 0000000000..323ac7da83
--- /dev/null
+++ b/meta/recipes-multimedia/libtheora/libtheora/0001-add-missing-files.patch
@@ -0,0 +1,769 @@
1From 0880595f9b08d15da0e72cefaf24841cbb930883 Mon Sep 17 00:00:00 2001
2From: Gyorgy Sarvari <skandigraun@gmail.com>
3Date: Sat, 7 Jun 2025 14:10:40 +0200
4Subject: [PATCH] add missing files
5
6Due to a release issue, two files were not added to the libtheora 1.2.0
7release tarball - these files are required to be able to build the
8library for 32-bit ARM systems along with assembly optimization.
9
10This patch adds these files.
11
12This is not a code issue per-se, rather a tarballing one, as the files
13are present in the source code repository.
14
15Upstream-Status: Backport [https://gitlab.xiph.org/xiph/theora/-/issues/2338]
16
17Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
18---
19 lib/arm/armenc.c | 57 ++++
20 lib/arm/armloop.s | 676 ++++++++++++++++++++++++++++++++++++++++++++++
21 2 files changed, 733 insertions(+)
22 create mode 100644 lib/arm/armenc.c
23 create mode 100644 lib/arm/armloop.s
24
25diff --git a/lib/arm/armenc.c b/lib/arm/armenc.c
26new file mode 100644
27index 0000000..4cfb8a7
28--- /dev/null
29+++ b/lib/arm/armenc.c
30@@ -0,0 +1,57 @@
31+/********************************************************************
32+ * *
33+ * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. *
34+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
35+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
36+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
37+ * *
38+ * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2010 *
39+ * by the Xiph.Org Foundation and contributors *
40+ * https://www.xiph.org/ *
41+ * *
42+ ********************************************************************
43+
44+ function:
45+
46+ ********************************************************************/
47+#include "armenc.h"
48+
49+#if defined(OC_ARM_ASM)
50+
51+void oc_enc_accel_init_arm(oc_enc_ctx *_enc){
52+ ogg_uint32_t cpu_flags;
53+ cpu_flags=_enc->state.cpu_flags;
54+ oc_enc_accel_init_c(_enc);
55+# if defined(OC_ENC_USE_VTABLE)
56+ /*TODO: Add ARMv4 functions here.*/
57+# endif
58+# if defined(OC_ARM_ASM_EDSP)
59+ if(cpu_flags&OC_CPU_ARM_EDSP){
60+# if defined(OC_STATE_USE_VTABLE)
61+ /*TODO: Add EDSP functions here.*/
62+# endif
63+ }
64+# if defined(OC_ARM_ASM_MEDIA)
65+ if(cpu_flags&OC_CPU_ARM_MEDIA){
66+# if defined(OC_STATE_USE_VTABLE)
67+ /*TODO: Add Media functions here.*/
68+# endif
69+ }
70+# if defined(OC_ARM_ASM_NEON)
71+ if(cpu_flags&OC_CPU_ARM_NEON){
72+# if defined(OC_STATE_USE_VTABLE)
73+ _enc->opt_vtable.frag_satd=oc_enc_frag_satd_neon;
74+ _enc->opt_vtable.frag_satd2=oc_enc_frag_satd2_neon;
75+ _enc->opt_vtable.frag_intra_satd=oc_enc_frag_intra_satd_neon;
76+ _enc->opt_vtable.enquant_table_init=oc_enc_enquant_table_init_neon;
77+ _enc->opt_vtable.enquant_table_fixup=oc_enc_enquant_table_fixup_neon;
78+ _enc->opt_vtable.quantize=oc_enc_quantize_neon;
79+# endif
80+ _enc->opt_data.enquant_table_size=128*sizeof(ogg_uint16_t);
81+ _enc->opt_data.enquant_table_alignment=16;
82+ }
83+# endif
84+# endif
85+# endif
86+}
87+#endif
88diff --git a/lib/arm/armloop.s b/lib/arm/armloop.s
89new file mode 100644
90index 0000000..c35da0f
91--- /dev/null
92+++ b/lib/arm/armloop.s
93@@ -0,0 +1,676 @@
94+;********************************************************************
95+;* *
96+;* THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. *
97+;* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
98+;* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
99+;* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
100+;* *
101+;* THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2010 *
102+;* by the Xiph.Org Foundation and contributors *
103+;* https://www.xiph.org/ *
104+;* *
105+;********************************************************************
106+; Original implementation:
107+; Copyright (C) 2009 Robin Watts for Pinknoise Productions Ltd
108+;********************************************************************
109+
110+ AREA |.text|, CODE, READONLY
111+
112+ GET armopts.s
113+
114+ EXPORT oc_loop_filter_frag_rows_arm
115+
116+; Which bit this is depends on the order of packing within a bitfield.
117+; Hopefully that doesn't change among any of the relevant compilers.
118+OC_FRAG_CODED_FLAG * 1
119+
120+ ; Vanilla ARM v4 version
121+loop_filter_h_arm PROC
122+ ; r0 = unsigned char *_pix
123+ ; r1 = int _ystride
124+ ; r2 = int *_bv
125+ ; preserves r0-r3
126+ STMFD r13!,{r3-r6,r14}
127+ MOV r14,#8
128+ MOV r6, #255
129+lfh_arm_lp
130+ LDRB r3, [r0, #-2] ; r3 = _pix[0]
131+ LDRB r12,[r0, #1] ; r12= _pix[3]
132+ LDRB r4, [r0, #-1] ; r4 = _pix[1]
133+ LDRB r5, [r0] ; r5 = _pix[2]
134+ SUB r3, r3, r12 ; r3 = _pix[0]-_pix[3]+4
135+ ADD r3, r3, #4
136+ SUB r12,r5, r4 ; r12= _pix[2]-_pix[1]
137+ ADD r12,r12,r12,LSL #1 ; r12= 3*(_pix[2]-_pix[1])
138+ ADD r12,r12,r3 ; r12= _pix[0]-_pix[3]+3*(_pix[2]-_pix[1])+4
139+ MOV r12,r12,ASR #3
140+ LDRSB r12,[r2, r12]
141+ ; Stall (2 on Xscale)
142+ ADDS r4, r4, r12
143+ CMPGT r6, r4
144+ EORLT r4, r6, r4, ASR #32
145+ SUBS r5, r5, r12
146+ CMPGT r6, r5
147+ EORLT r5, r6, r5, ASR #32
148+ STRB r4, [r0, #-1]
149+ STRB r5, [r0], r1
150+ SUBS r14,r14,#1
151+ BGT lfh_arm_lp
152+ SUB r0, r0, r1, LSL #3
153+ LDMFD r13!,{r3-r6,PC}
154+ ENDP
155+
156+loop_filter_v_arm PROC
157+ ; r0 = unsigned char *_pix
158+ ; r1 = int _ystride
159+ ; r2 = int *_bv
160+ ; preserves r0-r3
161+ STMFD r13!,{r3-r6,r14}
162+ MOV r14,#8
163+ MOV r6, #255
164+lfv_arm_lp
165+ LDRB r3, [r0, -r1, LSL #1] ; r3 = _pix[0]
166+ LDRB r12,[r0, r1] ; r12= _pix[3]
167+ LDRB r4, [r0, -r1] ; r4 = _pix[1]
168+ LDRB r5, [r0] ; r5 = _pix[2]
169+ SUB r3, r3, r12 ; r3 = _pix[0]-_pix[3]+4
170+ ADD r3, r3, #4
171+ SUB r12,r5, r4 ; r12= _pix[2]-_pix[1]
172+ ADD r12,r12,r12,LSL #1 ; r12= 3*(_pix[2]-_pix[1])
173+ ADD r12,r12,r3 ; r12= _pix[0]-_pix[3]+3*(_pix[2]-_pix[1])+4
174+ MOV r12,r12,ASR #3
175+ LDRSB r12,[r2, r12]
176+ ; Stall (2 on Xscale)
177+ ADDS r4, r4, r12
178+ CMPGT r6, r4
179+ EORLT r4, r6, r4, ASR #32
180+ SUBS r5, r5, r12
181+ CMPGT r6, r5
182+ EORLT r5, r6, r5, ASR #32
183+ STRB r4, [r0, -r1]
184+ STRB r5, [r0], #1
185+ SUBS r14,r14,#1
186+ BGT lfv_arm_lp
187+ SUB r0, r0, #8
188+ LDMFD r13!,{r3-r6,PC}
189+ ENDP
190+
191+oc_loop_filter_frag_rows_arm PROC
192+ ; r0 = _ref_frame_data
193+ ; r1 = _ystride
194+ ; r2 = _bv
195+ ; r3 = _frags
196+ ; r4 = _fragi0
197+ ; r5 = _fragi0_end
198+ ; r6 = _fragi_top
199+ ; r7 = _fragi_bot
200+ ; r8 = _frag_buf_offs
201+ ; r9 = _nhfrags
202+ MOV r12,r13
203+ STMFD r13!,{r0,r4-r11,r14}
204+ LDMFD r12,{r4-r9}
205+ ADD r2, r2, #127 ; _bv += 127
206+ CMP r4, r5 ; if(_fragi0>=_fragi0_end)
207+ BGE oslffri_arm_end ; bail
208+ SUBS r9, r9, #1 ; r9 = _nhfrags-1 if (r9<=0)
209+ BLE oslffri_arm_end ; bail
210+ ADD r3, r3, r4, LSL #2 ; r3 = &_frags[fragi]
211+ ADD r8, r8, r4, LSL #2 ; r8 = &_frag_buf_offs[fragi]
212+ SUB r7, r7, r9 ; _fragi_bot -= _nhfrags;
213+oslffri_arm_lp1
214+ MOV r10,r4 ; r10= fragi = _fragi0
215+ ADD r11,r4, r9 ; r11= fragi_end-1=fragi+_nhfrags-1
216+oslffri_arm_lp2
217+ LDR r14,[r3], #4 ; r14= _frags[fragi] _frags++
218+ LDR r0, [r13] ; r0 = _ref_frame_data
219+ LDR r12,[r8], #4 ; r12= _frag_buf_offs[fragi] _frag_buf_offs++
220+ TST r14,#OC_FRAG_CODED_FLAG
221+ BEQ oslffri_arm_uncoded
222+ CMP r10,r4 ; if (fragi>_fragi0)
223+ ADD r0, r0, r12 ; r0 = _ref_frame_data + _frag_buf_offs[fragi]
224+ BLGT loop_filter_h_arm
225+ CMP r4, r6 ; if (_fragi0>_fragi_top)
226+ BLGT loop_filter_v_arm
227+ CMP r10,r11 ; if(fragi+1<fragi_end)===(fragi<fragi_end-1)
228+ LDRLT r12,[r3] ; r12 = _frags[fragi+1]
229+ ADD r0, r0, #8
230+ ADD r10,r10,#1 ; r10 = fragi+1;
231+ ANDLT r12,r12,#OC_FRAG_CODED_FLAG
232+ CMPLT r12,#OC_FRAG_CODED_FLAG ; && _frags[fragi+1].coded==0
233+ BLLT loop_filter_h_arm
234+ CMP r10,r7 ; if (fragi<_fragi_bot)
235+ LDRLT r12,[r3, r9, LSL #2] ; r12 = _frags[fragi+1+_nhfrags-1]
236+ SUB r0, r0, #8
237+ ADD r0, r0, r1, LSL #3
238+ ANDLT r12,r12,#OC_FRAG_CODED_FLAG
239+ CMPLT r12,#OC_FRAG_CODED_FLAG
240+ BLLT loop_filter_v_arm
241+ CMP r10,r11 ; while(fragi<=fragi_end-1)
242+ BLE oslffri_arm_lp2
243+ MOV r4, r10 ; r4 = fragi0 += _nhfrags
244+ CMP r4, r5
245+ BLT oslffri_arm_lp1
246+oslffri_arm_end
247+ LDMFD r13!,{r0,r4-r11,PC}
248+oslffri_arm_uncoded
249+ ADD r10,r10,#1
250+ CMP r10,r11
251+ BLE oslffri_arm_lp2
252+ MOV r4, r10 ; r4 = _fragi0 += _nhfrags
253+ CMP r4, r5
254+ BLT oslffri_arm_lp1
255+ LDMFD r13!,{r0,r4-r11,PC}
256+ ENDP
257+
258+ [ OC_ARM_ASM_MEDIA
259+ EXPORT oc_loop_filter_init_v6
260+ EXPORT oc_loop_filter_frag_rows_v6
261+
262+oc_loop_filter_init_v6 PROC
263+ ; r0 = _bv
264+ ; r1 = _flimit (=L from the spec)
265+ MVN r1, r1, LSL #1 ; r1 = <0xFFFFFF|255-2*L>
266+ AND r1, r1, #255 ; r1 = ll=r1&0xFF
267+ ORR r1, r1, r1, LSL #8 ; r1 = <ll|ll>
268+ PKHBT r1, r1, r1, LSL #16 ; r1 = <ll|ll|ll|ll>
269+ STR r1, [r0]
270+ MOV PC,r14
271+ ENDP
272+
273+; We could use the same strategy as the v filter below, but that would require
274+; 40 instructions to load the data and transpose it into columns and another
275+; 32 to write out the results at the end, plus the 52 instructions to do the
276+; filtering itself.
277+; This is slightly less, and less code, even assuming we could have shared the
278+; 52 instructions in the middle with the other function.
279+; It executes slightly fewer instructions than the ARMv6 approach David Conrad
280+; proposed for FFmpeg, but not by much:
281+; http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2010-February/083141.html
282+; His is a lot less code, though, because it only does two rows at once instead
283+; of four.
284+loop_filter_h_v6 PROC
285+ ; r0 = unsigned char *_pix
286+ ; r1 = int _ystride
287+ ; r2 = int _ll
288+ ; preserves r0-r3
289+ STMFD r13!,{r4-r11,r14}
290+ LDR r12,=0x10003
291+ BL loop_filter_h_core_v6
292+ ADD r0, r0, r1, LSL #2
293+ BL loop_filter_h_core_v6
294+ SUB r0, r0, r1, LSL #2
295+ LDMFD r13!,{r4-r11,PC}
296+ ENDP
297+
298+loop_filter_h_core_v6 PROC
299+ ; r0 = unsigned char *_pix
300+ ; r1 = int _ystride
301+ ; r2 = int _ll
302+ ; r12= 0x10003
303+ ; Preserves r0-r3, r12; Clobbers r4-r11.
304+ LDR r4,[r0, #-2]! ; r4 = <p3|p2|p1|p0>
305+ ; Single issue
306+ LDR r5,[r0, r1]! ; r5 = <q3|q2|q1|q0>
307+ UXTB16 r6, r4, ROR #16 ; r6 = <p0|p2>
308+ UXTB16 r4, r4, ROR #8 ; r4 = <p3|p1>
309+ UXTB16 r7, r5, ROR #16 ; r7 = <q0|q2>
310+ UXTB16 r5, r5, ROR #8 ; r5 = <q3|q1>
311+ PKHBT r8, r4, r5, LSL #16 ; r8 = <__|q1|__|p1>
312+ PKHBT r9, r6, r7, LSL #16 ; r9 = <__|q2|__|p2>
313+ SSUB16 r6, r4, r6 ; r6 = <p3-p0|p1-p2>
314+ SMLAD r6, r6, r12,r12 ; r6 = <????|(p3-p0)+3*(p1-p2)+3>
315+ SSUB16 r7, r5, r7 ; r7 = <q3-q0|q1-q2>
316+ SMLAD r7, r7, r12,r12 ; r7 = <????|(q0-q3)+3*(q2-q1)+4>
317+ LDR r4,[r0, r1]! ; r4 = <r3|r2|r1|r0>
318+ MOV r6, r6, ASR #3 ; r6 = <??????|(p3-p0)+3*(p1-p2)+3>>3>
319+ LDR r5,[r0, r1]! ; r5 = <s3|s2|s1|s0>
320+ PKHBT r11,r6, r7, LSL #13 ; r11= <??|-R_q|??|-R_p>
321+ UXTB16 r6, r4, ROR #16 ; r6 = <r0|r2>
322+ UXTB16 r11,r11 ; r11= <__|-R_q|__|-R_p>
323+ UXTB16 r4, r4, ROR #8 ; r4 = <r3|r1>
324+ UXTB16 r7, r5, ROR #16 ; r7 = <s0|s2>
325+ PKHBT r10,r6, r7, LSL #16 ; r10= <__|s2|__|r2>
326+ SSUB16 r6, r4, r6 ; r6 = <r3-r0|r1-r2>
327+ UXTB16 r5, r5, ROR #8 ; r5 = <s3|s1>
328+ SMLAD r6, r6, r12,r12 ; r6 = <????|(r3-r0)+3*(r2-r1)+3>
329+ SSUB16 r7, r5, r7 ; r7 = <r3-r0|r1-r2>
330+ SMLAD r7, r7, r12,r12 ; r7 = <????|(s0-s3)+3*(s2-s1)+4>
331+ ORR r9, r9, r10, LSL #8 ; r9 = <s2|q2|r2|p2>
332+ MOV r6, r6, ASR #3 ; r6 = <??????|(r0-r3)+3*(r2-r1)+4>>3>
333+ PKHBT r10,r4, r5, LSL #16 ; r10= <__|s1|__|r1>
334+ PKHBT r6, r6, r7, LSL #13 ; r6 = <??|-R_s|??|-R_r>
335+ ORR r8, r8, r10, LSL #8 ; r8 = <s1|q1|r1|p1>
336+ UXTB16 r6, r6 ; r6 = <__|-R_s|__|-R_r>
337+ MOV r10,#0
338+ ORR r6, r11,r6, LSL #8 ; r6 = <-R_s|-R_q|-R_r|-R_p>
339+ ; Single issue
340+ ; There's no min, max or abs instruction.
341+ ; SSUB8 and SEL will work for abs, and we can do all the rest with
342+ ; unsigned saturated adds, which means the GE flags are still all
343+ ; set when we're done computing lflim(abs(R_i),L).
344+ ; This allows us to both add and subtract, and split the results by
345+ ; the original sign of R_i.
346+ SSUB8 r7, r10,r6
347+ ; Single issue
348+ SEL r7, r7, r6 ; r7 = abs(R_i)
349+ ; Single issue
350+ UQADD8 r4, r7, r2 ; r4 = 255-max(2*L-abs(R_i),0)
351+ ; Single issue
352+ UQADD8 r7, r7, r4
353+ ; Single issue
354+ UQSUB8 r7, r7, r4 ; r7 = min(abs(R_i),max(2*L-abs(R_i),0))
355+ ; Single issue
356+ UQSUB8 r4, r8, r7
357+ UQADD8 r5, r9, r7
358+ UQADD8 r8, r8, r7
359+ UQSUB8 r9, r9, r7
360+ SEL r8, r8, r4 ; r8 = p1+lflim(R_i,L)
361+ SEL r9, r9, r5 ; r9 = p2-lflim(R_i,L)
362+ MOV r5, r9, LSR #24 ; r5 = s2
363+ STRB r5, [r0,#2]!
364+ MOV r4, r8, LSR #24 ; r4 = s1
365+ STRB r4, [r0,#-1]
366+ MOV r5, r9, LSR #8 ; r5 = r2
367+ STRB r5, [r0,-r1]!
368+ MOV r4, r8, LSR #8 ; r4 = r1
369+ STRB r4, [r0,#-1]
370+ MOV r5, r9, LSR #16 ; r5 = q2
371+ STRB r5, [r0,-r1]!
372+ MOV r4, r8, LSR #16 ; r4 = q1
373+ STRB r4, [r0,#-1]
374+ ; Single issue
375+ STRB r9, [r0,-r1]!
376+ ; Single issue
377+ STRB r8, [r0,#-1]
378+ MOV PC,r14
379+ ENDP
380+
381+; This uses the same strategy as the MMXEXT version for x86, except that UHADD8
382+; computes (a+b>>1) instead of (a+b+1>>1) like PAVGB.
383+; This works just as well, with the following procedure for computing the
384+; filter value, f:
385+; u = ~UHADD8(p1,~p2);
386+; v = UHADD8(~p1,p2);
387+; m = v-u;
388+; a = m^UHADD8(m^p0,m^~p3);
389+; f = UHADD8(UHADD8(a,u1),v1);
390+; where f = 127+R, with R in [-127,128] defined as in the spec.
391+; This is exactly the same amount of arithmetic as the version that uses PAVGB
392+; as the basic operator.
393+; It executes about 2/3 the number of instructions of David Conrad's approach,
394+; but requires more code, because it does all eight columns at once, instead
395+; of four at a time.
396+loop_filter_v_v6 PROC
397+ ; r0 = unsigned char *_pix
398+ ; r1 = int _ystride
399+ ; r2 = int _ll
400+ ; preserves r0-r11
401+ STMFD r13!,{r4-r11,r14}
402+ LDRD r6, [r0, -r1]! ; r7, r6 = <p5|p1>
403+ LDRD r4, [r0, -r1] ; r5, r4 = <p4|p0>
404+ LDRD r8, [r0, r1]! ; r9, r8 = <p6|p2>
405+ MVN r14,r6 ; r14= ~p1
406+ LDRD r10,[r0, r1] ; r11,r10= <p7|p3>
407+ ; Filter the first four columns.
408+ MVN r12,r8 ; r12= ~p2
409+ UHADD8 r14,r14,r8 ; r14= v1=~p1+p2>>1
410+ UHADD8 r12,r12,r6 ; r12= p1+~p2>>1
411+ MVN r10, r10 ; r10=~p3
412+ MVN r12,r12 ; r12= u1=~p1+p2+1>>1
413+ SSUB8 r14,r14,r12 ; r14= m1=v1-u1
414+ ; Single issue
415+ EOR r4, r4, r14 ; r4 = m1^p0
416+ EOR r10,r10,r14 ; r10= m1^~p3
417+ UHADD8 r4, r4, r10 ; r4 = (m1^p0)+(m1^~p3)>>1
418+ ; Single issue
419+ EOR r4, r4, r14 ; r4 = a1=m1^((m1^p0)+(m1^~p3)>>1)
420+ SADD8 r14,r14,r12 ; r14= v1=m1+u1
421+ UHADD8 r4, r4, r12 ; r4 = a1+u1>>1
422+ MVN r12,r9 ; r12= ~p6
423+ UHADD8 r4, r4, r14 ; r4 = f1=(a1+u1>>1)+v1>>1
424+ ; Filter the second four columns.
425+ MVN r14,r7 ; r14= ~p5
426+ UHADD8 r12,r12,r7 ; r12= p5+~p6>>1
427+ UHADD8 r14,r14,r9 ; r14= v2=~p5+p6>>1
428+ MVN r12,r12 ; r12= u2=~p5+p6+1>>1
429+ MVN r11,r11 ; r11=~p7
430+ SSUB8 r10,r14,r12 ; r10= m2=v2-u2
431+ ; Single issue
432+ EOR r5, r5, r10 ; r5 = m2^p4
433+ EOR r11,r11,r10 ; r11= m2^~p7
434+ UHADD8 r5, r5, r11 ; r5 = (m2^p4)+(m2^~p7)>>1
435+ ; Single issue
436+ EOR r5, r5, r10 ; r5 = a2=m2^((m2^p4)+(m2^~p7)>>1)
437+ ; Single issue
438+ UHADD8 r5, r5, r12 ; r5 = a2+u2>>1
439+ LDR r12,=0x7F7F7F7F ; r12 = {127}x4
440+ UHADD8 r5, r5, r14 ; r5 = f2=(a2+u2>>1)+v2>>1
441+ ; Now split f[i] by sign.
442+ ; There's no min or max instruction.
443+ ; We could use SSUB8 and SEL, but this is just as many instructions and
444+ ; dual issues more (for v7 without NEON).
445+ UQSUB8 r10,r4, r12 ; r10= R_i>0?R_i:0
446+ UQSUB8 r4, r12,r4 ; r4 = R_i<0?-R_i:0
447+ UQADD8 r11,r10,r2 ; r11= 255-max(2*L-abs(R_i<0),0)
448+ UQADD8 r14,r4, r2 ; r14= 255-max(2*L-abs(R_i>0),0)
449+ UQADD8 r10,r10,r11
450+ UQADD8 r4, r4, r14
451+ UQSUB8 r10,r10,r11 ; r10= min(abs(R_i<0),max(2*L-abs(R_i<0),0))
452+ UQSUB8 r4, r4, r14 ; r4 = min(abs(R_i>0),max(2*L-abs(R_i>0),0))
453+ UQSUB8 r11,r5, r12 ; r11= R_i>0?R_i:0
454+ UQADD8 r6, r6, r10
455+ UQSUB8 r8, r8, r10
456+ UQSUB8 r5, r12,r5 ; r5 = R_i<0?-R_i:0
457+ UQSUB8 r6, r6, r4 ; r6 = p1+lflim(R_i,L)
458+ UQADD8 r8, r8, r4 ; r8 = p2-lflim(R_i,L)
459+ UQADD8 r10,r11,r2 ; r10= 255-max(2*L-abs(R_i<0),0)
460+ UQADD8 r14,r5, r2 ; r14= 255-max(2*L-abs(R_i>0),0)
461+ UQADD8 r11,r11,r10
462+ UQADD8 r5, r5, r14
463+ UQSUB8 r11,r11,r10 ; r11= min(abs(R_i<0),max(2*L-abs(R_i<0),0))
464+ UQSUB8 r5, r5, r14 ; r5 = min(abs(R_i>0),max(2*L-abs(R_i>0),0))
465+ UQADD8 r7, r7, r11
466+ UQSUB8 r9, r9, r11
467+ UQSUB8 r7, r7, r5 ; r7 = p5+lflim(R_i,L)
468+ STRD r6, [r0, -r1] ; [p5:p1] = [r7: r6]
469+ UQADD8 r9, r9, r5 ; r9 = p6-lflim(R_i,L)
470+ STRD r8, [r0] ; [p6:p2] = [r9: r8]
471+ LDMFD r13!,{r4-r11,PC}
472+ ENDP
473+
474+oc_loop_filter_frag_rows_v6 PROC
475+ ; r0 = _ref_frame_data
476+ ; r1 = _ystride
477+ ; r2 = _bv
478+ ; r3 = _frags
479+ ; r4 = _fragi0
480+ ; r5 = _fragi0_end
481+ ; r6 = _fragi_top
482+ ; r7 = _fragi_bot
483+ ; r8 = _frag_buf_offs
484+ ; r9 = _nhfrags
485+ MOV r12,r13
486+ STMFD r13!,{r0,r4-r11,r14}
487+ LDMFD r12,{r4-r9}
488+ LDR r2, [r2] ; ll = *(int *)_bv
489+ CMP r4, r5 ; if(_fragi0>=_fragi0_end)
490+ BGE oslffri_v6_end ; bail
491+ SUBS r9, r9, #1 ; r9 = _nhfrags-1 if (r9<=0)
492+ BLE oslffri_v6_end ; bail
493+ ADD r3, r3, r4, LSL #2 ; r3 = &_frags[fragi]
494+ ADD r8, r8, r4, LSL #2 ; r8 = &_frag_buf_offs[fragi]
495+ SUB r7, r7, r9 ; _fragi_bot -= _nhfrags;
496+oslffri_v6_lp1
497+ MOV r10,r4 ; r10= fragi = _fragi0
498+ ADD r11,r4, r9 ; r11= fragi_end-1=fragi+_nhfrags-1
499+oslffri_v6_lp2
500+ LDR r14,[r3], #4 ; r14= _frags[fragi] _frags++
501+ LDR r0, [r13] ; r0 = _ref_frame_data
502+ LDR r12,[r8], #4 ; r12= _frag_buf_offs[fragi] _frag_buf_offs++
503+ TST r14,#OC_FRAG_CODED_FLAG
504+ BEQ oslffri_v6_uncoded
505+ CMP r10,r4 ; if (fragi>_fragi0)
506+ ADD r0, r0, r12 ; r0 = _ref_frame_data + _frag_buf_offs[fragi]
507+ BLGT loop_filter_h_v6
508+ CMP r4, r6 ; if (fragi0>_fragi_top)
509+ BLGT loop_filter_v_v6
510+ CMP r10,r11 ; if(fragi+1<fragi_end)===(fragi<fragi_end-1)
511+ LDRLT r12,[r3] ; r12 = _frags[fragi+1]
512+ ADD r0, r0, #8
513+ ADD r10,r10,#1 ; r10 = fragi+1;
514+ ANDLT r12,r12,#OC_FRAG_CODED_FLAG
515+ CMPLT r12,#OC_FRAG_CODED_FLAG ; && _frags[fragi+1].coded==0
516+ BLLT loop_filter_h_v6
517+ CMP r10,r7 ; if (fragi<_fragi_bot)
518+ LDRLT r12,[r3, r9, LSL #2] ; r12 = _frags[fragi+1+_nhfrags-1]
519+ SUB r0, r0, #8
520+ ADD r0, r0, r1, LSL #3
521+ ANDLT r12,r12,#OC_FRAG_CODED_FLAG
522+ CMPLT r12,#OC_FRAG_CODED_FLAG
523+ BLLT loop_filter_v_v6
524+ CMP r10,r11 ; while(fragi<=fragi_end-1)
525+ BLE oslffri_v6_lp2
526+ MOV r4, r10 ; r4 = fragi0 += nhfrags
527+ CMP r4, r5
528+ BLT oslffri_v6_lp1
529+oslffri_v6_end
530+ LDMFD r13!,{r0,r4-r11,PC}
531+oslffri_v6_uncoded
532+ ADD r10,r10,#1
533+ CMP r10,r11
534+ BLE oslffri_v6_lp2
535+ MOV r4, r10 ; r4 = fragi0 += nhfrags
536+ CMP r4, r5
537+ BLT oslffri_v6_lp1
538+ LDMFD r13!,{r0,r4-r11,PC}
539+ ENDP
540+ ]
541+
542+ [ OC_ARM_ASM_NEON
543+ EXPORT oc_loop_filter_init_neon
544+ EXPORT oc_loop_filter_frag_rows_neon
545+
546+oc_loop_filter_init_neon PROC
547+ ; r0 = _bv
548+ ; r1 = _flimit (=L from the spec)
549+ MOV r1, r1, LSL #1 ; r1 = 2*L
550+ VDUP.S16 Q15, r1 ; Q15= 2L in U16s
551+ VST1.64 {D30,D31}, [r0@128]
552+ MOV PC,r14
553+ ENDP
554+
555+loop_filter_h_neon PROC
556+ ; r0 = unsigned char *_pix
557+ ; r1 = int _ystride
558+ ; r2 = int *_bv
559+ ; preserves r0-r3
560+ ; We assume Q15= 2*L in U16s
561+ ; My best guesses at cycle counts (and latency)--vvv
562+ SUB r12,r0, #2
563+ ; Doing a 2-element structure load saves doing two VTRN's below, at the
564+ ; cost of using two more slower single-lane loads vs. the faster
565+ ; all-lane loads.
566+ ; It's less code this way, though, and benches a hair faster, but it
567+ ; leaves D2 and D4 swapped.
568+ VLD2.16 {D0[],D2[]}, [r12], r1 ; D0 = ____________1100 2,1
569+ ; D2 = ____________3322
570+ VLD2.16 {D4[],D6[]}, [r12], r1 ; D4 = ____________5544 2,1
571+ ; D6 = ____________7766
572+ VLD2.16 {D0[1],D2[1]},[r12], r1 ; D0 = ________99881100 3,1
573+ ; D2 = ________BBAA3322
574+ VLD2.16 {D4[1],D6[1]},[r12], r1 ; D4 = ________DDCC5544 3,1
575+ ; D6 = ________FFEE7766
576+ VLD2.16 {D0[2],D2[2]},[r12], r1 ; D0 = ____GGHH99881100 3,1
577+ ; D2 = ____JJIIBBAA3322
578+ VLD2.16 {D4[2],D6[2]},[r12], r1 ; D4 = ____KKLLDDCC5544 3,1
579+ ; D6 = ____NNMMFFEE7766
580+ VLD2.16 {D0[3],D2[3]},[r12], r1 ; D0 = PPOOGGHH99881100 3,1
581+ ; D2 = RRQQJJIIBBAA3322
582+ VLD2.16 {D4[3],D6[3]},[r12], r1 ; D4 = TTSSKKLLDDCC5544 3,1
583+ ; D6 = VVUUNNMMFFEE7766
584+ VTRN.8 D0, D4 ; D0 = SSOOKKGGCC884400 D4 = TTPPLLHHDD995511 1,1
585+ VTRN.8 D2, D6 ; D2 = UUQQMMIIEEAA6622 D6 = VVRRNNJJFFBB7733 1,1
586+ VSUBL.U8 Q0, D0, D6 ; Q0 = 00 - 33 in S16s 1,3
587+ VSUBL.U8 Q8, D2, D4 ; Q8 = 22 - 11 in S16s 1,3
588+ ADD r12,r0, #8
589+ VADD.S16 Q0, Q0, Q8 ; 1,3
590+ PLD [r12]
591+ VADD.S16 Q0, Q0, Q8 ; 1,3
592+ PLD [r12,r1]
593+ VADD.S16 Q0, Q0, Q8 ; Q0 = [0-3]+3*[2-1] 1,3
594+ PLD [r12,r1, LSL #1]
595+ VRSHR.S16 Q0, Q0, #3 ; Q0 = f = ([0-3]+3*[2-1]+4)>>3 1,4
596+ ADD r12,r12,r1, LSL #2
597+ ; We want to do
598+ ; f = CLAMP(MIN(-2L-f,0), f, MAX(2L-f,0))
599+ ; = ((f >= 0) ? MIN( f ,MAX(2L- f ,0)) : MAX( f , MIN(-2L- f ,0)))
600+ ; = ((f >= 0) ? MIN(|f|,MAX(2L-|f|,0)) : MAX(-|f|, MIN(-2L+|f|,0)))
601+ ; = ((f >= 0) ? MIN(|f|,MAX(2L-|f|,0)) :-MIN( |f|,-MIN(-2L+|f|,0)))
602+ ; = ((f >= 0) ? MIN(|f|,MAX(2L-|f|,0)) :-MIN( |f|, MAX( 2L-|f|,0)))
603+ ; So we've reduced the left and right hand terms to be the same, except
604+ ; for a negation.
605+ ; Stall x3
606+ VABS.S16 Q9, Q0 ; Q9 = |f| in U16s 1,4
607+ PLD [r12,-r1]
608+ VSHR.S16 Q0, Q0, #15 ; Q0 = -1 or 0 according to sign 1,3
609+ PLD [r12]
610+ VQSUB.U16 Q10,Q15,Q9 ; Q10= MAX(2L-|f|,0) in U16s 1,4
611+ PLD [r12,r1]
612+ VMOVL.U8 Q1, D2 ; Q2 = __UU__QQ__MM__II__EE__AA__66__22 2,3
613+ PLD [r12,r1,LSL #1]
614+ VMIN.U16 Q9, Q10,Q9 ; Q9 = MIN(|f|,MAX(2L-|f|)) 1,4
615+ ADD r12,r12,r1, LSL #2
616+ ; Now we need to correct for the sign of f.
617+ ; For negative elements of Q0, we want to subtract the appropriate
618+ ; element of Q9. For positive elements we want to add them. No NEON
619+ ; instruction exists to do this, so we need to negate the negative
620+ ; elements, and we can then just add them. a-b = a-(1+!b) = a-1+!b
621+ VADD.S16 Q9, Q9, Q0 ; 1,3
622+ PLD [r12,-r1]
623+ VEOR.S16 Q9, Q9, Q0 ; Q9 = real value of f 1,3
624+ ; Bah. No VRSBW.U8
625+ ; Stall (just 1 as Q9 not needed to second pipeline stage. I think.)
626+ VADDW.U8 Q2, Q9, D4 ; Q1 = xxTTxxPPxxLLxxHHxxDDxx99xx55xx11 1,3
627+ VSUB.S16 Q1, Q1, Q9 ; Q2 = xxUUxxQQxxMMxxIIxxEExxAAxx66xx22 1,3
628+ VQMOVUN.S16 D4, Q2 ; D4 = TTPPLLHHDD995511 1,1
629+ VQMOVUN.S16 D2, Q1 ; D2 = UUQQMMIIEEAA6622 1,1
630+ SUB r12,r0, #1
631+ VTRN.8 D4, D2 ; D4 = QQPPIIHHAA992211 D2 = MMLLEEDD6655 1,1
632+ VST1.16 {D4[0]}, [r12], r1
633+ VST1.16 {D2[0]}, [r12], r1
634+ VST1.16 {D4[1]}, [r12], r1
635+ VST1.16 {D2[1]}, [r12], r1
636+ VST1.16 {D4[2]}, [r12], r1
637+ VST1.16 {D2[2]}, [r12], r1
638+ VST1.16 {D4[3]}, [r12], r1
639+ VST1.16 {D2[3]}, [r12], r1
640+ MOV PC,r14
641+ ENDP
642+
643+loop_filter_v_neon PROC
644+ ; r0 = unsigned char *_pix
645+ ; r1 = int _ystride
646+ ; r2 = int *_bv
647+ ; preserves r0-r3
648+ ; We assume Q15= 2*L in U16s
649+ ; My best guesses at cycle counts (and latency)--vvv
650+ SUB r12,r0, r1, LSL #1
651+ VLD1.64 {D0}, [r12@64], r1 ; D0 = SSOOKKGGCC884400 2,1
652+ VLD1.64 {D2}, [r12@64], r1 ; D2 = TTPPLLHHDD995511 2,1
653+ VLD1.64 {D4}, [r12@64], r1 ; D4 = UUQQMMIIEEAA6622 2,1
654+ VLD1.64 {D6}, [r12@64] ; D6 = VVRRNNJJFFBB7733 2,1
655+ VSUBL.U8 Q8, D4, D2 ; Q8 = 22 - 11 in S16s 1,3
656+ VSUBL.U8 Q0, D0, D6 ; Q0 = 00 - 33 in S16s 1,3
657+ ADD r12, #8
658+ VADD.S16 Q0, Q0, Q8 ; 1,3
659+ PLD [r12]
660+ VADD.S16 Q0, Q0, Q8 ; 1,3
661+ PLD [r12,r1]
662+ VADD.S16 Q0, Q0, Q8 ; Q0 = [0-3]+3*[2-1] 1,3
663+ SUB r12, r0, r1
664+ VRSHR.S16 Q0, Q0, #3 ; Q0 = f = ([0-3]+3*[2-1]+4)>>3 1,4
665+ ; We want to do
666+ ; f = CLAMP(MIN(-2L-f,0), f, MAX(2L-f,0))
667+ ; = ((f >= 0) ? MIN( f ,MAX(2L- f ,0)) : MAX( f , MIN(-2L- f ,0)))
668+ ; = ((f >= 0) ? MIN(|f|,MAX(2L-|f|,0)) : MAX(-|f|, MIN(-2L+|f|,0)))
669+ ; = ((f >= 0) ? MIN(|f|,MAX(2L-|f|,0)) :-MIN( |f|,-MIN(-2L+|f|,0)))
670+ ; = ((f >= 0) ? MIN(|f|,MAX(2L-|f|,0)) :-MIN( |f|, MAX( 2L-|f|,0)))
671+ ; So we've reduced the left and right hand terms to be the same, except
672+ ; for a negation.
673+ ; Stall x3
674+ VABS.S16 Q9, Q0 ; Q9 = |f| in U16s 1,4
675+ VSHR.S16 Q0, Q0, #15 ; Q0 = -1 or 0 according to sign 1,3
676+ ; Stall x2
677+ VQSUB.U16 Q10,Q15,Q9 ; Q10= MAX(2L-|f|,0) in U16s 1,4
678+ VMOVL.U8 Q2, D4 ; Q2 = __UU__QQ__MM__II__EE__AA__66__22 2,3
679+ ; Stall x2
680+ VMIN.U16 Q9, Q10,Q9 ; Q9 = MIN(|f|,MAX(2L-|f|)) 1,4
681+ ; Now we need to correct for the sign of f.
682+ ; For negative elements of Q0, we want to subtract the appropriate
683+ ; element of Q9. For positive elements we want to add them. No NEON
684+ ; instruction exists to do this, so we need to negate the negative
685+ ; elements, and we can then just add them. a-b = a-(1+!b) = a-1+!b
686+ ; Stall x3
687+ VADD.S16 Q9, Q9, Q0 ; 1,3
688+ ; Stall x2
689+ VEOR.S16 Q9, Q9, Q0 ; Q9 = real value of f 1,3
690+ ; Bah. No VRSBW.U8
691+ ; Stall (just 1 as Q9 not needed to second pipeline stage. I think.)
692+ VADDW.U8 Q1, Q9, D2 ; Q1 = xxTTxxPPxxLLxxHHxxDDxx99xx55xx11 1,3
693+ VSUB.S16 Q2, Q2, Q9 ; Q2 = xxUUxxQQxxMMxxIIxxEExxAAxx66xx22 1,3
694+ VQMOVUN.S16 D2, Q1 ; D2 = TTPPLLHHDD995511 1,1
695+ VQMOVUN.S16 D4, Q2 ; D4 = UUQQMMIIEEAA6622 1,1
696+ VST1.64 {D2}, [r12@64], r1
697+ VST1.64 {D4}, [r12@64], r1
698+ MOV PC,r14
699+ ENDP
700+
701+oc_loop_filter_frag_rows_neon PROC
702+ ; r0 = _ref_frame_data
703+ ; r1 = _ystride
704+ ; r2 = _bv
705+ ; r3 = _frags
706+ ; r4 = _fragi0
707+ ; r5 = _fragi0_end
708+ ; r6 = _fragi_top
709+ ; r7 = _fragi_bot
710+ ; r8 = _frag_buf_offs
711+ ; r9 = _nhfrags
712+ MOV r12,r13
713+ STMFD r13!,{r0,r4-r11,r14}
714+ LDMFD r12,{r4-r9}
715+ CMP r4, r5 ; if(_fragi0>=_fragi0_end)
716+ BGE oslffri_neon_end; bail
717+ SUBS r9, r9, #1 ; r9 = _nhfrags-1 if (r9<=0)
718+ BLE oslffri_neon_end ; bail
719+ VLD1.64 {D30,D31}, [r2@128] ; Q15= 2L in U16s
720+ ADD r3, r3, r4, LSL #2 ; r3 = &_frags[fragi]
721+ ADD r8, r8, r4, LSL #2 ; r8 = &_frag_buf_offs[fragi]
722+ SUB r7, r7, r9 ; _fragi_bot -= _nhfrags;
723+oslffri_neon_lp1
724+ MOV r10,r4 ; r10= fragi = _fragi0
725+ ADD r11,r4, r9 ; r11= fragi_end-1=fragi+_nhfrags-1
726+oslffri_neon_lp2
727+ LDR r14,[r3], #4 ; r14= _frags[fragi] _frags++
728+ LDR r0, [r13] ; r0 = _ref_frame_data
729+ LDR r12,[r8], #4 ; r12= _frag_buf_offs[fragi] _frag_buf_offs++
730+ TST r14,#OC_FRAG_CODED_FLAG
731+ BEQ oslffri_neon_uncoded
732+ CMP r10,r4 ; if (fragi>_fragi0)
733+ ADD r0, r0, r12 ; r0 = _ref_frame_data + _frag_buf_offs[fragi]
734+ BLGT loop_filter_h_neon
735+ CMP r4, r6 ; if (_fragi0>_fragi_top)
736+ BLGT loop_filter_v_neon
737+ CMP r10,r11 ; if(fragi+1<fragi_end)===(fragi<fragi_end-1)
738+ LDRLT r12,[r3] ; r12 = _frags[fragi+1]
739+ ADD r0, r0, #8
740+ ADD r10,r10,#1 ; r10 = fragi+1;
741+ ANDLT r12,r12,#OC_FRAG_CODED_FLAG
742+ CMPLT r12,#OC_FRAG_CODED_FLAG ; && _frags[fragi+1].coded==0
743+ BLLT loop_filter_h_neon
744+ CMP r10,r7 ; if (fragi<_fragi_bot)
745+ LDRLT r12,[r3, r9, LSL #2] ; r12 = _frags[fragi+1+_nhfrags-1]
746+ SUB r0, r0, #8
747+ ADD r0, r0, r1, LSL #3
748+ ANDLT r12,r12,#OC_FRAG_CODED_FLAG
749+ CMPLT r12,#OC_FRAG_CODED_FLAG
750+ BLLT loop_filter_v_neon
751+ CMP r10,r11 ; while(fragi<=fragi_end-1)
752+ BLE oslffri_neon_lp2
753+ MOV r4, r10 ; r4 = _fragi0 += _nhfrags
754+ CMP r4, r5
755+ BLT oslffri_neon_lp1
756+oslffri_neon_end
757+ LDMFD r13!,{r0,r4-r11,PC}
758+oslffri_neon_uncoded
759+ ADD r10,r10,#1
760+ CMP r10,r11
761+ BLE oslffri_neon_lp2
762+ MOV r4, r10 ; r4 = _fragi0 += _nhfrags
763+ CMP r4, r5
764+ BLT oslffri_neon_lp1
765+ LDMFD r13!,{r0,r4-r11,PC}
766+ ENDP
767+ ]
768+
769+ END
diff --git a/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb b/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
deleted file mode 100644
index 11674af379..0000000000
--- a/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1SUMMARY = "Theora Video Codec"
2DESCRIPTION = "The libtheora reference implementation provides the standard encoder and decoder under a BSD license."
3HOMEPAGE = "http://xiph.org/"
4BUGTRACKER = "https://trac.xiph.org/newticket"
5SECTION = "libs"
6LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132"
8DEPENDS = "libogg"
9
10
11SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
12 file://no-docs.patch"
13
14SRC_URI[md5sum] = "292ab65cedd5021d6b7ddd117e07cd8e"
15SRC_URI[sha256sum] = "b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc"
16
17UPSTREAM_CHECK_REGEX = "libtheora-(?P<pver>\d+(\.\d)+)\.(tar\.gz|tgz)"
18
19inherit autotools pkgconfig
20
21EXTRA_OECONF = "--disable-examples"
diff --git a/meta/recipes-multimedia/libtheora/libtheora_1.2.0.bb b/meta/recipes-multimedia/libtheora/libtheora_1.2.0.bb
new file mode 100644
index 0000000000..04de8507fb
--- /dev/null
+++ b/meta/recipes-multimedia/libtheora/libtheora_1.2.0.bb
@@ -0,0 +1,28 @@
1SUMMARY = "Theora Video Codec"
2DESCRIPTION = "The libtheora reference implementation provides the standard encoder and decoder under a BSD license."
3HOMEPAGE = "http://xiph.org/"
4BUGTRACKER = "https://trac.xiph.org/newticket"
5SECTION = "libs"
6LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132"
8DEPENDS = "libogg"
9
10SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.xz \
11 file://0001-add-missing-files.patch"
12
13SRC_URI[sha256sum] = "ebdf77a8f5c0a8f7a9e42323844fa09502b34eb1d1fece7b5f54da41fe2122ec"
14
15UPSTREAM_CHECK_REGEX = "libtheora-(?P<pver>\d+(\.\d)+)\.(tar\.gz|tgz)"
16
17inherit autotools pkgconfig
18
19EXTRA_OECONF = "--disable-examples --disable-doc"
20
21# theora 1.2.0 has broken 32-bit arm assembler, see:
22# https://gitlab.xiph.org/xiph/theora/-/issues/2339
23# https://gitlab.xiph.org/xiph/theora/-/issues/2340
24EXTRA_OECONF:append:arm = " --disable-asm"
25
26# these old architectures don't support all the instructions from the asm source files
27EXTRA_OECONF:append:armv4 = " --disable-asm "
28EXTRA_OECONF:append:armv5 = " --disable-asm "
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch
deleted file mode 100644
index f5520fcafd..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch
+++ /dev/null
@@ -1,238 +0,0 @@
1From 335947359ce2dd3862cd9f7c49f92eba065dfed4 Mon Sep 17 00:00:00 2001
2From: Su_Laus <sulau@freenet.de>
3Date: Thu, 1 Feb 2024 13:06:08 +0000
4Subject: [PATCH] manpage: Update TIFF documentation about TIFFOpenOptions.rst
5 and TIFFOpenOptionsSetMaxSingleMemAlloc() usage and some other small fixes.
6
7CVE: CVE-2023-52355
8Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/335947359ce2dd3862cd9f7c49f92eba065dfed4]
9
10Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
11---
12 doc/functions/TIFFDeferStrileArrayWriting.rst | 5 +++
13 doc/functions/TIFFError.rst | 3 ++
14 doc/functions/TIFFOpen.rst | 13 +++---
15 doc/functions/TIFFOpenOptions.rst | 44 ++++++++++++++++++-
16 doc/functions/TIFFStrileQuery.rst | 5 +++
17 doc/libtiff.rst | 31 ++++++++++++-
18 6 files changed, 91 insertions(+), 10 deletions(-)
19
20diff --git a/doc/functions/TIFFDeferStrileArrayWriting.rst b/doc/functions/TIFFDeferStrileArrayWriting.rst
21index 60ee746..705aebc 100644
22--- a/doc/functions/TIFFDeferStrileArrayWriting.rst
23+++ b/doc/functions/TIFFDeferStrileArrayWriting.rst
24@@ -61,6 +61,11 @@ Diagnostics
25 All error messages are directed to the :c:func:`TIFFErrorExtR` routine.
26 Likewise, warning messages are directed to the :c:func:`TIFFWarningExtR` routine.
27
28+Note
29+----
30+
31+This functionality was introduced with libtiff 4.1.
32+
33 See also
34 --------
35
36diff --git a/doc/functions/TIFFError.rst b/doc/functions/TIFFError.rst
37index 99924ad..cf4b37c 100644
38--- a/doc/functions/TIFFError.rst
39+++ b/doc/functions/TIFFError.rst
40@@ -65,6 +65,9 @@ or :c:func:`TIFFClientOpenExt`.
41 Furthermore, a **custom defined data structure** *user_data* for the
42 error handler can be given along.
43
44+Please refer to :doc:`/functions/TIFFOpenOptions` for how to setup the
45+application-specific handler introduced with libtiff 4.5.
46+
47 Note
48 ----
49
50diff --git a/doc/functions/TIFFOpen.rst b/doc/functions/TIFFOpen.rst
51index db79d7b..adc474f 100644
52--- a/doc/functions/TIFFOpen.rst
53+++ b/doc/functions/TIFFOpen.rst
54@@ -94,8 +94,9 @@ TIFF structure without closing the file handle and afterwards the
55 file should be closed using its file descriptor *fd*.
56
57 :c:func:`TIFFOpenExt` (added in libtiff 4.5) is like :c:func:`TIFFOpen`,
58-but options, such as re-entrant error and warning handlers may be passed
59-with the *opts* argument. The *opts* argument may be NULL.
60+but options, such as re-entrant error and warning handlers and a limit in byte
61+that libtiff internal memory allocation functions are allowed to request per call
62+may be passed with the *opts* argument. The *opts* argument may be NULL.
63 Refer to :doc:`TIFFOpenOptions` for allocating and filling the *opts* argument
64 parameters. The allocated memory for :c:type:`TIFFOpenOptions`
65 can be released straight after successful execution of the related
66@@ -105,9 +106,7 @@ can be released straight after successful execution of the related
67 but opens a TIFF file with a Unicode filename.
68
69 :c:func:`TIFFFdOpenExt` (added in libtiff 4.5) is like :c:func:`TIFFFdOpen`,
70-but options, such as re-entrant error and warning handlers may be passed
71-with the *opts* argument. The *opts* argument may be NULL.
72-Refer to :doc:`TIFFOpenOptions` for filling the *opts* argument.
73+but options argument *opts* like for :c:func:`TIFFOpenExt` can be passed.
74
75 :c:func:`TIFFSetFileName` sets the file name in the tif-structure
76 and returns the old file name.
77@@ -326,5 +325,5 @@ See also
78
79 :doc:`libtiff` (3tiff),
80 :doc:`TIFFClose` (3tiff),
81-:doc:`TIFFStrileQuery`,
82-:doc:`TIFFOpenOptions`
83\ No newline at end of file
84+:doc:`TIFFStrileQuery` (3tiff),
85+:doc:`TIFFOpenOptions`
86diff --git a/doc/functions/TIFFOpenOptions.rst b/doc/functions/TIFFOpenOptions.rst
87index 5c67566..23f2975 100644
88--- a/doc/functions/TIFFOpenOptions.rst
89+++ b/doc/functions/TIFFOpenOptions.rst
90@@ -38,12 +38,17 @@ opaque structure and returns a :c:type:`TIFFOpenOptions` pointer.
91 :c:func:`TIFFOpenOptionsFree` releases the allocated memory for
92 :c:type:`TIFFOpenOptions`. The allocated memory for :c:type:`TIFFOpenOptions`
93 can be released straight after successful execution of the related
94-TIFF open"Ext" functions like :c:func:`TIFFOpenExt`.
95+TIFFOpen"Ext" functions like :c:func:`TIFFOpenExt`.
96
97 :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc` sets parameter for the
98 maximum single memory limit in byte that ``libtiff`` internal memory allocation
99 functions are allowed to request per call.
100
101+.. note::
102+ However, the ``libtiff`` external functions :c:func:`_TIFFmalloc`
103+ and :c:func:`_TIFFrealloc` **do not apply** this internal memory
104+ allocation limit set by :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc`!
105+
106 :c:func:`TIFFOpenOptionsSetErrorHandlerExtR` sets the function pointer to
107 an application-specific and per-TIFF handle (re-entrant) error handler.
108 Furthermore, a pointer to a **custom defined data structure** *errorhandler_user_data*
109@@ -55,6 +60,43 @@ The *errorhandler_user_data* argument may be NULL.
110 :c:func:`TIFFOpenOptionsSetErrorHandlerExtR` but for the warning handler,
111 which is invoked through :c:func:`TIFFWarningExtR`
112
113+Example
114+-------
115+
116+::
117+
118+ #include "tiffio.h"
119+
120+ typedef struct MyErrorHandlerUserDataStruct
121+ {
122+ /* ... any user data structure ... */
123+ } MyErrorHandlerUserDataStruct;
124+
125+ static int myErrorHandler(TIFF *tiff, void *user_data, const char *module,
126+ const char *fmt, va_list ap)
127+ {
128+ MyErrorHandlerUserDataStruct *errorhandler_user_data =
129+ (MyErrorHandlerUserDataStruct *)user_data;
130+ /*... code of myErrorHandler ...*/
131+ return 1;
132+ }
133+
134+
135+ main()
136+ {
137+ tmsize_t limit = (256 * 1024 * 1024);
138+ MyErrorHandlerUserDataStruct user_data = { /* ... any data ... */};
139+
140+ TIFFOpenOptions *opts = TIFFOpenOptionsAlloc();
141+ TIFFOpenOptionsSetMaxSingleMemAlloc(opts, limit);
142+ TIFFOpenOptionsSetErrorHandlerExtR(opts, myErrorHandler, &user_data);
143+ TIFF *tif = TIFFOpenExt("foo.tif", "r", opts);
144+ TIFFOpenOptionsFree(opts);
145+ /* ... go on here ... */
146+
147+ TIFFClose(tif);
148+ }
149+
150 Note
151 ----
152
153diff --git a/doc/functions/TIFFStrileQuery.rst b/doc/functions/TIFFStrileQuery.rst
154index f8631af..7931fe4 100644
155--- a/doc/functions/TIFFStrileQuery.rst
156+++ b/doc/functions/TIFFStrileQuery.rst
157@@ -66,6 +66,11 @@ Diagnostics
158 All error messages are directed to the :c:func:`TIFFErrorExtR` routine.
159 Likewise, warning messages are directed to the :c:func:`TIFFWarningExtR` routine.
160
161+Note
162+----
163+
164+This functionality was introduced with libtiff 4.1.
165+
166 See also
167 --------
168
169diff --git a/doc/libtiff.rst b/doc/libtiff.rst
170index 6a0054c..d96a860 100644
171--- a/doc/libtiff.rst
172+++ b/doc/libtiff.rst
173@@ -90,11 +90,15 @@ compatibility on machines with a segmented architecture.
174 :c:func:`realloc`, and :c:func:`free` routines in the C library.)
175
176 To deal with segmented pointer issues ``libtiff`` also provides
177-:c:func:`_TIFFmemcpy`, :c:func:`_TIFFmemset`, and :c:func:`_TIFFmemmove`
178+:c:func:`_TIFFmemcpy`, :c:func:`_TIFFmemset`, and :c:func:`_TIFFmemcmp`
179 routines that mimic the equivalent ANSI C routines, but that are
180 intended for use with memory allocated through :c:func:`_TIFFmalloc`
181 and :c:func:`_TIFFrealloc`.
182
183+With ``libtiff`` 4.5 a method was introduced to limit the internal
184+memory allocation that functions are allowed to request per call
185+(see :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc` and :c:func:`TIFFOpenExt`).
186+
187 Error Handling
188 --------------
189
190@@ -106,6 +110,10 @@ routine that can be specified with a call to :c:func:`TIFFSetErrorHandler`.
191 Likewise warning messages are directed to a single handler routine
192 that can be specified with a call to :c:func:`TIFFSetWarningHandler`
193
194+Further application-specific and per-TIFF handle (re-entrant) error handler
195+and warning handler can be set. Please refer to :doc:`/functions/TIFFError`
196+and :doc:`/functions/TIFFOpenOptions`.
197+
198 Basic File Handling
199 -------------------
200
201@@ -139,7 +147,7 @@ a ``"w"`` argument:
202 main()
203 {
204 TIFF* tif = TIFFOpen("foo.tif", "w");
205- ... do stuff ...
206+ /* ... do stuff ... */
207 TIFFClose(tif);
208 }
209
210@@ -157,6 +165,25 @@ to always call :c:func:`TIFFClose` or :c:func:`TIFFFlush` to flush any
211 buffered information to a file. Note that if you call :c:func:`TIFFClose`
212 you do not need to call :c:func:`TIFFFlush`.
213
214+.. warning::
215+
216+ In order to prevent out-of-memory issues when opening a TIFF file
217+ :c:func:`TIFFOpenExt` can be used and then the maximum single memory
218+ limit in byte that ``libtiff`` internal memory allocation functions
219+ are allowed to request per call can be set with
220+ :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc`.
221+
222+Example
223+
224+::
225+
226+ tmsize_t limit = (256 * 1024 * 1024);
227+ TIFFOpenOptions *opts = TIFFOpenOptionsAlloc();
228+ TIFFOpenOptionsSetMaxSingleMemAlloc(opts, limit);
229+ TIFF *tif = TIFFOpenExt("foo.tif", "w", opts);
230+ TIFFOpenOptionsFree(opts);
231+ /* ... go on here ... */
232+
233 TIFF Directories
234 ----------------
235
236--
2372.40.0
238
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0002.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0002.patch
deleted file mode 100644
index 19a1ef727a..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0002.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From 16ab4a205cfc938c32686e8d697d048fabf97ed4 Mon Sep 17 00:00:00 2001
2From: Timothy Lyanguzov <theta682@gmail.com>
3Date: Thu, 1 Feb 2024 11:19:06 +0000
4Subject: [PATCH] Fix typo.
5
6CVE: CVE-2023-52355
7Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/16ab4a205cfc938c32686e8d697d048fabf97ed4]
8
9Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
10---
11 doc/libtiff.rst | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/doc/libtiff.rst b/doc/libtiff.rst
15index d96a860..4fedc3e 100644
16--- a/doc/libtiff.rst
17+++ b/doc/libtiff.rst
18@@ -169,7 +169,7 @@ you do not need to call :c:func:`TIFFFlush`.
19
20 In order to prevent out-of-memory issues when opening a TIFF file
21 :c:func:`TIFFOpenExt` can be used and then the maximum single memory
22- limit in byte that ``libtiff`` internal memory allocation functions
23+ limit in bytes that ``libtiff`` internal memory allocation functions
24 are allowed to request per call can be set with
25 :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc`.
26
27--
282.40.0
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52356.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52356.patch
deleted file mode 100644
index 75f5d8946a..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52356.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From 51558511bdbbcffdce534db21dbaf5d54b31638a Mon Sep 17 00:00:00 2001
2From: Even Rouault <even.rouault@spatialys.com>
3Date: Thu, 1 Feb 2024 11:38:14 +0000
4Subject: [PATCH] TIFFReadRGBAStrip/TIFFReadRGBATile: add more validation of
5 col/row (fixes #622)
6
7CVE: CVE-2023-52356
8Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/51558511bdbbcffdce534db21dbaf5d54b31638a]
9
10Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
11---
12 libtiff/tif_getimage.c | 15 +++++++++++++++
13 1 file changed, 15 insertions(+)
14
15diff --git a/libtiff/tif_getimage.c b/libtiff/tif_getimage.c
16index 41f7dfd..9cd6eee 100644
17--- a/libtiff/tif_getimage.c
18+++ b/libtiff/tif_getimage.c
19@@ -3224,6 +3224,13 @@ int TIFFReadRGBAStripExt(TIFF *tif, uint32_t row, uint32_t *raster,
20 if (TIFFRGBAImageOK(tif, emsg) &&
21 TIFFRGBAImageBegin(&img, tif, stop_on_error, emsg))
22 {
23+ if (row >= img.height)
24+ {
25+ TIFFErrorExtR(tif, TIFFFileName(tif),
26+ "Invalid row passed to TIFFReadRGBAStrip().");
27+ TIFFRGBAImageEnd(&img);
28+ return (0);
29+ }
30
31 img.row_offset = row;
32 img.col_offset = 0;
33@@ -3301,6 +3308,14 @@ int TIFFReadRGBATileExt(TIFF *tif, uint32_t col, uint32_t row, uint32_t *raster,
34 return (0);
35 }
36
37+ if (col >= img.width || row >= img.height)
38+ {
39+ TIFFErrorExtR(tif, TIFFFileName(tif),
40+ "Invalid row/col passed to TIFFReadRGBATile().");
41+ TIFFRGBAImageEnd(&img);
42+ return (0);
43+ }
44+
45 /*
46 * The TIFFRGBAImageGet() function doesn't allow us to get off the
47 * edge of the image, even to fill an otherwise valid tile. So we
48--
492.40.0
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6228.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6228.patch
deleted file mode 100644
index 2020508fdf..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6228.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 1e7d217a323eac701b134afc4ae39b6bdfdbc96a Mon Sep 17 00:00:00 2001
2From: Su_Laus <sulau@freenet.de>
3Date: Wed, 17 Jan 2024 06:57:08 +0000
4Subject: [PATCH] codec of input image is available, independently from codec
5 check of output image and return with error if not.
6
7Fixes #606.
8
9CVE: CVE-2023-6228
10Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/1e7d217a323eac701b134afc4ae39b6bdfdbc96a]
11
12Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
13---
14 tools/tiffcp.c | 2 ++
15 1 file changed, 2 insertions(+)
16
17diff --git a/tools/tiffcp.c b/tools/tiffcp.c
18index aff0626..a4f7f6b 100644
19--- a/tools/tiffcp.c
20+++ b/tools/tiffcp.c
21@@ -846,6 +846,8 @@ static int tiffcp(TIFF *in, TIFF *out)
22 if (!TIFFIsCODECConfigured(compression))
23 return FALSE;
24 TIFFGetFieldDefaulted(in, TIFFTAG_COMPRESSION, &input_compression);
25+ if (!TIFFIsCODECConfigured(input_compression))
26+ return FALSE;
27 TIFFGetFieldDefaulted(in, TIFFTAG_PHOTOMETRIC, &input_photometric);
28 if (input_compression == COMPRESSION_JPEG)
29 {
30--
312.40.0
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch
deleted file mode 100644
index 5d15dff1d9..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From e1640519208121f916da1772a5efb6ca28971b86 Mon Sep 17 00:00:00 2001
2From: Even Rouault <even.rouault@spatialys.com>
3Date: Tue, 31 Oct 2023 15:04:37 +0000
4Subject: [PATCH 3/3] Apply 1 suggestion(s) to 1 file(s)
5
6CVE: CVE-2023-6277
7Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/merge_requests/545]
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 libtiff/tif_dirread.c | 1 -
11 1 file changed, 1 deletion(-)
12
13diff --git a/libtiff/tif_dirread.c b/libtiff/tif_dirread.c
14index fe8d6f8..58a4276 100644
15--- a/libtiff/tif_dirread.c
16+++ b/libtiff/tif_dirread.c
17@@ -5306,7 +5306,6 @@ static int EstimateStripByteCounts(TIFF *tif, TIFFDirEntry *dir,
18 {
19 uint64_t space;
20 uint16_t n;
21- filesize = TIFFGetFileSize(tif);
22 if (!(tif->tif_flags & TIFF_BIGTIFF))
23 space = sizeof(TIFFHeaderClassic) + 2 + dircount * 12 + 4;
24 else
25--
262.43.0
27
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch
deleted file mode 100644
index 9fc8182fef..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From f500facf7723f1cae725dd288b2daad15e45131c Mon Sep 17 00:00:00 2001
2From: Su_Laus <sulau@freenet.de>
3Date: Mon, 30 Oct 2023 21:21:57 +0100
4Subject: [PATCH 2/3] At image reading, compare data size of some tags / data
5 structures (StripByteCounts, StripOffsets, StripArray, TIFF directory) with
6 file size to prevent provoked out-of-memory attacks.
7MIME-Version: 1.0
8Content-Type: text/plain; charset=UTF-8
9Content-Transfer-Encoding: 8bit
10
11See issue #614.
12
13Correct declaration of ‘filesize’ shadows a previous local.
14
15CVE: CVE-2023-6277
16Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/merge_requests/545]
17Signed-off-by: Khem Raj <raj.khem@gmail.com>
18---
19 libtiff/tif_dirread.c | 1 -
20 1 file changed, 1 deletion(-)
21
22diff --git a/libtiff/tif_dirread.c b/libtiff/tif_dirread.c
23index c52d41f..fe8d6f8 100644
24--- a/libtiff/tif_dirread.c
25+++ b/libtiff/tif_dirread.c
26@@ -5305,7 +5305,6 @@ static int EstimateStripByteCounts(TIFF *tif, TIFFDirEntry *dir,
27 if (td->td_compression != COMPRESSION_NONE)
28 {
29 uint64_t space;
30- uint64_t filesize;
31 uint16_t n;
32 filesize = TIFFGetFileSize(tif);
33 if (!(tif->tif_flags & TIFF_BIGTIFF))
34--
352.43.0
36
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch
deleted file mode 100644
index d5854a9059..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch
+++ /dev/null
@@ -1,162 +0,0 @@
1From b33baa5d9c6aac8ce49b5180dd48e39697ab7a11 Mon Sep 17 00:00:00 2001
2From: Su_Laus <sulau@freenet.de>
3Date: Fri, 27 Oct 2023 22:11:10 +0200
4Subject: [PATCH 1/3] At image reading, compare data size of some tags / data
5 structures (StripByteCounts, StripOffsets, StripArray, TIFF directory) with
6 file size to prevent provoked out-of-memory attacks.
7
8See issue #614.
9
10CVE: CVE-2023-6277
11Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/merge_requests/545]
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 libtiff/tif_dirread.c | 90 +++++++++++++++++++++++++++++++++++++++++++
15 1 file changed, 90 insertions(+)
16
17diff --git a/libtiff/tif_dirread.c b/libtiff/tif_dirread.c
18index 2c49dc6..c52d41f 100644
19--- a/libtiff/tif_dirread.c
20+++ b/libtiff/tif_dirread.c
21@@ -1308,6 +1308,21 @@ TIFFReadDirEntryArrayWithLimit(TIFF *tif, TIFFDirEntry *direntry,
22 datasize = (*count) * typesize;
23 assert((tmsize_t)datasize > 0);
24
25+ /* Before allocating a huge amount of memory for corrupted files, check if
26+ * size of requested memory is not greater than file size.
27+ */
28+ uint64_t filesize = TIFFGetFileSize(tif);
29+ if (datasize > filesize)
30+ {
31+ TIFFWarningExtR(tif, "ReadDirEntryArray",
32+ "Requested memory size for tag %d (0x%x) %" PRIu32
33+ " is greather than filesize %" PRIu64
34+ ". Memory not allocated, tag not read",
35+ direntry->tdir_tag, direntry->tdir_tag, datasize,
36+ filesize);
37+ return (TIFFReadDirEntryErrAlloc);
38+ }
39+
40 if (isMapped(tif) && datasize > (uint64_t)tif->tif_size)
41 return TIFFReadDirEntryErrIo;
42
43@@ -5266,6 +5281,20 @@ static int EstimateStripByteCounts(TIFF *tif, TIFFDirEntry *dir,
44 if (!_TIFFFillStrilesInternal(tif, 0))
45 return -1;
46
47+ /* Before allocating a huge amount of memory for corrupted files, check if
48+ * size of requested memory is not greater than file size. */
49+ uint64_t filesize = TIFFGetFileSize(tif);
50+ uint64_t allocsize = (uint64_t)td->td_nstrips * sizeof(uint64_t);
51+ if (allocsize > filesize)
52+ {
53+ TIFFWarningExtR(tif, module,
54+ "Requested memory size for StripByteCounts of %" PRIu64
55+ " is greather than filesize %" PRIu64
56+ ". Memory not allocated",
57+ allocsize, filesize);
58+ return -1;
59+ }
60+
61 if (td->td_stripbytecount_p)
62 _TIFFfreeExt(tif, td->td_stripbytecount_p);
63 td->td_stripbytecount_p = (uint64_t *)_TIFFCheckMalloc(
64@@ -5807,6 +5836,20 @@ static uint16_t TIFFFetchDirectory(TIFF *tif, uint64_t diroff,
65 dircount16 = (uint16_t)dircount64;
66 dirsize = 20;
67 }
68+ /* Before allocating a huge amount of memory for corrupted files, check
69+ * if size of requested memory is not greater than file size. */
70+ uint64_t filesize = TIFFGetFileSize(tif);
71+ uint64_t allocsize = (uint64_t)dircount16 * dirsize;
72+ if (allocsize > filesize)
73+ {
74+ TIFFWarningExtR(
75+ tif, module,
76+ "Requested memory size for TIFF directory of %" PRIu64
77+ " is greather than filesize %" PRIu64
78+ ". Memory not allocated, TIFF directory not read",
79+ allocsize, filesize);
80+ return 0;
81+ }
82 origdir = _TIFFCheckMalloc(tif, dircount16, dirsize,
83 "to read TIFF directory");
84 if (origdir == NULL)
85@@ -5921,6 +5964,20 @@ static uint16_t TIFFFetchDirectory(TIFF *tif, uint64_t diroff,
86 "directories not supported");
87 return 0;
88 }
89+ /* Before allocating a huge amount of memory for corrupted files, check
90+ * if size of requested memory is not greater than file size. */
91+ uint64_t filesize = TIFFGetFileSize(tif);
92+ uint64_t allocsize = (uint64_t)dircount16 * dirsize;
93+ if (allocsize > filesize)
94+ {
95+ TIFFWarningExtR(
96+ tif, module,
97+ "Requested memory size for TIFF directory of %" PRIu64
98+ " is greather than filesize %" PRIu64
99+ ". Memory not allocated, TIFF directory not read",
100+ allocsize, filesize);
101+ return 0;
102+ }
103 origdir = _TIFFCheckMalloc(tif, dircount16, dirsize,
104 "to read TIFF directory");
105 if (origdir == NULL)
106@@ -5968,6 +6025,8 @@ static uint16_t TIFFFetchDirectory(TIFF *tif, uint64_t diroff,
107 }
108 }
109 }
110+ /* No check against filesize needed here because "dir" should have same size
111+ * than "origdir" checked above. */
112 dir = (TIFFDirEntry *)_TIFFCheckMalloc(
113 tif, dircount16, sizeof(TIFFDirEntry), "to read TIFF directory");
114 if (dir == 0)
115@@ -7164,6 +7223,20 @@ static int TIFFFetchStripThing(TIFF *tif, TIFFDirEntry *dir, uint32_t nstrips,
116 return (0);
117 }
118
119+ /* Before allocating a huge amount of memory for corrupted files, check
120+ * if size of requested memory is not greater than file size. */
121+ uint64_t filesize = TIFFGetFileSize(tif);
122+ uint64_t allocsize = (uint64_t)nstrips * sizeof(uint64_t);
123+ if (allocsize > filesize)
124+ {
125+ TIFFWarningExtR(tif, module,
126+ "Requested memory size for StripArray of %" PRIu64
127+ " is greather than filesize %" PRIu64
128+ ". Memory not allocated",
129+ allocsize, filesize);
130+ _TIFFfreeExt(tif, data);
131+ return (0);
132+ }
133 resizeddata = (uint64_t *)_TIFFCheckMalloc(
134 tif, nstrips, sizeof(uint64_t), "for strip array");
135 if (resizeddata == 0)
136@@ -7263,6 +7336,23 @@ static void allocChoppedUpStripArrays(TIFF *tif, uint32_t nstrips,
137 }
138 bytecount = last_offset + last_bytecount - offset;
139
140+ /* Before allocating a huge amount of memory for corrupted files, check if
141+ * size of StripByteCount and StripOffset tags is not greater than
142+ * file size.
143+ */
144+ uint64_t allocsize = (uint64_t)nstrips * sizeof(uint64_t) * 2;
145+ uint64_t filesize = TIFFGetFileSize(tif);
146+ if (allocsize > filesize)
147+ {
148+ TIFFWarningExtR(tif, "allocChoppedUpStripArrays",
149+ "Requested memory size for StripByteCount and "
150+ "StripOffsets %" PRIu64
151+ " is greather than filesize %" PRIu64
152+ ". Memory not allocated",
153+ allocsize, filesize);
154+ return;
155+ }
156+
157 newcounts =
158 (uint64_t *)_TIFFCheckMalloc(tif, nstrips, sizeof(uint64_t),
159 "for chopped \"StripByteCounts\" array");
160--
1612.43.0
162
diff --git a/meta/recipes-multimedia/libtiff/tiff_4.6.0.bb b/meta/recipes-multimedia/libtiff/tiff_4.7.0.bb
index d42ea6a6e5..5a6939d584 100644
--- a/meta/recipes-multimedia/libtiff/tiff_4.6.0.bb
+++ b/meta/recipes-multimedia/libtiff/tiff_4.7.0.bb
@@ -3,28 +3,22 @@ DESCRIPTION = "Library provides support for the Tag Image File Format \
3(TIFF), a widely used format for storing image data. This library \ 3(TIFF), a widely used format for storing image data. This library \
4provide means to easily access and create TIFF image files." 4provide means to easily access and create TIFF image files."
5HOMEPAGE = "http://www.libtiff.org/" 5HOMEPAGE = "http://www.libtiff.org/"
6LICENSE = "BSD-2-Clause" 6LICENSE = "libtiff"
7LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a3e32d664d6db1386b4689c8121531c3" 7LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a3e32d664d6db1386b4689c8121531c3"
8 8
9CVE_PRODUCT = "libtiff" 9CVE_PRODUCT = "libtiff"
10 10
11SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \ 11SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz"
12 file://CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch \
13 file://CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch \
14 file://CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch \
15 file://CVE-2023-6228.patch \
16 file://CVE-2023-52355-0001.patch \
17 file://CVE-2023-52355-0002.patch \
18 file://CVE-2023-52356.patch \
19 "
20 12
21SRC_URI[sha256sum] = "88b3979e6d5c7e32b50d7ec72fb15af724f6ab2cbf7e10880c360a77e4b5d99a" 13SRC_URI[sha256sum] = "67160e3457365ab96c5b3286a0903aa6e78bdc44c4bc737d2e486bcecb6ba976"
22 14
23# exclude betas 15# exclude betas
24UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar" 16UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar"
25 17
26CVE_STATUS[CVE-2015-7313] = "fixed-version: Tested with check from https://security-tracker.debian.org/tracker/CVE-2015-7313 and already 4.3.0 doesn't have the issue" 18CVE_STATUS[CVE-2015-7313] = "fixed-version: Tested with check from https://security-tracker.debian.org/tracker/CVE-2015-7313 and already 4.3.0 doesn't have the issue"
27CVE_STATUS[CVE-2023-3164] = "cpe-incorrect: Issue only affects the tiffcrop tool not compiled by default since 4.6.0" 19CVE_STATUS[CVE-2023-52356] = "fixed-version: Fixed since 4.7.0, NVD tracks this as version-less vulnerability"
20CVE_STATUS[CVE-2023-6228] = "fixed-version: Fixed since 4.7.0, NVD tracks this as version-less vulnerability"
21CVE_STATUS[CVE-2023-6277] = "fixed-version: Fixed since 4.7.0, NVD tracks this as version-less vulnerability"
28 22
29inherit autotools multilib_header 23inherit autotools multilib_header
30 24
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch b/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch
index b06029b98b..36f47f9173 100644
--- a/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch
+++ b/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch
@@ -5,15 +5,13 @@ Subject: [PATCH] configure: Check for clang
5 5
6Disable gcc specific options if using clang 6Disable gcc specific options if using clang
7 7
8Upstream-Status: Inactive-Upstream [https://gitlab.xiph.org/xiph/vorbis,https://github.com/xiph/vorbis]
8Signed-off-by: Khem Raj <raj.khem@gmail.com> 9Signed-off-by: Khem Raj <raj.khem@gmail.com>
9--- 10---
10Upstream-Status: Pending
11 11
12 configure.ac | 19 +++++++++++++++++-- 12 configure.ac | 19 +++++++++++++++++--
13 1 file changed, 17 insertions(+), 2 deletions(-) 13 1 file changed, 17 insertions(+), 2 deletions(-)
14 14
15diff --git a/configure.ac b/configure.ac
16index 28b0a14..2d4e984 100644
17--- a/configure.ac 15--- a/configure.ac
18+++ b/configure.ac 16+++ b/configure.ac
19@@ -98,6 +98,16 @@ AC_ARG_ENABLE(examples, 17@@ -98,6 +98,16 @@ AC_ARG_ENABLE(examples,
@@ -51,6 +49,20 @@ index 28b0a14..2d4e984 100644
51 49
52 # glibc < 2.1.3 has a serious FP bug in the math inline header 50 # glibc < 2.1.3 has a serious FP bug in the math inline header
53 # that will cripple Vorbis. Look to see if the magic FP stack 51 # that will cripple Vorbis. Look to see if the magic FP stack
54-- 52@@ -178,12 +193,12 @@ else
552.17.0 53 fi;;
56 54 powerpc-*-linux*spe)
55 DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES"
56- CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -D_REENTRANT"
57- PROFILE="-pg -g -O3 -ffast-math -mfused-madd -D_REENTRANT";;
58+ CFLAGS="-O3 -Wall -Wextra -ffast-math -D_REENTRANT"
59+ PROFILE="-pg -g -O3 -ffast-math -D_REENTRANT";;
60 powerpc-*-linux*)
61 DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES"
62- CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT"
63- PROFILE="-pg -g -O3 -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT";;
64+ CFLAGS="-O3 -Wall -Wextra -ffast-math -mcpu=750 -D_REENTRANT"
65+ PROFILE="-pg -g -O3 -ffast-math -mcpu=750 -D_REENTRANT";;
66 *-*-linux*)
67 DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char"
68 CFLAGS="-O3 -Wall -Wextra -ffast-math -D_REENTRANT -fsigned-char"
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb
index 023bce0abe..d5bf5ff0fa 100644
--- a/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb
+++ b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb
@@ -13,7 +13,6 @@ DEPENDS = "libogg"
13SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz \ 13SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz \
14 file://0001-configure-Check-for-clang.patch \ 14 file://0001-configure-Check-for-clang.patch \
15 " 15 "
16SRC_URI[md5sum] = "50902641d358135f06a8392e61c9ac77"
17SRC_URI[sha256sum] = "b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b" 16SRC_URI[sha256sum] = "b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b"
18 17
19inherit autotools pkgconfig 18inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb b/meta/recipes-multimedia/mpg123/mpg123_1.33.0.bb
index f7786e8588..2905bf0abc 100644
--- a/meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb
+++ b/meta/recipes-multimedia/mpg123/mpg123_1.33.0.bb
@@ -10,7 +10,7 @@ LICENSE = "LGPL-2.1-only"
10LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169" 10LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169"
11 11
12SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" 12SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
13SRC_URI[sha256sum] = "ccdd1d0abc31d73d8b435fc658c79049d0a905b30669b6a42a03ad169dc609e6" 13SRC_URI[sha256sum] = "2290e3aede6f4d163e1a17452165af33caad4b5f0948f99429cfa2d8385faa9d"
14 14
15UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar" 15UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
16 16
@@ -28,7 +28,7 @@ PACKAGECONFIG[jack] = ",,jack"
28PACKAGECONFIG[openal] = ",,openal-soft" 28PACKAGECONFIG[openal] = ",,openal-soft"
29PACKAGECONFIG[portaudio] = ",,portaudio-v19" 29PACKAGECONFIG[portaudio] = ",,portaudio-v19"
30PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" 30PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio"
31PACKAGECONFIG[sdl] = ",,libsdl2" 31PACKAGECONFIG[sdl] = ",,virtual/libsdl2"
32 32
33# Following are possible sound output modules: 33# Following are possible sound output modules:
34# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi 34# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index ae16056d24..695f4b676d 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -71,6 +71,14 @@ inherit bash-completion meson pkgconfig useradd gettext perlnative systemd manpa
71# if using --disable-nls 71# if using --disable-nls
72USE_NLS = "yes" 72USE_NLS = "yes"
73 73
74# Helps tests for -msse fail on non-SSE architectures which is all non-x86
75TUNE_CCARGS:append:toolchain-clang = " -Werror=unused-command-line-argument"
76
77# mix_neon.c:179:9: error: invalid operand in inline asm: 'vld1.s32 ${0:h}, [$2]
78# vld1.s32 ${1:h}, [$3] '
79TOOLCHAIN:armv7ve = "gcc"
80TOOLCHAIN:armv7a = "gcc"
81
74EXTRA_OEMESON = "\ 82EXTRA_OEMESON = "\
75 -Dhal-compat=false \ 83 -Dhal-compat=false \
76 -Dorc=disabled \ 84 -Dorc=disabled \
@@ -121,9 +129,10 @@ PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack"
121# able to use pulseaudio autospawn for root as well. 129# able to use pulseaudio autospawn for root as well.
122PACKAGECONFIG[autospawn-for-root] = ",,," 130PACKAGECONFIG[autospawn-for-root] = ",,,"
123PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc" 131PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc"
124PACKAGECONFIG[webrtc] = "-Dwebrtc-aec=enabled,-Dwebrtc-aec=disabled,webrtc-audio-processing" 132PACKAGECONFIG[webrtc] = "-Dwebrtc-aec=enabled,-Dwebrtc-aec=disabled,webrtc-audio-processing-1"
125PACKAGECONFIG[ipv6] = "-Dipv6=true,-Dipv6=false," 133PACKAGECONFIG[ipv6] = "-Dipv6=true,-Dipv6=false,"
126PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false," 134PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,"
135PACKAGECONFIG[oss-output] = "-Doss-output=enabled,-Doss-output=disabled,"
127 136
128export TARGET_PFPU = "${TARGET_FPU}" 137export TARGET_PFPU = "${TARGET_FPU}"
129 138
@@ -142,7 +151,7 @@ do_compile:append () {
142 151
143do_install:append() { 152do_install:append() {
144 install -d ${D}${sysconfdir}/default/volatiles 153 install -d ${D}${sysconfdir}/default/volatiles
145 install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse 154 install -m 0644 ${UNPACKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse
146} 155}
147 156
148USERADD_PACKAGES = "pulseaudio-server" 157USERADD_PACKAGES = "pulseaudio-server"
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb
index 54c79b4097..6c172b4ec7 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb
@@ -1,6 +1,6 @@
1require pulseaudio.inc 1require pulseaudio.inc
2 2
3SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ 3SRC_URI = "http://www.freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
4 file://0001-client-conf-Add-allow-autospawn-for-root.patch \ 4 file://0001-client-conf-Add-allow-autospawn-for-root.patch \
5 file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \ 5 file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
6 file://volatiles.04_pulse \ 6 file://volatiles.04_pulse \
diff --git a/meta/recipes-multimedia/sbc/sbc_2.0.bb b/meta/recipes-multimedia/sbc/sbc_2.1.bb
index d25be9e80c..8b91e7e65b 100644
--- a/meta/recipes-multimedia/sbc/sbc_2.0.bb
+++ b/meta/recipes-multimedia/sbc/sbc_2.1.bb
@@ -7,16 +7,19 @@ LICENSE:${PN} = "LGPL-2.1-or-later"
7LICENSE:${PN}-examples = "GPL-2.0-or-later" 7LICENSE:${PN}-examples = "GPL-2.0-or-later"
8LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ 8LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
9 file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \ 9 file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \
10 file://src/sbcenc.c;beginline=1;endline=24;md5=08e7a70b127f4100ff2cd7d629147d8d \ 10 file://src/sbcenc.c;beginline=1;endline=8;md5=cfac6012e2dea914de8b3b7693591622 \
11 file://sbc/sbc.h;beginline=1;endline=26;md5=0f57d0df22b0d40746bdd29805a4361b" 11 file://sbc/sbc.h;beginline=1;endline=10;md5=bbf642bd99160e4f2a5bbd5d174a8320 \
12 "
12 13
13DEPENDS = "libsndfile1" 14DEPENDS = "libsndfile1"
14 15
15SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/${BP}.tar.xz" 16SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/${BP}.tar.xz"
16 17
17SRC_URI[sha256sum] = "8f12368e1dbbf55e14536520473cfb338c84b392939cc9b64298360fd4a07992" 18SRC_URI[sha256sum] = "426633cabd7c798236443516dfa8335b47e004b0ef37ff107e0c7ead3299fcc2"
18 19
19inherit autotools pkgconfig 20inherit autotools pkgconfig
20 21
22CFLAGS += "-std=gnu17"
23
21PACKAGES =+ "${PN}-examples" 24PACKAGES =+ "${PN}-examples"
22FILES:${PN}-examples += "${bindir}/*" 25FILES:${PN}-examples += "${bindir}/*"
diff --git a/meta/recipes-multimedia/webp/libwebp_1.4.0.bb b/meta/recipes-multimedia/webp/libwebp_1.5.0.bb
index d922970479..39fe947eea 100644
--- a/meta/recipes-multimedia/webp/libwebp_1.4.0.bb
+++ b/meta/recipes-multimedia/webp/libwebp_1.5.0.bb
@@ -13,8 +13,8 @@ LICENSE = "BSD-3-Clause"
13LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \ 13LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \
14 file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7" 14 file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7"
15 15
16SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz" 16SRC_URI = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/${BP}.tar.gz"
17SRC_URI[sha256sum] = "61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5" 17SRC_URI[sha256sum] = "7d6fab70cf844bf6769077bd5d7a74893f8ffd4dfb42861745750c63c2a5c92c"
18 18
19UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html" 19UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html"
20 20
diff --git a/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch b/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch
deleted file mode 100644
index cb771fb0bf..0000000000
--- a/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1From 7bc25f4d1aaa5186d2eff3e2326c7245fcd7e7f3 Mon Sep 17 00:00:00 2001
2From: Christopher Larson <chris_larson@mentor.com>
3Date: Tue, 13 Dec 2016 14:22:32 -0700
4Subject: [PATCH] Fix X32 build by disabling asm
5
6This applies gentoo's x32 patch, adjusted slightly, which disables asm support
7for x32 as well as correcting -m.
8
9Debian has a different patch which does the same, and there's a superior yet
10out of date patch series on the x264 list which keeps asm support enabled, but
11doesn't successfully build at this time, and my assembly is very rusty.
12
13Upstream-Status: Pending
14Signed-off-by: Christopher Larson <chris_larson@mentor.com>
15
16---
17 configure | 14 ++++++++++++--
18 1 file changed, 12 insertions(+), 2 deletions(-)
19
20diff --git a/configure b/configure
21index 51b128d..6ea9469 100755
22--- a/configure
23+++ b/configure
24@@ -754,7 +754,13 @@ case $host_cpu in
25 AS_EXT=".asm"
26 ASFLAGS="$ASFLAGS -DARCH_X86_64=1 -I\$(SRCPATH)/common/x86/"
27 stack_alignment=16
28- [ $compiler = GNU ] && CFLAGS="-m64 $CFLAGS" && LDFLAGS="-m64 $LDFLAGS"
29+ if [ $compiler = GNU ]; then
30+ if cpp_check "" "" "__ILP32__" ; then
31+ CFLAGS="-mx32 $CFLAGS" && LDFLAGS="-mx32 $LDFLAGS"
32+ else
33+ CFLAGS="-m64 $CFLAGS" && LDFLAGS="-m64 $LDFLAGS"
34+ fi
35+ fi
36 if [ "$SYS" = MACOSX ]; then
37 ASFLAGS="$ASFLAGS -f macho64 -DPREFIX"
38 if cc_check '' "-arch x86_64"; then
39@@ -773,7 +779,11 @@ case $host_cpu in
40 RCFLAGS="--target=pe-x86-64 $RCFLAGS"
41 fi
42 else
43- ASFLAGS="$ASFLAGS -f elf64"
44+ if cpp_check "" "" "__ILP32__" ; then
45+ asm=no
46+ else
47+ ASFLAGS="$ASFLAGS -f elf64"
48+ fi
49 fi
50 ;;
51 powerpc*)
diff --git a/meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch b/meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch
deleted file mode 100644
index 065e3b35b7..0000000000
--- a/meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From a72bf499a0674fc75eedf15008b424e28f67e4bd Mon Sep 17 00:00:00 2001
2From: Andrei Gherzan <andrei@gherzan.ro>
3Date: Fri, 2 Feb 2018 15:10:08 +0200
4Subject: [PATCH] dont default to cortex-a9 with neon
5
6-march flag is not in CFLAGS so this will always default to
7 -mcpu=cortex-a8 -mfpu=neon.
8
9Upstream-Status: Pending
10
11Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
12Signed-off-by: Maxin B. John <maxin.john@intel.com>
13---
14 configure | 3 ---
15 1 file changed, 3 deletions(-)
16
17diff --git a/configure b/configure
18index 0e3ef23..955b993 100755
19--- a/configure
20+++ b/configure
21@@ -911,9 +911,6 @@ if [ $asm = auto -a \( $ARCH = X86 -o $ARCH = X86_64 \) ] ; then
22 fi
23
24 if [ $asm = auto -a $ARCH = ARM ] ; then
25- # set flags so neon is built by default
26- [ $compiler == CL ] || echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon"
27-
28 cc_check '' '' '__asm__("add r0, r1, r2");' && define HAVE_ARM_INLINE_ASM
29 if [ $compiler = CL ] && cpp_check '' '' 'defined(_M_ARM) && _M_ARM >= 7' ; then
30 define HAVE_ARMV6
31--
322.4.0
33
diff --git a/meta/recipes-multimedia/x264/x264_git.bb b/meta/recipes-multimedia/x264/x264_git.bb
index e7d9e75e8d..3cc3392593 100644
--- a/meta/recipes-multimedia/x264/x264_git.bb
+++ b/meta/recipes-multimedia/x264/x264_git.bb
@@ -8,18 +8,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
8 8
9DEPENDS = "nasm-native" 9DEPENDS = "nasm-native"
10 10
11SRC_URI = "git://github.com/mirror/x264;branch=stable;protocol=https \ 11SRC_URI = "git://code.videolan.org/videolan/x264.git;branch=stable;protocol=https \
12 file://don-t-default-to-cortex-a9-with-neon.patch \
13 file://Fix-X32-build-by-disabling-asm.patch \
14 " 12 "
15UPSTREAM_CHECK_COMMITS = "1" 13UPSTREAM_CHECK_COMMITS = "1"
16 14
17SRCREV = "baee400fa9ced6f5481a728138fed6e867b0ff7f" 15SRCREV = "31e19f92f00c7003fa115047ce50978bc98c3a0d"
18 16
19PV = "r3039+git" 17PV = "r3039+git"
20 18
21S = "${WORKDIR}/git"
22
23inherit lib_package pkgconfig 19inherit lib_package pkgconfig
24 20
25X264_DISABLE_ASM = "" 21X264_DISABLE_ASM = ""
@@ -41,6 +37,7 @@ EXTRA_OECONF = '--prefix=${prefix} \
41 --disable-opencl \ 37 --disable-opencl \
42 --enable-pic \ 38 --enable-pic \
43 ${X264_DISABLE_ASM} \ 39 ${X264_DISABLE_ASM} \
40 --extra-cflags="${TUNE_CCARGS}" \
44 ' 41 '
45 42
46do_configure() { 43do_configure() {
@@ -54,3 +51,5 @@ do_install() {
54} 51}
55 52
56AS[unexport] = "1" 53AS[unexport] = "1"
54
55COMPATIBLE_HOST:x86-x32 = "null"