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/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch31
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib_1.2.11.bb (renamed from meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb)37
-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.7.1.bb (renamed from meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb)75
-rw-r--r--meta/recipes-multimedia/alsa/alsa-tools_1.2.11.bb (renamed from meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb)8
-rw-r--r--meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.5.1.bb (renamed from meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.4.bb)5
-rw-r--r--meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.11.bb (renamed from meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb)5
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb25
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils_1.2.11.bb (renamed from meta/recipes-multimedia/alsa/alsa-utils.inc)105
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb2
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch52
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch97
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch75
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch35
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch32
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb (renamed from meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb)137
-rw-r--r--meta/recipes-multimedia/flac/flac_1.3.3.bb46
-rw-r--r--meta/recipes-multimedia/flac/flac_1.4.3.bb36
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch3
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gst-devtools_1.18.3.bb)13
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop2
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb (renamed from meta/recipes-multimedia/gstreamer/gst-examples_1.18.3.bb)16
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.3.bb)14
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb25
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18.3.bb)10
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch8
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch12
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch88
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch42
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch31
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.3.bb)54
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch12
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch22
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch10
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch32
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.3.bb)33
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch56
-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.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.3.bb)26
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc19
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc33
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.3.bb)19
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc23
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.3.bb)20
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.3.bb)6
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.18.3.bb)27
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch66
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch34
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch32
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch112
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch107
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch257
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch48
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch72
-rwxr-xr-xmeta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest16
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.3.bb)32
-rw-r--r--meta/recipes-multimedia/lame/lame_3.100.bb10
-rw-r--r--meta/recipes-multimedia/liba52/liba52/buildcleanup.patch89
-rw-r--r--meta/recipes-multimedia/liba52/liba52_0.7.4.bb29
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch40
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch34
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch43
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch21
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch15
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch39
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb28
-rw-r--r--meta/recipes-multimedia/libogg/libogg_1.3.5.bb (renamed from meta/recipes-multimedia/libogg/libogg_1.3.4.bb)4
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb8
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.43.bb (renamed from meta/recipes-multimedia/libpng/libpng_1.6.37.bb)16
-rw-r--r--meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch62
-rw-r--r--meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb (renamed from meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb)15
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/0001-a-ulaw-fix-multiple-buffer-overflows-432.patch107
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-12562.patch96
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-14634.patch42
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-6892.patch34
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8361-8365.patch73
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8362.patch59
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8363.patch37
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-13139.patch37
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19432.patch115
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19758.patch34
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2019-3832.patch37
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/cve-2022-33065.patch739
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch68
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb46
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb32
-rw-r--r--meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb1
-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.6.0.bb (renamed from meta/recipes-multimedia/libtiff/tiff_4.2.0.bb)27
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch156
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch55
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch63
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch70
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch43
-rw-r--r--meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb51
-rw-r--r--meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb (renamed from meta/recipes-multimedia/mpg123/mpg123_1.26.4.bb)11
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio.inc87
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch67
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch26
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson-Check-for-__get_cpuid.patch82
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb (renamed from meta/recipes-multimedia/pulseaudio/pulseaudio_14.2.bb)6
-rw-r--r--meta/recipes-multimedia/sbc/sbc/0001-sbc_primitives-Fix-build-on-non-x86.patch45
-rw-r--r--meta/recipes-multimedia/sbc/sbc_2.0.bb (renamed from meta/recipes-multimedia/sbc/sbc_1.5.bb)14
-rw-r--r--meta/recipes-multimedia/speex/speex_1.2.1.bb (renamed from meta/recipes-multimedia/speex/speex_1.2.0.bb)8
-rw-r--r--meta/recipes-multimedia/speex/speexdsp_1.2.1.bb (renamed from meta/recipes-multimedia/speex/speexdsp_1.2.0.bb)15
-rw-r--r--meta/recipes-multimedia/webp/libwebp_1.4.0.bb (renamed from meta/recipes-multimedia/webp/libwebp_1.2.0.bb)12
-rw-r--r--meta/recipes-multimedia/x264/x264_git.bb18
115 files changed, 2431 insertions, 3347 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
new file mode 100644
index 0000000000..30aeef5817
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-correct-version-script-path.patch
@@ -0,0 +1,38 @@
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/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch b/meta/recipes-multimedia/alsa/alsa-lib/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch
deleted file mode 100644
index 98e2988dda..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e Mon Sep 17 00:00:00 2001
2From: Jaroslav Kysela <perex@perex.cz>
3Date: Thu, 22 Oct 2020 20:57:32 +0200
4Subject: [PATCH] dlmisc: the snd_plugin_dir_set / snd_plugin_dir must be
5 declared even for \!DL_ORIGIN_AVAILABLE
6
7Fixes: 8580c081c2 ("dlsym: add support for ALSA_PLUGIN_DIR environment variable")
8BugLink: https://github.com/alsa-project/alsa-lib/issues/91
9Signed-off-by: Jaroslav Kysela <perex@perex.cz>
10Upstream-Status: Backport
11Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12---
13 src/dlmisc.c | 2 --
14 1 file changed, 2 deletions(-)
15
16diff --git a/src/dlmisc.c b/src/dlmisc.c
17index c9517c55..f20eb593 100644
18--- a/src/dlmisc.c
19+++ b/src/dlmisc.c
20@@ -42,11 +42,9 @@
21 #ifndef PIC
22 struct snd_dlsym_link *snd_dlsym_start = NULL;
23 #endif
24-#ifdef DL_ORIGIN_AVAILABLE
25 static int snd_plugin_dir_set = 0;
26 static char *snd_plugin_dir = NULL;
27 #endif
28-#endif
29
30 #if defined(DL_ORIGIN_AVAILABLE) && defined(HAVE_LIBPTHREAD)
31 static pthread_mutex_t snd_dlpath_mutex = PTHREAD_MUTEX_INITIALIZER;
diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.2.11.bb
index c49cc2a9b4..c212b17aa3 100644
--- a/meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb
+++ b/meta/recipes-multimedia/alsa/alsa-lib_1.2.11.bb
@@ -4,42 +4,43 @@ provides a level of abstraction over the /dev interfaces provided by the kernel
4HOMEPAGE = "http://www.alsa-project.org" 4HOMEPAGE = "http://www.alsa-project.org"
5BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" 5BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
6SECTION = "libs/multimedia" 6SECTION = "libs/multimedia"
7LICENSE = "LGPLv2.1 & GPLv2+" 7LICENSE = "LGPL-2.1-only & GPL-2.0-or-later"
8LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ 8LIC_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://ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch" 13 file://0001-topology-correct-version-script-path.patch \
14SRC_URI[sha256sum] = "f7554be1a56cdff468b58fc1c29b95b64864c590038dd309c7a978c7116908f7" 14 "
15SRC_URI[sha256sum] = "9f3f2f69b995f9ad37359072fbc69a3a88bfba081fc83e9be30e14662795bb4d"
15 16
16inherit autotools pkgconfig 17inherit autotools pkgconfig
17 18
18EXTRA_OECONF += " \ 19EXTRA_OECONF += " \
19 ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \ 20 ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \
20 --disable-python \ 21 --disable-python --disable-old-symbols \
21" 22"
22 23
23PACKAGES =+ "alsa-server alsa-conf libatopology" 24PACKAGES =+ "alsa-server alsa-conf libatopology"
24 25
25FILES_alsa-server = "${bindir}/*" 26FILES:alsa-server = "${bindir}/*"
26FILES_alsa-conf = "${datadir}/alsa/" 27FILES:alsa-conf = "${datadir}/alsa/"
27FILES_libatopology = "${libdir}/libatopology.so.*" 28FILES:libatopology = "${libdir}/libatopology.so.*"
28 29
29RDEPENDS_${PN}_class-target = "alsa-conf alsa-ucm-conf" 30RDEPENDS:${PN}:class-target = "alsa-conf alsa-ucm-conf"
30RDEPENDS_libatopology_class-target = "alsa-topology-conf" 31RDEPENDS:libatopology:class-target = "alsa-topology-conf"
31 32
32# upgrade path 33# upgrade path
33RPROVIDES_${PN} = "libasound" 34RPROVIDES:${PN} = "libasound"
34RREPLACES_${PN} = "libasound" 35RREPLACES:${PN} = "libasound"
35RCONFLICTS_${PN} = "libasound" 36RCONFLICTS:${PN} = "libasound"
36 37
37RPROVIDES_${PN}-dev = "alsa-dev" 38RPROVIDES:${PN}-dev = "alsa-dev"
38RREPLACES_${PN}-dev = "alsa-dev" 39RREPLACES:${PN}-dev = "alsa-dev"
39RCONFLICTS_${PN}-dev = "alsa-dev" 40RCONFLICTS:${PN}-dev = "alsa-dev"
40 41
41RPROVIDES_alsa-conf = "alsa-conf-base" 42RPROVIDES:alsa-conf = "alsa-conf-base"
42RREPLACES_alsa-conf = "alsa-conf-base" 43RREPLACES:alsa-conf = "alsa-conf-base"
43RCONFLICTS_alsa-conf = "alsa-conf-base" 44RCONFLICTS:alsa-conf = "alsa-conf-base"
44 45
45BBCLASSEXTEND = "native nativesdk" 46BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..ff7745d637
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam_av.c-Include-missing-string.h.patch
@@ -0,0 +1,25 @@
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.2.bb b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.7.1.bb
index 1381896f38..9500462d5c 100644
--- a/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb
+++ b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.7.1.bb
@@ -6,25 +6,26 @@ HOMEPAGE = "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"
8 8
9# The primary license of alsa-plugins is LGPLv2.1. 9# The primary license of alsa-plugins is LGPL-2.1-only.
10# 10#
11# m4/attributes.m4 is licensed under GPLv2+. m4/attributes.m4 is part of the 11# m4/attributes.m4 is licensed under GPL-2.0-or-later. m4/attributes.m4 is part
12# build system, and doesn't affect the licensing of the build result. 12# of the build system, and doesn't affect the licensing of the build result.
13# 13#
14# The samplerate plugin source code is licensed under GPLv2+ to be consistent 14# The samplerate plugin source code is licensed under GPL-2.0-or-later to be
15# with the libsamplerate license. However, if the licensee has a commercial 15# consistent with the libsamplerate license. However, if the licensee has a
16# license for libsamplerate, the samplerate plugin may be used under the terms 16# commercial license for libsamplerate, the samplerate plugin may be used under
17# of LGPLv2.1 like the rest of the plugins. 17# the terms of LGPL-2.1-only like the rest of the plugins.
18LICENSE = "LGPLv2.1 & GPLv2+" 18LICENSE = "LGPL-2.1-only & GPL-2.0-or-later"
19LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ 19LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
20 file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \ 20 file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \
21 file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \ 21 file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \
22 file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \ 22 file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \
23 " 23 "
24 24
25SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2" 25SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2 \
26SRC_URI[md5sum] = "8455e3c6fbc47f62f070afabc14ba575" 26 file://0001-arcam_av.c-Include-missing-string.h.patch \
27SRC_URI[sha256sum] = "1c0f06450c928d711719686c9dbece2d480184f36fab11b8f0534cb7b41e337d" 27 "
28SRC_URI[sha256sum] = "8c337814954bb7c167456733a6046142a2931f12eccba3ec2a4ae618a3432511"
28 29
29DEPENDS += "alsa-lib" 30DEPENDS += "alsa-lib"
30 31
@@ -35,7 +36,7 @@ PACKAGECONFIG ??= "\
35 speexdsp \ 36 speexdsp \
36 ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ 37 ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
37" 38"
38PACKAGECONFIG[aaf] = "--enable-aaf,--disable-aaf,avtp" 39PACKAGECONFIG[aaf] = "--enable-aaf,--disable-aaf,libavtp"
39PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" 40PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
40PACKAGECONFIG[libav] = "--enable-libav,--disable-libav,libav" 41PACKAGECONFIG[libav] = "--enable-libav,--disable-libav,libav"
41PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin" 42PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin"
@@ -50,10 +51,10 @@ PACKAGES_DYNAMIC = "^libasound-module-.*"
50 51
51# The alsa-plugins package doesn't itself contain anything, it just depends on 52# The alsa-plugins package doesn't itself contain anything, it just depends on
52# all built plugins. 53# all built plugins.
53FILES_${PN} = "" 54FILES:${PN} = ""
54ALLOW_EMPTY_${PN} = "1" 55ALLOW_EMPTY:${PN} = "1"
55 56
56do_install_append() { 57do_install:append() {
57 rm -f ${D}${libdir}/alsa-lib/*.la 58 rm -f ${D}${libdir}/alsa-lib/*.la
58 59
59 if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then 60 if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then
@@ -66,10 +67,10 @@ do_install_append() {
66 fi 67 fi
67} 68}
68 69
69python populate_packages_prepend() { 70python populate_packages:prepend() {
70 plugindir = d.expand('${libdir}/alsa-lib/') 71 plugindir = d.expand('${libdir}/alsa-lib/')
71 packages = " ".join(do_split_packages(d, plugindir, r'^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends='')) 72 packages = " ".join(do_split_packages(d, plugindir, r'^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends=''))
72 d.setVar("RDEPENDS_alsa-plugins", packages) 73 d.setVar("RDEPENDS:alsa-plugins", packages)
73} 74}
74 75
75# Many plugins have a configuration file (plus a symlink in /etc) associated 76# Many plugins have a configuration file (plus a symlink in /etc) associated
@@ -85,51 +86,51 @@ python populate_packages_prepend() {
85# cause big problems, but some kind of improvement to the packaging could 86# cause big problems, but some kind of improvement to the packaging could
86# probably be done here (at least it would be good to handle the different 87# probably be done here (at least it would be good to handle the different
87# plugins in a consistent way). 88# plugins in a consistent way).
88FILES_${MLPREFIX}libasound-module-ctl-arcam-av += "\ 89FILES:${MLPREFIX}libasound-module-ctl-arcam-av += "\
89 ${datadir}/alsa/alsa.conf.d/50-arcam-av-ctl.conf \ 90 ${datadir}/alsa/alsa.conf.d/50-arcam-av-ctl.conf \
90 ${sysconfdir}/alsa/conf.d/50-arcam-av-ctl.conf \ 91 ${sysconfdir}/alsa/conf.d/50-arcam-av-ctl.conf \
91" 92"
92FILES_${MLPREFIX}libasound-module-pcm-a52 += "\ 93FILES:${MLPREFIX}libasound-module-pcm-a52 += "\
93 ${datadir}/alsa/alsa.conf.d/60-a52-encoder.conf \ 94 ${datadir}/alsa/alsa.conf.d/60-a52-encoder.conf \
94 ${sysconfdir}/alsa/conf.d/60-a52-encoder.conf \ 95 ${sysconfdir}/alsa/conf.d/60-a52-encoder.conf \
95" 96"
96FILES_${MLPREFIX}libasound-module-pcm-alsa-dsp += "\ 97FILES:${MLPREFIX}libasound-module-pcm-alsa-dsp += "\
97 ${datadir}/alsa/alsa.conf.d/98-maemo.conf \ 98 ${datadir}/alsa/alsa.conf.d/98-maemo.conf \
98 ${sysconfdir}/alsa/conf.d/98-maemo.conf \ 99 ${sysconfdir}/alsa/conf.d/98-maemo.conf \
99" 100"
100FILES_${MLPREFIX}libasound-module-pcm-jack += "\ 101FILES:${MLPREFIX}libasound-module-pcm-jack += "\
101 ${datadir}/alsa/alsa.conf.d/50-jack.conf \ 102 ${datadir}/alsa/alsa.conf.d/50-jack.conf \
102 ${sysconfdir}/alsa/conf.d/50-jack.conf \ 103 ${sysconfdir}/alsa/conf.d/50-jack.conf \
103" 104"
104FILES_${MLPREFIX}libasound-module-pcm-oss += "\ 105FILES:${MLPREFIX}libasound-module-pcm-oss += "\
105 ${datadir}/alsa/alsa.conf.d/50-oss.conf \ 106 ${datadir}/alsa/alsa.conf.d/50-oss.conf \
106 ${sysconfdir}/alsa/conf.d/50-oss.conf \ 107 ${sysconfdir}/alsa/conf.d/50-oss.conf \
107" 108"
108FILES_${MLPREFIX}libasound-module-pcm-speex += "\ 109FILES:${MLPREFIX}libasound-module-pcm-speex += "\
109 ${datadir}/alsa/alsa.conf.d/60-speex.conf \ 110 ${datadir}/alsa/alsa.conf.d/60-speex.conf \
110 ${sysconfdir}/alsa/conf.d/60-speex.conf \ 111 ${sysconfdir}/alsa/conf.d/60-speex.conf \
111" 112"
112FILES_${MLPREFIX}libasound-module-pcm-upmix += "\ 113FILES:${MLPREFIX}libasound-module-pcm-upmix += "\
113 ${datadir}/alsa/alsa.conf.d/60-upmix.conf \ 114 ${datadir}/alsa/alsa.conf.d/60-upmix.conf \
114 ${sysconfdir}/alsa/conf.d/60-upmix.conf \ 115 ${sysconfdir}/alsa/conf.d/60-upmix.conf \
115" 116"
116FILES_${MLPREFIX}libasound-module-pcm-usb-stream += "\ 117FILES:${MLPREFIX}libasound-module-pcm-usb-stream += "\
117 ${datadir}/alsa/alsa.conf.d/98-usb-stream.conf \ 118 ${datadir}/alsa/alsa.conf.d/98-usb-stream.conf \
118 ${sysconfdir}/alsa/conf.d/98-usb-stream.conf \ 119 ${sysconfdir}/alsa/conf.d/98-usb-stream.conf \
119" 120"
120FILES_${MLPREFIX}libasound-module-pcm-vdownmix += "\ 121FILES:${MLPREFIX}libasound-module-pcm-vdownmix += "\
121 ${datadir}/alsa/alsa.conf.d/60-vdownmix.conf \ 122 ${datadir}/alsa/alsa.conf.d/60-vdownmix.conf \
122 ${sysconfdir}/alsa/conf.d/60-vdownmix.conf \ 123 ${sysconfdir}/alsa/conf.d/60-vdownmix.conf \
123" 124"
124FILES_${MLPREFIX}libasound-module-rate-lavrate += "\ 125FILES:${MLPREFIX}libasound-module-rate-lavrate += "\
125 ${datadir}/alsa/alsa.conf.d/10-rate-lav.conf \ 126 ${datadir}/alsa/alsa.conf.d/10-rate-lav.conf \
126 ${sysconfdir}/alsa/conf.d/10-rate-lav.conf \ 127 ${sysconfdir}/alsa/conf.d/10-rate-lav.conf \
127" 128"
128FILES_${MLPREFIX}libasound-module-rate-samplerate += "\ 129FILES:${MLPREFIX}libasound-module-rate-samplerate += "\
129 ${datadir}/alsa/alsa.conf.d/10-samplerate.conf \ 130 ${datadir}/alsa/alsa.conf.d/10-samplerate.conf \
130 ${sysconfdir}/alsa/conf.d/10-samplerate.conf \ 131 ${sysconfdir}/alsa/conf.d/10-samplerate.conf \
131" 132"
132FILES_${MLPREFIX}libasound-module-rate-speexrate += "\ 133FILES:${MLPREFIX}libasound-module-rate-speexrate += "\
133 ${datadir}/alsa/alsa.conf.d/10-speexrate.conf \ 134 ${datadir}/alsa/alsa.conf.d/10-speexrate.conf \
134 ${sysconfdir}/alsa/conf.d/10-speexrate.conf \ 135 ${sysconfdir}/alsa/conf.d/10-speexrate.conf \
135" 136"
@@ -150,25 +151,25 @@ FILES_${MLPREFIX}libasound-module-rate-speexrate += "\
150# The symlinks cause QA errors, because usually it's a bug if a non 151# The symlinks cause QA errors, because usually it's a bug if a non
151# -dev/-dbg/-nativesdk package contains links to .so files, but in this case 152# -dev/-dbg/-nativesdk package contains links to .so files, but in this case
152# the errors are false positives, so we disable the QA checks. 153# the errors are false positives, so we disable the QA checks.
153FILES_${MLPREFIX}libasound-module-rate-lavrate += "${libdir}/alsa-lib/*rate_lavrate_*.so" 154FILES:${MLPREFIX}libasound-module-rate-lavrate += "${libdir}/alsa-lib/*rate_lavrate_*.so"
154FILES_${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so" 155FILES:${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so"
155FILES_${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so" 156FILES:${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so"
156INSANE_SKIP_${MLPREFIX}libasound-module-rate-lavrate = "dev-so" 157INSANE_SKIP:${MLPREFIX}libasound-module-rate-lavrate = "dev-so"
157INSANE_SKIP_${MLPREFIX}libasound-module-rate-samplerate = "dev-so" 158INSANE_SKIP:${MLPREFIX}libasound-module-rate-samplerate = "dev-so"
158INSANE_SKIP_${MLPREFIX}libasound-module-rate-speexrate = "dev-so" 159INSANE_SKIP:${MLPREFIX}libasound-module-rate-speexrate = "dev-so"
159 160
160# 50-pulseaudio.conf defines a device named "pulse" that applications can use 161# 50-pulseaudio.conf defines a device named "pulse" that applications can use
161# if they explicitly want to use the PulseAudio plugin. 162# if they explicitly want to use the PulseAudio plugin.
162# 99-pulseaudio-default.conf configures the "default" device to use the 163# 99-pulseaudio-default.conf configures the "default" device to use the
163# PulseAudio plugin. 164# PulseAudio plugin.
164FILES_${PN}-pulseaudio-conf += "\ 165FILES:${PN}-pulseaudio-conf += "\
165 ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \ 166 ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \
166 ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \ 167 ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \
167 ${sysconfdir}/alsa/conf.d/50-pulseaudio.conf \ 168 ${sysconfdir}/alsa/conf.d/50-pulseaudio.conf \
168 ${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf \ 169 ${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf \
169" 170"
170 171
171RDEPENDS_${PN}-pulseaudio-conf += "\ 172RDEPENDS:${PN}-pulseaudio-conf += "\
172 ${MLPREFIX}libasound-module-conf-pulse \ 173 ${MLPREFIX}libasound-module-conf-pulse \
173 ${MLPREFIX}libasound-module-ctl-pulse \ 174 ${MLPREFIX}libasound-module-ctl-pulse \
174 ${MLPREFIX}libasound-module-pcm-pulse \ 175 ${MLPREFIX}libasound-module-pcm-pulse \
diff --git a/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb b/meta/recipes-multimedia/alsa/alsa-tools_1.2.11.bb
index 0a25d809b0..53868041c0 100644
--- a/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb
+++ b/meta/recipes-multimedia/alsa/alsa-tools_1.2.11.bb
@@ -5,7 +5,7 @@ firmware loaders for pcmcia, USB and the hdsp devices."
5HOMEPAGE = "http://www.alsa-project.org" 5HOMEPAGE = "http://www.alsa-project.org"
6BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" 6BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
7SECTION = "console/utils" 7SECTION = "console/utils"
8LICENSE = "GPLv2 & LGPLv2+" 8LICENSE = "GPL-2.0-only & LGPL-2.0-or-later"
9DEPENDS = "alsa-lib" 9DEPENDS = "alsa-lib"
10 10
11LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ 11LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
@@ -14,8 +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[md5sum] = "4e6187d2c3a8c73a9d75d66a72faed27" 17SRC_URI[sha256sum] = "0915c9634a502fd3655ca9c574d259bc9e79983d91d45aeacff6f3c00f8ae3e9"
18SRC_URI[sha256sum] = "bfd3c7aae1289269605d3da02279159b10e3dabdd31e658cbceaa30170957349"
19 18
20inherit autotools-brokensep pkgconfig 19inherit autotools-brokensep pkgconfig
21# brokensep as as10k1 (and probably more) fail out of tree 20# brokensep as as10k1 (and probably more) fail out of tree
@@ -72,6 +71,7 @@ python do_compile() {
72} 71}
73 72
74python do_install() { 73python do_install() {
74 d.delVarFlag("autotools_do_install", "cleandirs")
75 for subdir in d.getVar("PACKAGECONFIG").split(): 75 for subdir in d.getVar("PACKAGECONFIG").split():
76 subdir = subdir.replace("--", "/") 76 subdir = subdir.replace("--", "/")
77 bb.note("Installing %s" % subdir) 77 bb.note("Installing %s" % subdir)
@@ -86,4 +86,4 @@ python do_install() {
86 pass 86 pass
87} 87}
88 88
89FILES_${PN} += "${datadir}" 89FILES:${PN} += "${datadir}"
diff --git a/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.5.1.bb
index 26542fbbbc..4374a6bb6d 100644
--- a/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.4.bb
+++ b/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.5.1.bb
@@ -8,7 +8,8 @@ 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] = "55e0e6e42eca4cc7656c257af2440cdc65b83689dca49fc60ca0194db079ed07" 11SRC_URI[sha256sum] = "f7c5bae1545abcd73824bc97f4e72c340e11abea188ba0f1c06f5e0ad776b179"
12# Something went wrong at upstream tarballing
12 13
13inherit allarch 14inherit allarch
14 15
@@ -19,4 +20,4 @@ do_install() {
19 20
20PACKAGES = "${PN}" 21PACKAGES = "${PN}"
21 22
22FILES_${PN} = "*" 23FILES:${PN} = "*"
diff --git a/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.11.bb
index 32cf41c8fd..ce1a42c9b8 100644
--- a/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb
+++ b/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.11.bb
@@ -8,7 +8,8 @@ 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] = "2c3b535c77dcb9aaf62a61f4f8324f1ab184162f105f7ec9ed1e37c742fcd340" 11SRC_URI[sha256sum] = "387c01cf30e2a1676d7b8f72b2681cf219abca70dd1ec2a9e33add5bf3feae81"
12# Something went wrong at upstream tarballing
12 13
13inherit allarch 14inherit allarch
14 15
@@ -20,4 +21,4 @@ do_install() {
20 21
21PACKAGES = "${PN}" 22PACKAGES = "${PN}"
22 23
23FILES_${PN} = "*" 24FILES:${PN} = "*"
diff --git a/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb
deleted file mode 100644
index 048fef68a5..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1require alsa-utils.inc
2
3SUMMARY = "Shell scripts that show help info and create ALSA configuration files"
4PROVIDES = "alsa-utils-alsaconf"
5
6FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-utils:"
7
8PACKAGES = "${PN}"
9RDEPENDS_${PN} += "bash"
10
11FILES_${PN} = "${sbindir}/alsaconf \
12 ${sbindir}/alsa-info.sh \
13 ${sbindir}/alsabat-test.sh \
14 "
15
16S = "${WORKDIR}/alsa-utils-${PV}"
17
18do_install() {
19 install -d ${D}${sbindir}
20 install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/
21 install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/
22 if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then
23 install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/
24 fi
25}
diff --git a/meta/recipes-multimedia/alsa/alsa-utils.inc b/meta/recipes-multimedia/alsa/alsa-utils_1.2.11.bb
index f2e8133d2c..e598fac9f8 100644
--- a/meta/recipes-multimedia/alsa/alsa-utils.inc
+++ b/meta/recipes-multimedia/alsa/alsa-utils_1.2.11.bb
@@ -4,8 +4,9 @@ designed to allow users to control the various parts of the ALSA system."
4HOMEPAGE = "http://www.alsa-project.org" 4HOMEPAGE = "http://www.alsa-project.org"
5BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" 5BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
6SECTION = "console/utils" 6SECTION = "console/utils"
7# Some parts are GPLv2+, some are only GPLv2 (e.g. axfer, alsactl) so result is GPLv2 7# Some parts are GPL-2.0-or-later, some are GPL-2.0-only (e.g. axfer, alsactl)
8LICENSE = "GPLv2" 8# so result is GPL-2.0-only
9LICENSE = "GPL-2.0-only"
9LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ 10LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
10 file://alsactl/utils.c;beginline=3;endline=18;md5=96cc06a4cebe5eb7975688ffb0e65642" 11 file://alsactl/utils.c;beginline=3;endline=18;md5=96cc06a4cebe5eb7975688ffb0e65642"
11DEPENDS = "alsa-lib ncurses libsamplerate0" 12DEPENDS = "alsa-lib ncurses libsamplerate0"
@@ -23,8 +24,9 @@ PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev
23PACKAGECONFIG[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"
24 25
25# 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
26SRC_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 \
27SRC_URI[sha256sum] = "98ffc2d599de0577d423a48fa5f20a992ca0b82d812ed1f2e58ade49ac6da426" 28 "
29SRC_URI[sha256sum] = "9ac6ca3a883f151e568dcf979b8d2e5cbecc51b819bb0e6bb8a2e9b34cc428a7"
28 30
29# On build machines with python-docutils (not python3-docutils !!) installed 31# On build machines with python-docutils (not python3-docutils !!) installed
30# rst2man (not rst2man.py) is detected and compile fails with 32# rst2man (not rst2man.py) is detected and compile fails with
@@ -52,56 +54,71 @@ ALSA_UTILS_PKGS = "\
52 alsa-utils-alsactl \ 54 alsa-utils-alsactl \
53 alsa-utils-alsaloop \ 55 alsa-utils-alsaloop \
54 alsa-utils-alsaucm \ 56 alsa-utils-alsaucm \
57 alsa-utils-scripts \
58 alsa-utils-nhltdmicinfo \
55 " 59 "
56 60
57PACKAGES += "${ALSA_UTILS_PKGS}" 61PACKAGES += "${ALSA_UTILS_PKGS}"
58RDEPENDS_${PN} += "${ALSA_UTILS_PKGS}" 62RDEPENDS:${PN} += "${ALSA_UTILS_PKGS}"
59 63
60FILES_${PN} = "" 64FILES:${PN} = ""
61ALLOW_EMPTY_alsa-utils = "1" 65ALLOW_EMPTY:alsa-utils = "1"
62FILES_alsa-utils-alsabat = "${bindir}/alsabat" 66FILES:alsa-utils-alsabat = "${bindir}/alsabat"
63FILES_alsa-utils-alsatplg = "${bindir}/alsatplg" 67FILES:alsa-utils-alsatplg = "${bindir}/alsatplg ${libdir}/alsa-topology"
64FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord ${bindir}/axfer" 68FILES:alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord ${bindir}/axfer"
65FILES_alsa-utils-amixer = "${bindir}/amixer" 69FILES:alsa-utils-amixer = "${bindir}/amixer"
66FILES_alsa-utils-alsamixer = "${bindir}/alsamixer" 70FILES:alsa-utils-alsamixer = "${bindir}/alsamixer"
67FILES_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/"
68FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi" 72FILES:alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
69FILES_alsa-utils-aconnect = "${bindir}/aconnect" 73FILES:alsa-utils-aconnect = "${bindir}/aconnect"
70FILES_alsa-utils-aseqnet = "${bindir}/aseqnet" 74FILES:alsa-utils-aseqnet = "${bindir}/aseqnet"
71FILES_alsa-utils-iecset = "${bindir}/iecset" 75FILES:alsa-utils-iecset = "${bindir}/iecset"
72FILES_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/" 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/"
73FILES_alsa-utils-aseqdump = "${bindir}/aseqdump" 77FILES:alsa-utils-aseqdump = "${bindir}/aseqdump"
74FILES_alsa-utils-alsaloop = "${bindir}/alsaloop" 78FILES:alsa-utils-alsaloop = "${bindir}/alsaloop"
75FILES_alsa-utils-alsaucm = "${bindir}/alsaucm */udev/rules.d/89-alsa-ucm.rules */*/udev/rules.d/89-alsa-ucm.rules" 79FILES:alsa-utils-alsaucm = "${bindir}/alsaucm */udev/rules.d/89-alsa-ucm.rules */*/udev/rules.d/89-alsa-ucm.rules"
76 80FILES:alsa-utils-scripts = "${sbindir}/alsaconf \
77SUMMARY_alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver" 81 ${sbindir}/alsa-info.sh \
78SUMMARY_alsa-utils-alsatplg = "Converts topology text files into binary format for kernel" 82 ${sbindir}/alsabat-test.sh \
79SUMMARY_alsa-utils-aplay = "Play (and record) sound files using ALSA" 83 "
80SUMMARY_alsa-utils-amixer = "Command-line control for ALSA mixer and settings" 84FILES:alsa-utils-nhltdmicinfo = "${bindir}/nhlt-dmic-info"
81SUMMARY_alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings" 85
82SUMMARY_alsa-utils-speakertest = "ALSA surround speaker test utility" 86SUMMARY:alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver"
83SUMMARY_alsa-utils-midi = "Miscellaneous MIDI utilities for ALSA" 87SUMMARY:alsa-utils-alsatplg = "Converts topology text files into binary format for kernel"
84SUMMARY_alsa-utils-aconnect = "ALSA sequencer connection manager" 88SUMMARY:alsa-utils-aplay = "Play (and record) sound files using ALSA"
85SUMMARY_alsa-utils-aseqnet = "Network client/server for ALSA sequencer" 89SUMMARY:alsa-utils-amixer = "Command-line control for ALSA mixer and settings"
86SUMMARY_alsa-utils-iecset = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits" 90SUMMARY:alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings"
87SUMMARY_alsa-utils-alsactl = "Saves/restores ALSA-settings in /etc/asound.state" 91SUMMARY:alsa-utils-speakertest = "ALSA surround speaker test utility"
88SUMMARY_alsa-utils-aseqdump = "Shows the events received at an ALSA sequencer port" 92SUMMARY:alsa-utils-midi = "Miscellaneous MIDI utilities for ALSA"
89SUMMARY_alsa-utils-alsaloop = "ALSA PCM loopback utility" 93SUMMARY:alsa-utils-aconnect = "ALSA sequencer connection manager"
90SUMMARY_alsa-utils-alsaucm = "ALSA Use Case Manager" 94SUMMARY:alsa-utils-aseqnet = "Network client/server for ALSA sequencer"
91 95SUMMARY:alsa-utils-iecset = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits"
92RRECOMMENDS_alsa-utils-alsactl = "alsa-states" 96SUMMARY:alsa-utils-alsactl = "Saves/restores ALSA-settings in /etc/asound.state"
97SUMMARY:alsa-utils-aseqdump = "Shows the events received at an ALSA sequencer port"
98SUMMARY:alsa-utils-alsaloop = "ALSA PCM loopback utility"
99SUMMARY:alsa-utils-alsaucm = "ALSA Use Case Manager"
100SUMMARY:alsa-utils-scripts = "Shell scripts that show help info and create ALSA configuration files"
101SUMMARY:alsa-utils-nhltdmicinfo = "Dumps microphone array information from ACPI NHLT table"
102
103RRECOMMENDS:alsa-utils-alsactl = "alsa-states"
93 104
94do_install() { 105do_install() {
95 autotools_do_install 106 autotools_do_install
96 107
97 # We don't ship this here because it requires a dependency on bash. 108 install -d ${D}${sbindir}
98 # See alsa-utils-scripts_${PV}.bb 109 install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/
99 rm ${D}${sbindir}/alsaconf 110 install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/
100 rm ${D}${sbindir}/alsa-info.sh 111 if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then
101 rm -f ${D}${sbindir}/alsabat-test.sh 112 install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/
113 fi
102 114
103 # If udev is disabled, we told configure to install the rules 115 # If udev is disabled, we told configure to install the rules
104 # in /unwanted, so we can remove them now. If udev is enabled, 116 # in /unwanted, so we can remove them now. If udev is enabled,
105 # then /unwanted won't exist and this will have no effect. 117 # then /unwanted won't exist and this will have no effect.
106 rm -rf ${D}/unwanted 118 rm -rf ${D}/unwanted
107} 119}
120
121
122PROVIDES = "alsa-utils-alsaconf alsa-utils-scripts"
123
124RDEPENDS:${PN}-scripts += "bash"
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb
deleted file mode 100644
index 3430288da4..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
1require alsa-utils.inc
2
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch
deleted file mode 100644
index 7635c9196a..0000000000
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch
+++ /dev/null
@@ -1,52 +0,0 @@
1From aebb72e025cbfbd4a6765354f6f565ad4ac89789 Mon Sep 17 00:00:00 2001
2From: Jun Zhao <barryjzhao@tencent.com>
3Date: Sun, 12 Jul 2020 05:48:48 +0800
4Subject: [PATCH] lavf/srt: fix build fail when used the libsrt 1.4.1
5
6lavf/srt: fix build fail when used the libsrt 1.4.1
7
8libsrt changed the:
9SRTO_SMOOTHER -> SRTO_CONGESTION
10SRTO_STRICTENC -> SRTO_ENFORCEDENCRYPTION
11and removed the front of deprecated options (SRTO_SMOOTHER/SRTO_STRICTENC)
12in the header, it's lead to build fail
13
14fix #8760
15
16Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/7c59e1b0f285cd7c7b35fcd71f49c5fd52cf9315]
17
18Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
19Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
20---
21 libavformat/libsrt.c | 8 ++++++++
22 1 file changed, 8 insertions(+)
23
24diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c
25index 4de575b..4719ce0 100644
26--- a/libavformat/libsrt.c
27+++ b/libavformat/libsrt.c
28@@ -313,8 +313,12 @@ static int libsrt_set_options_pre(URLContext *h, int fd)
29 (s->pbkeylen >= 0 && libsrt_setsockopt(h, fd, SRTO_PBKEYLEN, "SRTO_PBKEYLEN", &s->pbkeylen, sizeof(s->pbkeylen)) < 0) ||
30 (s->passphrase && libsrt_setsockopt(h, fd, SRTO_PASSPHRASE, "SRTO_PASSPHRASE", s->passphrase, strlen(s->passphrase)) < 0) ||
31 #if SRT_VERSION_VALUE >= 0x010302
32+#if SRT_VERSION_VALUE >= 0x010401
33+ (s->enforced_encryption >= 0 && libsrt_setsockopt(h, fd, SRTO_ENFORCEDENCRYPTION, "SRTO_ENFORCEDENCRYPTION", &s->enforced_encryption, sizeof(s->enforced_encryption)) < 0) ||
34+#else
35 /* SRTO_STRICTENC == SRTO_ENFORCEDENCRYPTION (53), but for compatibility, we used SRTO_STRICTENC */
36 (s->enforced_encryption >= 0 && libsrt_setsockopt(h, fd, SRTO_STRICTENC, "SRTO_STRICTENC", &s->enforced_encryption, sizeof(s->enforced_encryption)) < 0) ||
37+#endif
38 (s->kmrefreshrate >= 0 && libsrt_setsockopt(h, fd, SRTO_KMREFRESHRATE, "SRTO_KMREFRESHRATE", &s->kmrefreshrate, sizeof(s->kmrefreshrate)) < 0) ||
39 (s->kmpreannounce >= 0 && libsrt_setsockopt(h, fd, SRTO_KMPREANNOUNCE, "SRTO_KMPREANNOUNCE", &s->kmpreannounce, sizeof(s->kmpreannounce)) < 0) ||
40 #endif
41@@ -333,7 +337,11 @@ static int libsrt_set_options_pre(URLContext *h, int fd)
42 (s->lossmaxttl >= 0 && libsrt_setsockopt(h, fd, SRTO_LOSSMAXTTL, "SRTO_LOSSMAXTTL", &s->lossmaxttl, sizeof(s->lossmaxttl)) < 0) ||
43 (s->minversion >= 0 && libsrt_setsockopt(h, fd, SRTO_MINVERSION, "SRTO_MINVERSION", &s->minversion, sizeof(s->minversion)) < 0) ||
44 (s->streamid && libsrt_setsockopt(h, fd, SRTO_STREAMID, "SRTO_STREAMID", s->streamid, strlen(s->streamid)) < 0) ||
45+#if SRT_VERSION_VALUE >= 0x010401
46+ (s->smoother && libsrt_setsockopt(h, fd, SRTO_CONGESTION, "SRTO_CONGESTION", s->smoother, strlen(s->smoother)) < 0) ||
47+#else
48 (s->smoother && libsrt_setsockopt(h, fd, SRTO_SMOOTHER, "SRTO_SMOOTHER", s->smoother, strlen(s->smoother)) < 0) ||
49+#endif
50 (s->messageapi >= 0 && libsrt_setsockopt(h, fd, SRTO_MESSAGEAPI, "SRTO_MESSAGEAPI", &s->messageapi, sizeof(s->messageapi)) < 0) ||
51 (s->payload_size >= 0 && libsrt_setsockopt(h, fd, SRTO_PAYLOADSIZE, "SRTO_PAYLOADSIZE", &s->payload_size, sizeof(s->payload_size)) < 0) ||
52 ((h->flags & AVIO_FLAG_WRITE) && libsrt_setsockopt(h, fd, SRTO_SENDER, "SRTO_SENDER", &yes, sizeof(yes)) < 0)) {
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch
deleted file mode 100644
index 3b503c49c9..0000000000
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch
+++ /dev/null
@@ -1,97 +0,0 @@
1From 24a58d70cbb3997e471366bd5afe54be9007bfb1 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 10 Nov 2020 15:32:14 +0000
4Subject: [PATCH] libavutil: include assembly with full path from source root
5
6Otherwise nasm writes the full host-specific paths into .o
7output, which breaks binary reproducibility.
8
9Upstream-Status: Pending
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11---
12 libavutil/x86/cpuid.asm | 2 +-
13 libavutil/x86/emms.asm | 2 +-
14 libavutil/x86/fixed_dsp.asm | 2 +-
15 libavutil/x86/float_dsp.asm | 2 +-
16 libavutil/x86/lls.asm | 2 +-
17 libavutil/x86/pixelutils.asm | 2 +-
18 6 files changed, 6 insertions(+), 6 deletions(-)
19
20diff --git a/libavutil/x86/cpuid.asm b/libavutil/x86/cpuid.asm
21index c3f7866..766f77f 100644
22--- a/libavutil/x86/cpuid.asm
23+++ b/libavutil/x86/cpuid.asm
24@@ -21,7 +21,7 @@
25 ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
26 ;******************************************************************************
27
28-%include "x86util.asm"
29+%include "libavutil/x86/x86util.asm"
30
31 SECTION .text
32
33diff --git a/libavutil/x86/emms.asm b/libavutil/x86/emms.asm
34index 8611762..df84f22 100644
35--- a/libavutil/x86/emms.asm
36+++ b/libavutil/x86/emms.asm
37@@ -18,7 +18,7 @@
38 ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
39 ;******************************************************************************
40
41-%include "x86util.asm"
42+%include "libavutil/x86/x86util.asm"
43
44 SECTION .text
45
46diff --git a/libavutil/x86/fixed_dsp.asm b/libavutil/x86/fixed_dsp.asm
47index 979dd5c..2f41185 100644
48--- a/libavutil/x86/fixed_dsp.asm
49+++ b/libavutil/x86/fixed_dsp.asm
50@@ -20,7 +20,7 @@
51 ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
52 ;******************************************************************************
53
54-%include "x86util.asm"
55+%include "libavutil/x86/x86util.asm"
56
57 SECTION .text
58
59diff --git a/libavutil/x86/float_dsp.asm b/libavutil/x86/float_dsp.asm
60index 517fd63..b773e61 100644
61--- a/libavutil/x86/float_dsp.asm
62+++ b/libavutil/x86/float_dsp.asm
63@@ -20,7 +20,7 @@
64 ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
65 ;******************************************************************************
66
67-%include "x86util.asm"
68+%include "libavutil/x86/x86util.asm"
69
70 SECTION_RODATA 32
71 pd_reverse: dd 7, 6, 5, 4, 3, 2, 1, 0
72diff --git a/libavutil/x86/lls.asm b/libavutil/x86/lls.asm
73index 317fba6..d2526d1 100644
74--- a/libavutil/x86/lls.asm
75+++ b/libavutil/x86/lls.asm
76@@ -20,7 +20,7 @@
77 ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
78 ;******************************************************************************
79
80-%include "x86util.asm"
81+%include "libavutil/x86/x86util.asm"
82
83 SECTION .text
84
85diff --git a/libavutil/x86/pixelutils.asm b/libavutil/x86/pixelutils.asm
86index 36c57c5..8b45ead 100644
87--- a/libavutil/x86/pixelutils.asm
88+++ b/libavutil/x86/pixelutils.asm
89@@ -21,7 +21,7 @@
90 ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
91 ;******************************************************************************
92
93-%include "x86util.asm"
94+%include "libavutil/x86/x86util.asm"
95
96 SECTION .text
97
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch
deleted file mode 100644
index 6b96bd674f..0000000000
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch
+++ /dev/null
@@ -1,75 +0,0 @@
1From 27a99e2c7d450fef15594671eef4465c8a166bd7 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michael@niedermayer.cc>
3Date: Wed, 28 Oct 2020 20:11:54 +0100
4Subject: [PATCH] avformat/vividas: improve extradata packing checks in
5 track_header()
6
7Fixes: out of array accesses
8Fixes: 26622/clusterfuzz-testcase-minimized-ffmpeg_dem_VIVIDAS_fuzzer-6581200338288640
9
10Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
11Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
12
13Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/27a99e2c7d450fef15594671eef4465c8a166bd7]
14
15CVE: CVE-2020-35964
16
17Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
19---
20 libavformat/vividas.c | 12 ++++++------
21 1 file changed, 6 insertions(+), 6 deletions(-)
22
23diff --git a/libavformat/vividas.c b/libavformat/vividas.c
24index 83d0ed116787..46c66bf9a0ae 100644
25--- a/libavformat/vividas.c
26+++ b/libavformat/vividas.c
27@@ -28,6 +28,7 @@
28 * @sa http://wiki.multimedia.cx/index.php?title=Vividas_VIV
29 */
30
31+#include "libavutil/avassert.h"
32 #include "libavutil/intreadwrite.h"
33 #include "avio_internal.h"
34 #include "avformat.h"
35@@ -379,7 +380,7 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t *
36
37 if (avio_tell(pb) < off) {
38 int num_data;
39- int xd_size = 0;
40+ int xd_size = 1;
41 int data_len[256];
42 int offset = 1;
43 uint8_t *p;
44@@ -393,10 +394,10 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t *
45 return AVERROR_INVALIDDATA;
46 }
47 data_len[j] = len;
48- xd_size += len;
49+ xd_size += len + 1 + len/255;
50 }
51
52- ret = ff_alloc_extradata(st->codecpar, 64 + xd_size + xd_size / 255);
53+ ret = ff_alloc_extradata(st->codecpar, xd_size);
54 if (ret < 0)
55 return ret;
56
57@@ -405,9 +406,7 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t *
58
59 for (j = 0; j < num_data - 1; j++) {
60 unsigned delta = av_xiphlacing(&p[offset], data_len[j]);
61- if (delta > data_len[j]) {
62- return AVERROR_INVALIDDATA;
63- }
64+ av_assert0(delta <= xd_size - offset);
65 offset += delta;
66 }
67
68@@ -418,6 +417,7 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t *
69 av_freep(&st->codecpar->extradata);
70 break;
71 }
72+ av_assert0(data_len[j] <= xd_size - offset);
73 offset += data_len[j];
74 }
75
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch
deleted file mode 100644
index ddab8e9aca..0000000000
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 3e5959b3457f7f1856d997261e6ac672bba49e8b Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michael@niedermayer.cc>
3Date: Sat, 24 Oct 2020 22:21:48 +0200
4Subject: [PATCH] avcodec/exr: Check ymin vs. h
5
6Fixes: out of array access
7Fixes: 26532/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5613925708857344
8Fixes: 27443/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5631239813595136
9
10Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
11Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
12
13Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/3e5959b3457f7f1856d997261e6ac672bba49e8b]
14
15CVE: CVE-2020-35965
16
17Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
19---
20 libavcodec/exr.c | 2 +-
21 1 file changed, 1 insertion(+), 1 deletion(-)
22
23diff --git a/libavcodec/exr.c b/libavcodec/exr.c
24index e907c5c46401..8b701d1cd298 100644
25--- a/libavcodec/exr.c
26+++ b/libavcodec/exr.c
27@@ -1830,7 +1830,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
28 // Zero out the start if ymin is not 0
29 for (i = 0; i < planes; i++) {
30 ptr = picture->data[i];
31- for (y = 0; y < s->ymin; y++) {
32+ for (y = 0; y < FFMIN(s->ymin, s->h); y++) {
33 memset(ptr, 0, out_line_size);
34 ptr += picture->linesize[i];
35 }
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch
deleted file mode 100644
index 69429af8f0..0000000000
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1It will add -mips64r6 and -mips64r2 to cmdline which will
2cause conflicts
3
4in OE we user mips32r2 and mips64r2 for mips arch versions
5so there is no benefit of detecting it automatically by
6poking at tools especially in cross env
7
8Fixes errors like
9
10linking -mnan=2008 module with previous -mnan=legacy modules
11failed to merge target specific data of file
12
13-Khem
14Upstream-Status: Inappropriate [OE-Specific]
15
16Index: ffmpeg-3.1.1/configure
17===================================================================
18--- ffmpeg-3.1.1.orig/configure
19+++ ffmpeg-3.1.1/configure
20@@ -5220,12 +5220,9 @@ elif enabled mips; then
21
22 # Enable minimum ISA based on selected options
23 if enabled mips64; then
24- enabled mips64r6 && check_inline_asm_flags mips64r6 '"dlsa $0, $0, $0, 1"' '-mips64r6'
25 enabled mips64r2 && check_inline_asm_flags mips64r2 '"dext $0, $0, 0, 1"' '-mips64r2'
26 disabled mips64r6 && disabled mips64r2 && check_inline_asm_flags mips64r1 '"daddi $0, $0, 0"' '-mips64'
27 else
28- enabled mips32r6 && check_inline_asm_flags mips32r6 '"aui $0, $0, 0"' '-mips32r6'
29- enabled mips32r5 && check_inline_asm_flags mips32r5 '"eretnc"' '-mips32r5'
30 enabled mips32r2 && check_inline_asm_flags mips32r2 '"ext $0, $0, 0, 1"' '-mips32r2'
31 disabled mips32r6 && disabled mips32r5 && disabled mips32r2 && check_inline_asm_flags mips32r1 '"addi $0, $0, 0"' '-mips32'
32 fi
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb
index bd21552332..aa59755034 100644
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb
+++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb
@@ -5,17 +5,16 @@ DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encod
5HOMEPAGE = "https://www.ffmpeg.org/" 5HOMEPAGE = "https://www.ffmpeg.org/"
6SECTION = "libs" 6SECTION = "libs"
7 7
8LICENSE = "BSD & GPLv2+ & LGPLv2.1+ & MIT" 8LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & ISC & MIT & BSD-2-Clause & BSD-3-Clause & IJG"
9LICENSE_${PN} = "GPLv2+" 9LICENSE:${PN} = "GPL-2.0-or-later"
10LICENSE_libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" 10LICENSE:libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
11LICENSE_libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" 11LICENSE:libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
12LICENSE_libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" 12LICENSE:libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
13LICENSE_libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" 13LICENSE:libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
14LICENSE_libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" 14LICENSE:libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
15LICENSE_libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" 15LICENSE:libpostproc = "GPL-2.0-or-later"
16LICENSE_libpostproc = "GPLv2+" 16LICENSE:libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
17LICENSE_libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" 17LICENSE:libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
18LICENSE_libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
19LICENSE_FLAGS = "commercial" 18LICENSE_FLAGS = "commercial"
20 19
21LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 20LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
@@ -23,19 +22,21 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
23 file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ 22 file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
24 file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" 23 file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
25 24
26SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \ 25SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz"
27 file://mips64_cpu_detection.patch \ 26
28 file://0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch \ 27SRC_URI[sha256sum] = "8684f4b00f94b85461884c3719382f1261f0d9eb3d59640a1f4ac0873616f968"
29 file://0001-libavutil-include-assembly-with-full-path-from-sourc.patch \ 28
30 file://CVE-2020-35964.patch \ 29# https://nvd.nist.gov/vuln/detail/CVE-2023-39018
31 file://CVE-2020-35965.patch \ 30# https://github.com/bramp/ffmpeg-cli-wrapper/issues/291
32 " 31# https://security-tracker.debian.org/tracker/CVE-2023-39018
33SRC_URI[sha256sum] = "ad009240d46e307b4e03a213a0f49c11b650e445b1f8be0dda2a9212b34d2ffb" 32# https://bugzilla.suse.com/show_bug.cgi?id=CVE-2023-39018
33CVE_STATUS[CVE-2023-39018] = "cpe-incorrect: This issue belongs to ffmpeg-cli-wrapper \
34(Java wrapper around the FFmpeg CLI) and not ffmepg itself."
34 35
35# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717 36# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
36ARM_INSTRUCTION_SET_armv4 = "arm" 37ARM_INSTRUCTION_SET:armv4 = "arm"
37ARM_INSTRUCTION_SET_armv5 = "arm" 38ARM_INSTRUCTION_SET:armv5 = "arm"
38ARM_INSTRUCTION_SET_armv6 = "arm" 39ARM_INSTRUCTION_SET:armv6 = "arm"
39 40
40# Should be API compatible with libav (which was a fork of ffmpeg) 41# Should be API compatible with libav (which was a fork of ffmpeg)
41# libpostproc was previously packaged from a separate recipe 42# libpostproc was previously packaged from a separate recipe
@@ -45,9 +46,8 @@ DEPENDS = "nasm-native"
45 46
46inherit autotools pkgconfig 47inherit autotools pkgconfig
47 48
48PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample \ 49PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc \
49 alsa bzlib gpl lzma pic pthreads shared theora x264 zlib \ 50 alsa bzlib lzma theora zlib \
50 ${@bb.utils.contains('AVAILTUNES', 'mips32r2', 'mips32r2', '', d)} \
51 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)}" 51 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)}"
52 52
53# libraries to build in addition to avutil 53# libraries to build in addition to avutil
@@ -58,7 +58,6 @@ PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
58PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample" 58PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
59PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale" 59PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
60PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc" 60PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
61PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
62 61
63# features to support 62# features to support
64PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" 63PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
@@ -68,6 +67,7 @@ PACKAGECONFIG[fdk-aac] = "--enable-libfdk-aac --enable-nonfree,--disable-libfdk-
68PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" 67PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
69PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm" 68PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
70PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack" 69PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
70PACKAGECONFIG[libopus] = "--enable-libopus,--disable-libopus,libopus"
71PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis" 71PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis"
72PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz" 72PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz"
73PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk" 73PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk"
@@ -77,6 +77,7 @@ PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2"
77PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex" 77PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex"
78PACKAGECONFIG[srt] = "--enable-libsrt,--disable-libsrt,srt" 78PACKAGECONFIG[srt] = "--enable-libsrt,--disable-libsrt,srt"
79PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora libogg" 79PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora libogg"
80PACKAGECONFIG[v4l2] = "--enable-libv4l2,--disable-libv4l2,v4l-utils"
80PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" 81PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
81PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" 82PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
82PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" 83PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx"
@@ -86,13 +87,6 @@ PACKAGECONFIG[xcb] = "--enable-libxcb,--disable-libxcb,libxcb"
86PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv" 87PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv"
87PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" 88PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
88 89
89# other configuration options
90PACKAGECONFIG[mips32r2] = ",--disable-mipsdsp --disable-mipsdspr2"
91PACKAGECONFIG[pic] = "--enable-pic"
92PACKAGECONFIG[pthreads] = "--enable-pthreads,--disable-pthreads"
93PACKAGECONFIG[shared] = "--enable-shared"
94PACKAGECONFIG[strip] = ",--disable-stripping"
95
96# Check codecs that require --enable-nonfree 90# Check codecs that require --enable-nonfree
97USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}" 91USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}"
98 92
@@ -103,41 +97,63 @@ def cpu(d):
103 return 'generic' 97 return 'generic'
104 98
105EXTRA_OECONF = " \ 99EXTRA_OECONF = " \
100 --disable-stripping \
101 --enable-pic \
102 --enable-shared \
103 --enable-pthreads \
106 ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \ 104 ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \
107 \ 105 \
108 --cross-prefix=${TARGET_PREFIX} \ 106 --cross-prefix=${TARGET_PREFIX} \
109 \ 107 \
110 --ld="${CCLD}" \ 108 --ld='${CCLD}' \
111 --cc="${CC}" \ 109 --cc='${CC}' \
112 --cxx="${CXX}" \ 110 --cxx='${CXX}' \
113 --arch=${TARGET_ARCH} \ 111 --arch=${TARGET_ARCH} \
114 --target-os="linux" \ 112 --target-os='linux' \
115 --enable-cross-compile \ 113 --enable-cross-compile \
116 --extra-cflags="${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ 114 --extra-cflags='${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}' \
117 --extra-ldflags="${LDFLAGS}" \ 115 --extra-ldflags='${LDFLAGS}' \
118 --sysroot="${STAGING_DIR_TARGET}" \ 116 --sysroot='${STAGING_DIR_TARGET}' \
119 ${EXTRA_FFCONF} \ 117 ${EXTRA_FFCONF} \
120 --libdir=${libdir} \ 118 --libdir=${libdir} \
121 --shlibdir=${libdir} \ 119 --shlibdir=${libdir} \
122 --datadir=${datadir}/ffmpeg \ 120 --datadir=${datadir}/ffmpeg \
121 ${@bb.utils.contains('AVAILTUNES', 'mips32r2', '', '--disable-mipsdsp --disable-mipsdspr2', d)} \
123 --cpu=${@cpu(d)} \ 122 --cpu=${@cpu(d)} \
124 --pkg-config=pkg-config \ 123 --pkg-config=pkg-config \
125" 124"
126 125
127EXTRA_OECONF_append_linux-gnux32 = " --disable-asm" 126EXTRA_OECONF:append:linux-gnux32 = " --disable-asm"
127
128EXTRA_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)}"
130EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"
131EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r6', '--disable-mips64r2 --disable-mips32r2', '', d)}"
132EXTRA_OECONF:append:mips = " --extra-libs=-latomic --disable-mips32r5 --disable-mipsdsp --disable-mipsdspr2 \
133 --disable-loongson2 --disable-loongson3 --disable-mmi --disable-msa"
134EXTRA_OECONF:append:riscv32 = " --extra-libs=-latomic --disable-rvv --disable-asm"
135EXTRA_OECONF:append:armv5 = " --extra-libs=-latomic"
136EXTRA_OECONF:append:powerpc = " --extra-libs=-latomic"
137EXTRA_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)}"
139
128# gold crashes on x86, another solution is to --disable-asm but thats more hacky 140# gold crashes on x86, another solution is to --disable-asm but thats more hacky
129# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 141# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684
130 142
131LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" 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)}"
132 145
133EXTRA_OEMAKE = "V=1" 146EXTRA_OEMAKE = "V=1"
134 147
135do_configure() { 148do_configure() {
149 export TMPDIR="${B}/tmp"
150 mkdir -p ${B}/tmp
136 ${S}/configure ${EXTRA_OECONF} 151 ${S}/configure ${EXTRA_OECONF}
152 sed -i -e "s,^X86ASMFLAGS=.*,& --debug-prefix-map=${S}=${TARGET_DBGSRC_DIR} --debug-prefix-map=${B}=${TARGET_DBGSRC_DIR},g" ${B}/ffbuild/config.mak
137} 153}
138 154
139# patch out build host paths for reproducibility 155# patch out build host paths for reproducibility
140do_compile_prepend_class-target() { 156do_compile:prepend:class-target() {
141 sed -i -e "s,${WORKDIR},,g" ${B}/config.h 157 sed -i -e "s,${WORKDIR},,g" ${B}/config.h
142} 158}
143 159
@@ -145,29 +161,26 @@ PACKAGES =+ "libavcodec \
145 libavdevice \ 161 libavdevice \
146 libavfilter \ 162 libavfilter \
147 libavformat \ 163 libavformat \
148 libavresample \
149 libavutil \ 164 libavutil \
150 libpostproc \ 165 libpostproc \
151 libswresample \ 166 libswresample \
152 libswscale" 167 libswscale"
153 168
154FILES_libavcodec = "${libdir}/libavcodec${SOLIBS}" 169FILES:libavcodec = "${libdir}/libavcodec${SOLIBS}"
155FILES_libavdevice = "${libdir}/libavdevice${SOLIBS}" 170FILES:libavdevice = "${libdir}/libavdevice${SOLIBS}"
156FILES_libavfilter = "${libdir}/libavfilter${SOLIBS}" 171FILES:libavfilter = "${libdir}/libavfilter${SOLIBS}"
157FILES_libavformat = "${libdir}/libavformat${SOLIBS}" 172FILES:libavformat = "${libdir}/libavformat${SOLIBS}"
158FILES_libavresample = "${libdir}/libavresample${SOLIBS}" 173FILES:libavutil = "${libdir}/libavutil${SOLIBS}"
159FILES_libavutil = "${libdir}/libavutil${SOLIBS}" 174FILES:libpostproc = "${libdir}/libpostproc${SOLIBS}"
160FILES_libpostproc = "${libdir}/libpostproc${SOLIBS}" 175FILES:libswresample = "${libdir}/libswresample${SOLIBS}"
161FILES_libswresample = "${libdir}/libswresample${SOLIBS}" 176FILES:libswscale = "${libdir}/libswscale${SOLIBS}"
162FILES_libswscale = "${libdir}/libswscale${SOLIBS}"
163 177
164# ffmpeg disables PIC on some platforms (e.g. x86-32) 178# ffmpeg disables PIC on some platforms (e.g. x86-32)
165INSANE_SKIP_${MLPREFIX}libavcodec = "textrel" 179INSANE_SKIP:${MLPREFIX}libavcodec = "textrel"
166INSANE_SKIP_${MLPREFIX}libavdevice = "textrel" 180INSANE_SKIP:${MLPREFIX}libavdevice = "textrel"
167INSANE_SKIP_${MLPREFIX}libavfilter = "textrel" 181INSANE_SKIP:${MLPREFIX}libavfilter = "textrel"
168INSANE_SKIP_${MLPREFIX}libavformat = "textrel" 182INSANE_SKIP:${MLPREFIX}libavformat = "textrel"
169INSANE_SKIP_${MLPREFIX}libavutil = "textrel" 183INSANE_SKIP:${MLPREFIX}libavutil = "textrel"
170INSANE_SKIP_${MLPREFIX}libavresample = "textrel" 184INSANE_SKIP:${MLPREFIX}libswscale = "textrel"
171INSANE_SKIP_${MLPREFIX}libswscale = "textrel" 185INSANE_SKIP:${MLPREFIX}libswresample = "textrel"
172INSANE_SKIP_${MLPREFIX}libswresample = "textrel" 186INSANE_SKIP:${MLPREFIX}libpostproc = "textrel"
173INSANE_SKIP_${MLPREFIX}libpostproc = "textrel"
diff --git a/meta/recipes-multimedia/flac/flac_1.3.3.bb b/meta/recipes-multimedia/flac/flac_1.3.3.bb
deleted file mode 100644
index cb6692aedf..0000000000
--- a/meta/recipes-multimedia/flac/flac_1.3.3.bb
+++ /dev/null
@@ -1,46 +0,0 @@
1SUMMARY = "Free Lossless Audio Codec"
2DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, a lossless audio compression format."
3HOMEPAGE = "https://xiph.org/flac/"
4BUGTRACKER = "http://sourceforge.net/p/flac/bugs/"
5SECTION = "libs"
6LICENSE = "GFDL-1.2 & GPLv2+ & LGPLv2.1+ & BSD"
7LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \
8 file://src/Makefile.am;beginline=1;endline=17;md5=09501c864f89dfc7ead65553129817ca \
9 file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://src/flac/main.c;beginline=1;endline=18;md5=09777e2934947a36f13568d0beb81199 \
11 file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \
12 file://src/plugin_common/all.h;beginline=1;endline=18;md5=f56cb4ba9a3bc9ec6102e8df03215271 \
13 file://COPYING.Xiph;md5=b59c1b6d7fc0fb7965f821a3d36505e3 \
14 file://include/FLAC/all.h;beginline=65;endline=70;md5=64474f2b22e9e77b28d8b8b25c983a48"
15DEPENDS = "libogg"
16
17SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz \
18"
19
20SRC_URI[md5sum] = "26703ed2858c1fc9ffc05136d13daa69"
21SRC_URI[sha256sum] = "213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748"
22
23CVE_PRODUCT = "libflac flac"
24
25inherit autotools gettext
26
27EXTRA_OECONF = "--disable-oggtest \
28 --with-ogg-libraries=${STAGING_LIBDIR} \
29 --with-ogg-includes=${STAGING_INCDIR} \
30 --disable-xmms-plugin \
31 --without-libiconv-prefix \
32 ac_cv_prog_NASM="" \
33 "
34
35EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "altivec", " --enable-altivec", " --disable-altivec", d)}"
36EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "vsx", " --enable-vsx", " --disable-vsx", d)}"
37EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "core2", " --enable-sse", "", d)}"
38EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "corei7", " --enable-sse", "", d)}"
39
40PACKAGES += "libflac libflac++ liboggflac liboggflac++"
41FILES_${PN} = "${bindir}/*"
42FILES_libflac = "${libdir}/libFLAC.so.*"
43FILES_libflac++ = "${libdir}/libFLAC++.so.*"
44FILES_liboggflac = "${libdir}/libOggFLAC.so.*"
45FILES_liboggflac++ = "${libdir}/libOggFLAC++.so.*"
46
diff --git a/meta/recipes-multimedia/flac/flac_1.4.3.bb b/meta/recipes-multimedia/flac/flac_1.4.3.bb
new file mode 100644
index 0000000000..d4e463cda5
--- /dev/null
+++ b/meta/recipes-multimedia/flac/flac_1.4.3.bb
@@ -0,0 +1,36 @@
1SUMMARY = "Free Lossless Audio Codec"
2DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, a lossless audio compression format."
3HOMEPAGE = "https://xiph.org/flac/"
4BUGTRACKER = "https://github.com/xiph/flac/issues"
5SECTION = "libs"
6LICENSE = "GFDL-1.2 & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \
8 file://src/Makefile.am;beginline=1;endline=17;md5=b1dab2704be7f01bfbd9b7f6d5f000a9 \
9 file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://src/flac/main.c;beginline=1;endline=18;md5=23099119c034d894bd1bf7ef5bd22101 \
11 file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \
12 file://COPYING.Xiph;md5=0c90e41ab2fa7e69ca9391330d870221 \
13 file://include/FLAC/all.h;beginline=65;endline=70;md5=39aaf5e03c7364363884c8b8ddda8eea"
14
15SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz"
16SRC_URI[sha256sum] = "6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70"
17
18CVE_PRODUCT = "libflac flac"
19
20inherit autotools gettext
21
22EXTRA_OECONF = "--disable-oggtest \
23 --without-libiconv-prefix \
24 ac_cv_prog_NASM="" \
25 "
26
27PACKAGECONFIG ??= " \
28 ogg \
29"
30PACKAGECONFIG[avx] = "--enable-avx,--disable-avx"
31PACKAGECONFIG[ogg] = "--enable-ogg --with-ogg-libraries=${STAGING_LIBDIR} --with-ogg-includes=${STAGING_INCDIR},--disable-ogg,libogg"
32
33PACKAGES += "libflac libflac++"
34FILES:${PN} = "${bindir}/*"
35FILES:libflac = "${libdir}/libFLAC.so.*"
36FILES:libflac++ = "${libdir}/libFLAC++.so.*"
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 c0e4581358..21e30d6d46 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 73b1002eda17451db1f58431b42c25203f1d3097 Mon Sep 17 00:00:00 2001 1From 0c73b8131efba63c5cd37ea8c7551434c3b57304 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
@@ -11,6 +11,7 @@ typcasted to struct sockaddr_in* type inside the function before use
11Upstream-Status: Pending 11Upstream-Status: Pending
12 12
13Signed-off-by: Khem Raj <raj.khem@gmail.com> 13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14
14--- 15---
15 validate/plugins/fault_injection/socket_interposer.c | 7 ++++++- 16 validate/plugins/fault_injection/socket_interposer.c | 7 ++++++-
16 1 file changed, 6 insertions(+), 1 deletion(-) 17 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-multimedia/gstreamer/gst-devtools_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb
index bad9921757..2be406192f 100644
--- a/meta/recipes-multimedia/gstreamer/gst-devtools_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "A Tool to test GStreamer components"
3HOMEPAGE = "https://gstreamer.freedesktop.org/documentation/gst-devtools/index.html" 3HOMEPAGE = "https://gstreamer.freedesktop.org/documentation/gst-devtools/index.html"
4SECTION = "multimedia" 4SECTION = "multimedia"
5 5
6LICENSE = "LGPLv2.1" 6LICENSE = "LGPL-2.1-or-later"
7LIC_FILES_CHKSUM = "file://validate/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" 7LIC_FILES_CHKSUM = "file://validate/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
8 8
9#S = "${WORKDIR}/gst-devtools-${PV}" 9#S = "${WORKDIR}/gst-devtools-${PV}"
@@ -12,12 +12,12 @@ 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] = "3025fee3607caf5069154c099533785675916e044ee92c936bbeacdda3750f26" 15SRC_URI[sha256sum] = "07766425ecb5bf857ab5ad3962321c55cd89f9386b720843f9df71c0a455eb9b"
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"
19 19
20FILES_${PN} += "${datadir}/gstreamer-1.0/* ${libdir}/gst-validate-launcher/* ${libdir}/gstreamer-1.0/*" 20FILES:${PN} += "${datadir}/gstreamer-1.0/* ${libdir}/gst-validate-launcher/* ${libdir}/gstreamer-1.0/*"
21 21
22inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection 22inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection
23 23
@@ -30,6 +30,9 @@ def gettext_oemeson(d):
30 return '-Dnls=disabled' 30 return '-Dnls=disabled'
31 return '-Dnls=enabled' 31 return '-Dnls=enabled'
32 32
33# Build GstValidateVideo
34PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
35
33EXTRA_OEMESON += " \ 36EXTRA_OEMESON += " \
34 -Ddoc=disabled \ 37 -Ddoc=disabled \
35 -Ddebug_viewer=disabled \ 38 -Ddebug_viewer=disabled \
@@ -38,7 +41,7 @@ EXTRA_OEMESON += " \
38 ${@gettext_oemeson(d)} \ 41 ${@gettext_oemeson(d)} \
39" 42"
40 43
41do_install_append () { 44do_install:append () {
42 for fn in ${bindir}/gst-validate-launcher \ 45 for fn in ${bindir}/gst-validate-launcher \
43 ${libdir}/gst-validate-launcher/python/launcher/config.py; do 46 ${libdir}/gst-validate-launcher/python/launcher/config.py; do
44 sed -i -e 's,${B},/usr/src/debug/${PN},g' -e 's,${S},/usr/src/debug/${PN},g' ${D}$fn 47 sed -i -e 's,${B},/usr/src/debug/${PN},g' -e 's,${S},/usr/src/debug/${PN},g' ${D}$fn
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop b/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop
index 7ddd456a1e..d165e5d910 100644
--- a/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop
+++ b/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop
@@ -1,7 +1,7 @@
1[Desktop Entry] 1[Desktop Entry]
2Name=Media Player 2Name=Media Player
3Comment=Basic media player 3Comment=Basic media player
4Icon=multimedia-player 4Icon=video-player
5TryExec=gtk-play 5TryExec=gtk-play
6Exec=gtk-play 6Exec=gtk-play
7StartupNotify=true 7StartupNotify=true
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb
index b49201fb0e..02282ac5d9 100644
--- a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb
@@ -2,7 +2,7 @@ SUMMARY = "GStreamer examples (including gtk-play, gst-play)"
2DESCRIPTION = "GStreamer example applications" 2DESCRIPTION = "GStreamer example applications"
3HOMEPAGE = "https://gitlab.freedesktop.org/gstreamer/gst-examples" 3HOMEPAGE = "https://gitlab.freedesktop.org/gstreamer/gst-examples"
4BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues" 4BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues"
5LICENSE = "LGPL-2.0+" 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 libsoup-2.4 json-glib glib-2.0-native"
@@ -12,7 +12,7 @@ SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gst-examples.git;protocol=http
12 file://gst-player.desktop \ 12 file://gst-player.desktop \
13 " 13 "
14 14
15SRCREV = "06599904baa5d0e47b5cb9501372156567760f8e" 15SRCREV = "70e4fcf4fc8ae19641aa990de5f37d758cdfcea4"
16 16
17S = "${WORKDIR}/git" 17S = "${WORKDIR}/git"
18 18
@@ -22,14 +22,14 @@ UPSTREAM_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 ${WORKDIR}/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"
30RRECOMMENDS_${PN} = "gstreamer1.0-plugins-base-meta \ 30RRECOMMENDS:${PN} = "gstreamer1.0-plugins-base-meta \
31 gstreamer1.0-plugins-good-meta \ 31 gstreamer1.0-plugins-good-meta \
32 gstreamer1.0-plugins-bad-meta \ 32 gstreamer1.0-plugins-bad-meta \
33 ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-libav", "", d)} \ 33 ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "gstreamer1.0-libav", "", d)} \
34 ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}" 34 ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}"
35RPROVIDES_${PN} += "gst-player gst-player-bin" 35RPROVIDES:${PN} += "gst-player gst-player-bin"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb
index baf87fd871..f3287efa96 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb
@@ -6,13 +6,13 @@ SECTION = "multimedia"
6 6
7# ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency 7# ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency
8LICENSE_FLAGS = "commercial" 8LICENSE_FLAGS = "commercial"
9LICENSE = "LGPLv2+" 9LICENSE = "LGPL-2.1-or-later"
10LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ 10LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
11 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ 11 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
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] = "ad20546bcd78ac1e7cf194666d73c4f33efeb62647d2b6af22993b540699e91c" 15SRC_URI[sha256sum] = "6b13dcc9332ef27a7c1e7005c0196883874f91622f8aa6e52f218b05b15d2bf5"
16 16
17S = "${WORKDIR}/gst-libav-${PV}" 17S = "${WORKDIR}/gst-libav-${PV}"
18 18
@@ -20,5 +20,9 @@ DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg"
20 20
21inherit meson pkgconfig upstream-version-is-even 21inherit meson pkgconfig upstream-version-is-even
22 22
23FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" 23EXTRA_OEMESON += " \
24FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" 24 -Dtests=disabled \
25"
26
27FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
28FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
index 016e176707..6cc11e1928 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
@@ -18,13 +18,13 @@ PACKAGES = "\
18 gstreamer1.0-meta-debug \ 18 gstreamer1.0-meta-debug \
19 gstreamer1.0-meta-video" 19 gstreamer1.0-meta-video"
20 20
21ALLOW_EMPTY_gstreamer1.0-meta-base = "1" 21ALLOW_EMPTY:gstreamer1.0-meta-base = "1"
22ALLOW_EMPTY_gstreamer1.0-meta-x11-base = "1" 22ALLOW_EMPTY:gstreamer1.0-meta-x11-base = "1"
23ALLOW_EMPTY_gstreamer1.0-meta-audio = "1" 23ALLOW_EMPTY:gstreamer1.0-meta-audio = "1"
24ALLOW_EMPTY_gstreamer1.0-meta-debug = "1" 24ALLOW_EMPTY:gstreamer1.0-meta-debug = "1"
25ALLOW_EMPTY_gstreamer1.0-meta-video = "1" 25ALLOW_EMPTY:gstreamer1.0-meta-video = "1"
26 26
27RDEPENDS_gstreamer1.0-meta-base = "\ 27RDEPENDS:gstreamer1.0-meta-base = "\
28 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gstreamer1.0-meta-x11-base', '', d)} \ 28 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gstreamer1.0-meta-x11-base', '', d)} \
29 gstreamer1.0 \ 29 gstreamer1.0 \
30 gstreamer1.0-plugins-base-playback \ 30 gstreamer1.0-plugins-base-playback \
@@ -34,16 +34,15 @@ RDEPENDS_gstreamer1.0-meta-base = "\
34 gstreamer1.0-plugins-base-audioconvert \ 34 gstreamer1.0-plugins-base-audioconvert \
35 gstreamer1.0-plugins-base-audioresample \ 35 gstreamer1.0-plugins-base-audioresample \
36 gstreamer1.0-plugins-base-typefindfunctions \ 36 gstreamer1.0-plugins-base-typefindfunctions \
37 gstreamer1.0-plugins-base-videoscale \ 37 gstreamer1.0-plugins-base-videoconvertscale \
38 gstreamer1.0-plugins-base-videoconvert \
39 gstreamer1.0-plugins-good-autodetect \ 38 gstreamer1.0-plugins-good-autodetect \
40 gstreamer1.0-plugins-good-soup" 39 gstreamer1.0-plugins-good-soup"
41 40
42RRECOMMENDS_gstreamer1.0-meta-x11-base = "\ 41RRECOMMENDS:gstreamer1.0-meta-x11-base = "\
43 gstreamer1.0-plugins-base-ximagesink \ 42 gstreamer1.0-plugins-base-ximagesink \
44 gstreamer1.0-plugins-base-xvimagesink" 43 gstreamer1.0-plugins-base-xvimagesink"
45 44
46RDEPENDS_gstreamer1.0-meta-audio = "\ 45RDEPENDS:gstreamer1.0-meta-audio = "\
47 gstreamer1.0-meta-base \ 46 gstreamer1.0-meta-base \
48 gstreamer1.0-plugins-base-vorbis \ 47 gstreamer1.0-plugins-base-vorbis \
49 gstreamer1.0-plugins-base-ogg \ 48 gstreamer1.0-plugins-base-ogg \
@@ -51,18 +50,18 @@ RDEPENDS_gstreamer1.0-meta-audio = "\
51 gstreamer1.0-plugins-good-flac \ 50 gstreamer1.0-plugins-good-flac \
52 ${COMMERCIAL_AUDIO_PLUGINS}" 51 ${COMMERCIAL_AUDIO_PLUGINS}"
53 52
54RDEPENDS_gstreamer1.0-meta-debug = "\ 53RDEPENDS:gstreamer1.0-meta-debug = "\
55 gstreamer1.0-meta-base \ 54 gstreamer1.0-meta-base \
56 gstreamer1.0-plugins-good-debug \ 55 gstreamer1.0-plugins-good-debug \
57 gstreamer1.0-plugins-base-audiotestsrc \ 56 gstreamer1.0-plugins-base-audiotestsrc \
58 gstreamer1.0-plugins-base-videotestsrc" 57 gstreamer1.0-plugins-base-videotestsrc"
59 58
60RDEPENDS_gstreamer1.0-meta-video = "\ 59RDEPENDS:gstreamer1.0-meta-video = "\
61 gstreamer1.0-meta-base \ 60 gstreamer1.0-meta-base \
62 gstreamer1.0-plugins-good-avi \ 61 gstreamer1.0-plugins-good-avi \
63 gstreamer1.0-plugins-good-matroska \ 62 gstreamer1.0-plugins-good-matroska \
64 gstreamer1.0-plugins-base-theora \ 63 gstreamer1.0-plugins-base-theora \
65 ${COMMERCIAL_VIDEO_PLUGINS}" 64 ${COMMERCIAL_VIDEO_PLUGINS}"
66 65
67RRECOMMENDS_gstreamer1.0-meta-video = "\ 66RRECOMMENDS:gstreamer1.0-meta-video = "\
68 gstreamer1.0-meta-audio" 67 gstreamer1.0-meta-audio"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb
index d55f45ac6a..97348fb398 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb
@@ -3,14 +3,14 @@ DESCRIPTION = "Wraps available OpenMAX IL components and makes them available as
3HOMEPAGE = "http://gstreamer.freedesktop.org/" 3HOMEPAGE = "http://gstreamer.freedesktop.org/"
4SECTION = "multimedia" 4SECTION = "multimedia"
5 5
6LICENSE = "LGPLv2.1" 6LICENSE = "LGPL-2.1-or-later"
7LICENSE_FLAGS = "commercial" 7LICENSE_FLAGS = "commercial"
8LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ 8LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
9 file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f" 9 file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
10 10
11SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz" 11SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
12 12
13SRC_URI[sha256sum] = "ed0f26504e9a60e15055134410f156e40952336410f2a59bdbbda45e61e8b93f" 13SRC_URI[sha256sum] = "18dfdf5f6b773d67e62a315c6cf6247da320b83603a5819493f53c69ed2eeef6"
14 14
15S = "${WORKDIR}/gst-omx-${PV}" 15S = "${WORKDIR}/gst-omx-${PV}"
16 16
@@ -40,8 +40,8 @@ set_omx_core_name() {
40} 40}
41do_install[postfuncs] += " set_omx_core_name " 41do_install[postfuncs] += " set_omx_core_name "
42 42
43FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" 43FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
44FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" 44FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
45 45
46VIRTUAL-RUNTIME_libomxil ?= "libomxil" 46VIRTUAL-RUNTIME_libomxil ?= "libomxil"
47RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_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 13a673cd50..a57fcd7d21 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,11 +1,12 @@
1From f08ab3ac2ce43ac91d3bf65b26f26436690f499b Mon Sep 17 00:00:00 2001 1From 8be0c6ac60c96e87d8aa443be9c431844dc3d92a 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 1/4] fix maybe-uninitialized warnings when compiling with -Os 4Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os
5 5
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
9--- 10---
10 gst-libs/gst/codecparsers/gstvc1parser.c | 2 +- 11 gst-libs/gst/codecparsers/gstvc1parser.c | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-) 12 1 file changed, 1 insertion(+), 1 deletion(-)
@@ -23,6 +24,3 @@ index 2c60ced..e8226d8 100644
23 guint8 structA[8] = { 0, }; 24 guint8 structA[8] = { 0, };
24 guint8 structB[12] = { 0, }; 25 guint8 structB[12] = { 0, };
25 GstBitReader br; 26 GstBitReader br;
26--
272.28.0
28
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 ead6897f67..6509a293b7 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,22 +1,23 @@
1From 3b05e91720c10fcf6e0e408595b7217f6fa145c2 Mon Sep 17 00:00:00 2001 1From 426ee79adeecc24605426030a486d7c5a755048c 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 2/4] avoid including <sys/poll.h> directly 4Subject: [PATCH] avoid including <sys/poll.h> directly
5 5
6musl libc generates warnings if <sys/poll.h> is included directly. 6musl libc generates warnings if <sys/poll.h> is included directly.
7 7
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
11--- 12---
12 sys/dvb/gstdvbsrc.c | 2 +- 13 sys/dvb/gstdvbsrc.c | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-) 14 1 file changed, 1 insertion(+), 1 deletion(-)
14 15
15diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c 16diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c
16index ca6b92a..b2772db 100644 17index b8e5b1a..5bca6e5 100644
17--- a/sys/dvb/gstdvbsrc.c 18--- a/sys/dvb/gstdvbsrc.c
18+++ b/sys/dvb/gstdvbsrc.c 19+++ b/sys/dvb/gstdvbsrc.c
19@@ -97,7 +97,7 @@ 20@@ -98,7 +98,7 @@
20 #include <gst/gst.h> 21 #include <gst/gst.h>
21 #include <gst/glib-compat-private.h> 22 #include <gst/glib-compat-private.h>
22 #include <sys/ioctl.h> 23 #include <sys/ioctl.h>
@@ -25,6 +26,3 @@ index ca6b92a..b2772db 100644
25 #include <fcntl.h> 26 #include <fcntl.h>
26 #include <errno.h> 27 #include <errno.h>
27 #include <stdio.h> 28 #include <stdio.h>
28--
292.28.0
30
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch
deleted file mode 100644
index 88fbc40dcd..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch
+++ /dev/null
@@ -1,88 +0,0 @@
1From 5ed27de9f662fe063b8b3d5d4335aa64cd4718c9 Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Tue, 9 Feb 2016 14:00:00 -0800
4Subject: [PATCH 3/4] ensure valid sentinals for gst_structure_get() etc
5
6For GStreamer functions declared with G_GNUC_NULL_TERMINATED,
7ie __attribute__((__sentinel__)), gcc will generate a warning if the
8last parameter passed to the function is not NULL (where a valid NULL
9in this context is defined as zero with any pointer type).
10
11The C callers to such functions within gst-plugins-bad use the C NULL
12definition (ie ((void*)0)), which is a valid sentinel.
13
14However the C++ NULL definition (ie 0L), is not a valid sentinel
15without an explicit cast to a pointer type.
16
17Upstream-Status: Pending
18
19Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
20---
21 sys/decklink/gstdecklink.cpp | 10 +++++-----
22 sys/decklink/gstdecklinkaudiosrc.cpp | 2 +-
23 sys/decklink/gstdecklinkvideosink.cpp | 2 +-
24 3 files changed, 7 insertions(+), 7 deletions(-)
25
26diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp
27index 4dac7e1..43762ce 100644
28--- a/sys/decklink/gstdecklink.cpp
29+++ b/sys/decklink/gstdecklink.cpp
30@@ -674,7 +674,7 @@ gst_decklink_mode_get_generic_structure (GstDecklinkModeEnum e)
31 "pixel-aspect-ratio", GST_TYPE_FRACTION, mode->par_n, mode->par_d,
32 "interlace-mode", G_TYPE_STRING,
33 mode->interlaced ? "interleaved" : "progressive",
34- "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, NULL);
35+ "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, (void*)NULL);
36
37 return s;
38 }
39@@ -699,16 +699,16 @@ gst_decklink_mode_get_structure (GstDecklinkModeEnum e, BMDPixelFormat f,
40 case bmdFormat8BitYUV: /* '2vuy' */
41 gst_structure_set (s, "format", G_TYPE_STRING, "UYVY",
42 "colorimetry", G_TYPE_STRING, mode->colorimetry,
43- "chroma-site", G_TYPE_STRING, "mpeg2", NULL);
44+ "chroma-site", G_TYPE_STRING, "mpeg2", (void*)NULL);
45 break;
46 case bmdFormat10BitYUV: /* 'v210' */
47- gst_structure_set (s, "format", G_TYPE_STRING, "v210", NULL);
48+ gst_structure_set (s, "format", G_TYPE_STRING, "v210", (void*)NULL);
49 break;
50 case bmdFormat8BitARGB: /* 'ARGB' */
51- gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", NULL);
52+ gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", (void*)NULL);
53 break;
54 case bmdFormat8BitBGRA: /* 'BGRA' */
55- gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", NULL);
56+ gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", (void*)NULL);
57 break;
58 case bmdFormat10BitRGB: /* 'r210' Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 */
59 case bmdFormat12BitRGB: /* 'R12B' Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component */
60diff --git a/sys/decklink/gstdecklinkaudiosrc.cpp b/sys/decklink/gstdecklinkaudiosrc.cpp
61index 2fef934..c47229a 100644
62--- a/sys/decklink/gstdecklinkaudiosrc.cpp
63+++ b/sys/decklink/gstdecklinkaudiosrc.cpp
64@@ -379,7 +379,7 @@ gst_decklink_audio_src_start (GstDecklinkAudioSrc * self)
65 g_mutex_unlock (&self->input->lock);
66
67 if (videosrc) {
68- g_object_get (videosrc, "connection", &vconn, NULL);
69+ g_object_get (videosrc, "connection", &vconn, (void *) NULL);
70 gst_object_unref (videosrc);
71
72 switch (vconn) {
73diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp
74index e3a6775..f1a5aae 100644
75--- a/sys/decklink/gstdecklinkvideosink.cpp
76+++ b/sys/decklink/gstdecklinkvideosink.cpp
77@@ -286,7 +286,7 @@ reset_framerate (GstCapsFeatures * features, GstStructure * structure,
78 gpointer user_data)
79 {
80 gst_structure_set (structure, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
81- G_MAXINT, 1, NULL);
82+ G_MAXINT, 1, (void *) NULL);
83
84 return TRUE;
85 }
86--
872.28.0
88
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 b816709066..50a3143eca 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,7 +1,7 @@
1From f19ff66640f2f472c4e9d9055253032d34e125c6 Mon Sep 17 00:00:00 2001 1From e6eb7536fcfc2c75f7831f67b1f16f3f36ef2545 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 4/4] opencv: resolve missing opencv data dir in yocto build 4Subject: [PATCH] opencv: resolve missing opencv data dir in yocto build
5 5
6When Yocto build is performed, opencv searches for data dir using simple 6When Yocto build is performed, opencv searches for data dir using simple
7'test' command, this fails because pkg-config provides an absolute 7'test' command, this fails because pkg-config provides an absolute
@@ -11,39 +11,23 @@ in order for the 'test' utility to pick up the absolute path.
11Upstream-Status: Inappropriate [OE-specific] 11Upstream-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>
15
14--- 16---
15 ext/opencv/meson.build | 7 ++++--- 17 ext/opencv/meson.build | 3 +++
16 1 file changed, 4 insertions(+), 3 deletions(-) 18 1 file changed, 3 insertions(+)
17 19
18diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build 20diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build
19index 0b0b3fc..0ed3344 100644 21index 37e2015..326f737 100644
20--- a/ext/opencv/meson.build 22--- a/ext/opencv/meson.build
21+++ b/ext/opencv/meson.build 23+++ b/ext/opencv/meson.build
22@@ -78,20 +78,21 @@ else 24@@ -87,6 +87,9 @@ if opencv_found
23 endif 25 opencv_prefix = opencv_dep.get_variable('prefix')
24
25 if opencv_found
26+ pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip()
27 opencv_prefix = opencv_dep.get_pkgconfig_variable('prefix')
28 gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"'] 26 gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"']
29 27
28+ 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
30+
30 # Check the data dir used by opencv for its xml data files 31 # Check the data dir used by opencv for its xml data files
31 # Use prefix from pkg-config to be compatible with cross-compilation 32 # Use prefix from pkg-config to be compatible with cross-compilation
32- r = run_command('test', '-d', opencv_prefix + '/share/opencv') 33 r = run_command('test', '-d', opencv_prefix + '/share/opencv', check: false)
33+ r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv')
34 if r.returncode() == 0
35 gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv"'
36 else
37- r = run_command('test', '-d', opencv_prefix + '/share/OpenCV')
38+ r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/OpenCV')
39 if r.returncode() == 0
40 gstopencv_cargs += '-DOPENCV_PATH_NAME="OpenCV"'
41 else
42- r = run_command('test', '-d', opencv_prefix + '/share/opencv4')
43+ r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv4')
44 if r.returncode() == 0
45 gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv4"'
46 else
47--
482.28.0
49
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch
deleted file mode 100644
index cb3bb7d361..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 1f00d5026118ebd48e4ccf83d32d67155c4e7f60 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Wed, 30 Dec 2020 16:37:47 +0800
4Subject: [PATCH] msdk: fix includedir path
5
6In cross compilation, need to prepend PKG_CONFIG_SYSROOT_DIR to the dir path.
7
8Upstream-Status: Inappropriate [OE-specific]
9
10Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
11---
12 sys/msdk/meson.build | 2 ++
13 1 file changed, 2 insertions(+)
14
15diff --git a/sys/msdk/meson.build b/sys/msdk/meson.build
16index 6346c9451..068f38548 100644
17--- a/sys/msdk/meson.build
18+++ b/sys/msdk/meson.build
19@@ -40,7 +40,9 @@ endif
20
21 mfx_dep = dependency('libmfx', required: false)
22 if mfx_dep.found()
23+ pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip()
24 mfx_incdir = mfx_dep.get_pkgconfig_variable('includedir')
25+ mfx_incdir = pkgconf_sysroot + mfx_incdir
26 mfx_inc = []
27 else
28 # Old versions of MediaSDK don't provide a pkg-config file
29--
302.17.1
31
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb
index b1e3664cbf..523ee7a5ae 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb
@@ -1,21 +1,20 @@
1require gstreamer1.0-plugins-common.inc 1require gstreamer1.0-plugins-common.inc
2require gstreamer1.0-plugins-license.inc
2 3
3DESCRIPTION = "'Bad' GStreamer plugins and helper libraries " 4SUMMARY = "'Bad' GStreamer plugins and helper libraries "
4HOMEPAGE = "https://gstreamer.freedesktop.org/" 5HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues" 6BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues"
6 7
7SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ 8SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
8 file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \ 9 file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \
9 file://0002-avoid-including-sys-poll.h-directly.patch \ 10 file://0002-avoid-including-sys-poll.h-directly.patch \
10 file://0003-ensure-valid-sentinals-for-gst_structure_get-etc.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 file://0005-msdk-fix-includedir-path.patch \
13 " 12 "
14SRC_URI[sha256sum] = "b7e34b6b86272588fbd8b314dadfa6ceff895198cfb59e2950378e9e31ff22e0" 13SRC_URI[sha256sum] = "808d3b33fc4c71aeb2561c364a87c2e8a3e2343319a83244c8391be4b09499c8"
15 14
16S = "${WORKDIR}/gst-plugins-bad-${PV}" 15S = "${WORKDIR}/gst-plugins-bad-${PV}"
17 16
18LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" 17LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
19LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 18LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
20 19
21DEPENDS += "gstreamer1.0-plugins-base" 20DEPENDS += "gstreamer1.0-plugins-base"
@@ -25,15 +24,17 @@ inherit gobject-introspection
25PACKAGECONFIG ??= " \ 24PACKAGECONFIG ??= " \
26 ${GSTREAMER_ORC} \ 25 ${GSTREAMER_ORC} \
27 ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ 26 ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
28 ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ 27 ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \
29 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ 28 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
30 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ 29 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
31 bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \ 30 bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \
32 ttml uvch264 webp \ 31 sndfile ttml uvch264 webp \
32 ${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'rsvg', d)} \
33" 33"
34 34
35PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom" 35PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom"
36PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass" 36PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass"
37PACKAGECONFIG[avtp] = "-Davtp=enabled,-Davtp=disabled,libavtp"
37PACKAGECONFIG[bluez] = "-Dbluez=enabled,-Dbluez=disabled,bluez5" 38PACKAGECONFIG[bluez] = "-Dbluez=enabled,-Dbluez=disabled,bluez5"
38PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" 39PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2"
39PACKAGECONFIG[closedcaption] = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo" 40PACKAGECONFIG[closedcaption] = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo"
@@ -45,18 +46,21 @@ PACKAGECONFIG[dtls] = "-Ddtls=enabled,-Ddtls=disabled,openssl"
45PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac" 46PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac"
46PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2" 47PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2"
47PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth" 48PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth"
48PACKAGECONFIG[hls] = "-Dhls=enabled -Dhls-crypto=nettle,-Dhls=disabled,nettle" 49PACKAGECONFIG[hls] = "-Dhls=enabled,-Dhls=disabled,"
50# Pick atleast one crypto backend below when enabling hls
51PACKAGECONFIG[nettle] = "-Dhls-crypto=nettle,,nettle"
52PACKAGECONFIG[openssl] = "-Dhls-crypto=openssl,,openssl"
53PACKAGECONFIG[gcrypt] = "-Dhls-crypto=libgcrypt,,libgcrypt"
49# the gl packageconfig enables OpenGL elements that haven't been ported 54# the gl packageconfig enables OpenGL elements that haven't been ported
50# to -base yet. They depend on the gstgl library in -base, so we do 55# to -base yet. They depend on the gstgl library in -base, so we do
51# not add GL dependencies here, since these are taken care of in -base. 56# not add GL dependencies here, since these are taken care of in -base.
52PACKAGECONFIG[gl] = "-Dgl=enabled,-Dgl=disabled," 57PACKAGECONFIG[gl] = "-Dgl=enabled,-Dgl=disabled,"
53PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm" 58PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm"
54PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265" 59PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265"
55PACKAGECONFIG[libmms] = "-Dlibmms=enabled,-Dlibmms=disabled,libmms"
56PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2" 60PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2"
57PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms" 61PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms"
58PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug" 62PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug"
59PACKAGECONFIG[msdk] = "-Dmsdk=enabled,-Dmsdk=disabled,intel-mediasdk" 63PACKAGECONFIG[msdk] = "-Dmsdk=enabled -Dmfx_api=oneVPL,-Dmsdk=disabled,onevpl-intel-gpu"
60PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon" 64PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon"
61PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft" 65PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft"
62PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv" 66PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv"
@@ -78,6 +82,8 @@ PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp"
78PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa" 82PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa"
79PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo" 83PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo"
80PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev" 84PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev"
85# this enables support for stateless V4L2 mem2mem codecs, which is a newer form of
86# V4L2 codec; the V4L2 code in -base supports the older stateful V4L2 mem2mem codecs
81PACKAGECONFIG[v4l2codecs] = "-Dv4l2codecs=enabled,-Dv4l2codecs=disabled,libgudev" 87PACKAGECONFIG[v4l2codecs] = "-Dv4l2codecs=enabled,-Dv4l2codecs=disabled,libgudev"
82PACKAGECONFIG[va] = "-Dva=enabled,-Dva=disabled,libva" 88PACKAGECONFIG[va] = "-Dva=enabled,-Dva=disabled,libva"
83PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc" 89PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc"
@@ -88,10 +94,15 @@ PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp"
88PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice" 94PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice"
89PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing" 95PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing"
90PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar" 96PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar"
97PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libxcb libxkbcommon"
91PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265" 98PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265"
92 99
100GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'faad resindvd x265', d)}"
101
93EXTRA_OEMESON += " \ 102EXTRA_OEMESON += " \
94 -Ddoc=disabled \ 103 -Ddoc=disabled \
104 -Daes=enabled \
105 -Dcodecalpha=enabled \
95 -Ddecklink=enabled \ 106 -Ddecklink=enabled \
96 -Ddvb=enabled \ 107 -Ddvb=enabled \
97 -Dfbdev=enabled \ 108 -Dfbdev=enabled \
@@ -100,7 +111,7 @@ EXTRA_OEMESON += " \
100 -Dtranscode=enabled \ 111 -Dtranscode=enabled \
101 -Dandroidmedia=disabled \ 112 -Dandroidmedia=disabled \
102 -Dapplemedia=disabled \ 113 -Dapplemedia=disabled \
103 -Davtp=disabled \ 114 -Dasio=disabled \
104 -Dbs2b=disabled \ 115 -Dbs2b=disabled \
105 -Dchromaprint=disabled \ 116 -Dchromaprint=disabled \
106 -Dd3dvideosink=disabled \ 117 -Dd3dvideosink=disabled \
@@ -110,10 +121,12 @@ EXTRA_OEMESON += " \
110 -Dfdkaac=disabled \ 121 -Dfdkaac=disabled \
111 -Dflite=disabled \ 122 -Dflite=disabled \
112 -Dgme=disabled \ 123 -Dgme=disabled \
124 -Dgs=disabled \
113 -Dgsm=disabled \ 125 -Dgsm=disabled \
114 -Diqa=disabled \ 126 -Diqa=disabled \
115 -Dkate=disabled \ 127 -Dkate=disabled \
116 -Dladspa=disabled \ 128 -Dladspa=disabled \
129 -Dldac=disabled \
117 -Dlv2=disabled \ 130 -Dlv2=disabled \
118 -Dmagicleap=disabled \ 131 -Dmagicleap=disabled \
119 -Dmediafoundation=disabled \ 132 -Dmediafoundation=disabled \
@@ -122,10 +135,12 @@ EXTRA_OEMESON += " \
122 -Dmplex=disabled \ 135 -Dmplex=disabled \
123 -Dmusepack=disabled \ 136 -Dmusepack=disabled \
124 -Dnvcodec=disabled \ 137 -Dnvcodec=disabled \
125 -Dofa=disabled \
126 -Dopenexr=disabled \ 138 -Dopenexr=disabled \
127 -Dopenni2=disabled \ 139 -Dopenni2=disabled \
140 -Dopenaptx=disabled \
128 -Dopensles=disabled \ 141 -Dopensles=disabled \
142 -Donnx=disabled \
143 -Dqroverlay=disabled \
129 -Dsoundtouch=disabled \ 144 -Dsoundtouch=disabled \
130 -Dspandsp=disabled \ 145 -Dspandsp=disabled \
131 -Dsvthevcenc=disabled \ 146 -Dsvthevcenc=disabled \
@@ -141,11 +156,10 @@ EXTRA_OEMESON += " \
141 156
142export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" 157export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}"
143 158
144ARM_INSTRUCTION_SET_armv4 = "arm" 159ARM_INSTRUCTION_SET:armv4 = "arm"
145ARM_INSTRUCTION_SET_armv5 = "arm" 160ARM_INSTRUCTION_SET:armv5 = "arm"
146
147FILES_${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs"
148FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
149FILES_${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles"
150FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs"
151 161
162FILES:${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs"
163FILES:${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
164FILES:${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles"
165FILES:${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs"
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 d5d9838372..34c99ded42 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,13 +1,14 @@
1From f9d48cd85ee68207733b1b91a00453462c33524a Mon Sep 17 00:00:00 2001 1From 63fe5a7b4ef70e2c490bad3b0838329935a8d77c 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 1/4] ENGR00312515: get caps from src pad when query caps 4Subject: [PATCH] ENGR00312515: get caps from src pad when query caps
5 5
6https://bugzilla.gnome.org/show_bug.cgi?id=728312 6https://bugzilla.gnome.org/show_bug.cgi?id=728312
7 7
8Upstream-Status: Pending 8Upstream-Status: Pending
9 9
10Signed-off-by: zhouming <b42586@freescale.com> 10Signed-off-by: zhouming <b42586@freescale.com>
11
11--- 12---
12 gst-libs/gst/tag/gsttagdemux.c | 13 +++++++++++++ 13 gst-libs/gst/tag/gsttagdemux.c | 13 +++++++++++++
13 1 file changed, 13 insertions(+) 14 1 file changed, 13 insertions(+)
@@ -16,10 +17,10 @@ Signed-off-by: zhouming <b42586@freescale.com>
16diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c 17diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
17old mode 100644 18old mode 100644
18new mode 100755 19new mode 100755
19index f545857..62d10ef 20index 173da37..2b7f34c
20--- a/gst-libs/gst/tag/gsttagdemux.c 21--- a/gst-libs/gst/tag/gsttagdemux.c
21+++ b/gst-libs/gst/tag/gsttagdemux.c 22+++ b/gst-libs/gst/tag/gsttagdemux.c
22@@ -1777,6 +1777,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) 23@@ -1796,6 +1796,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
23 } 24 }
24 break; 25 break;
25 } 26 }
@@ -39,6 +40,3 @@ index f545857..62d10ef
39 default: 40 default:
40 res = gst_pad_query_default (pad, parent, query); 41 res = gst_pad_query_default (pad, parent, query);
41 break; 42 break;
42--
432.28.0
44
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 e453a500c9..2adeae93d6 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,14 +1,15 @@
1From f587861bbe12ad0b10370f835592746aafedbf56 Mon Sep 17 00:00:00 2001 1From 7bf9525528c8f4a47413d7f82214d76f95f0c5f6 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 2/4] ssaparse: enhance SSA text lines parsing. 4Subject: [PATCH] ssaparse: enhance SSA text lines parsing.
5 5
6some parser will pass in the original ssa text line which starts with "Dialog:" 6some parser will pass in the original ssa text line which starts with "Dialog:"
7and there's are maybe multiple Dialog lines in one input buffer. 7and there's are maybe multiple Dialog lines in one input buffer.
8 8
9Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=747496] 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
12--- 13---
13 gst/subparse/gstssaparse.c | 150 +++++++++++++++++++++++++++++++++---- 14 gst/subparse/gstssaparse.c | 150 +++++++++++++++++++++++++++++++++----
14 1 file changed, 134 insertions(+), 16 deletions(-) 15 1 file changed, 134 insertions(+), 16 deletions(-)
@@ -17,10 +18,10 @@ Signed-off-by: Mingke Wang <mingke.wang@freescale.com>
17diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c 18diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c
18old mode 100644 19old mode 100644
19new mode 100755 20new mode 100755
20index c849c08..4b9636c 21index d6fdb9c..5ebe678
21--- a/gst/subparse/gstssaparse.c 22--- a/gst/subparse/gstssaparse.c
22+++ b/gst/subparse/gstssaparse.c 23+++ b/gst/subparse/gstssaparse.c
23@@ -262,6 +262,7 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt) 24@@ -270,6 +270,7 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt)
24 * gst_ssa_parse_push_line: 25 * gst_ssa_parse_push_line:
25 * @parse: caller element 26 * @parse: caller element
26 * @txt: text to push 27 * @txt: text to push
@@ -28,7 +29,7 @@ index c849c08..4b9636c
28 * @start: timestamp for the buffer 29 * @start: timestamp for the buffer
29 * @duration: duration for the buffer 30 * @duration: duration for the buffer
30 * 31 *
31@@ -271,27 +272,133 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt) 32@@ -279,27 +280,133 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt)
32 * Returns: result of the push of the created buffer 33 * Returns: result of the push of the created buffer
33 */ 34 */
34 static GstFlowReturn 35 static GstFlowReturn
@@ -173,7 +174,7 @@ index c849c08..4b9636c
173 GST_LOG_OBJECT (parse, "Text : %s", t); 174 GST_LOG_OBJECT (parse, "Text : %s", t);
174 175
175 if (gst_ssa_parse_remove_override_codes (parse, t)) { 176 if (gst_ssa_parse_remove_override_codes (parse, t)) {
176@@ -309,13 +416,22 @@ gst_ssa_parse_push_line (GstSsaParse * parse, gchar * txt, 177@@ -317,13 +424,22 @@ gst_ssa_parse_push_line (GstSsaParse * parse, gchar * txt,
177 gst_buffer_fill (buf, 0, escaped, len + 1); 178 gst_buffer_fill (buf, 0, escaped, len + 1);
178 gst_buffer_set_size (buf, len); 179 gst_buffer_set_size (buf, len);
179 g_free (escaped); 180 g_free (escaped);
@@ -200,7 +201,7 @@ index c849c08..4b9636c
200 201
201 ret = gst_pad_push (parse->srcpad, buf); 202 ret = gst_pad_push (parse->srcpad, buf);
202 203
203@@ -335,6 +451,7 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf) 204@@ -343,6 +459,7 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf)
204 GstClockTime ts; 205 GstClockTime ts;
205 gchar *txt; 206 gchar *txt;
206 GstMapInfo map; 207 GstMapInfo map;
@@ -208,7 +209,7 @@ index c849c08..4b9636c
208 209
209 if (G_UNLIKELY (!parse->framed)) 210 if (G_UNLIKELY (!parse->framed))
210 goto not_framed; 211 goto not_framed;
211@@ -352,13 +469,14 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf) 212@@ -360,13 +477,14 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf)
212 /* make double-sure it's 0-terminated and all */ 213 /* make double-sure it's 0-terminated and all */
213 gst_buffer_map (buf, &map, GST_MAP_READ); 214 gst_buffer_map (buf, &map, GST_MAP_READ);
214 txt = g_strndup ((gchar *) map.data, map.size); 215 txt = g_strndup ((gchar *) map.data, map.size);
@@ -224,6 +225,3 @@ index c849c08..4b9636c
224 225
225 if (ret != GST_FLOW_OK && GST_CLOCK_TIME_IS_VALID (ts)) { 226 if (ret != GST_FLOW_OK && GST_CLOCK_TIME_IS_VALID (ts)) {
226 GstSegment segment; 227 GstSegment segment;
227--
2282.28.0
229
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 2af83ff8b9..a605533be8 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,19 +1,20 @@
1From 153f3b83a3fed77785bd1420bed8bbafa2d791b3 Mon Sep 17 00:00:00 2001 1From 2b07840122bc2e83bd23dad59aa80d9479f2e1e4 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 3/4] viv-fb: Make sure config.h is included 4Subject: [PATCH] viv-fb: Make sure config.h is included
5 5
6This prevents build errors due to missing GST_API_* symbols 6This prevents build errors due to missing GST_API_* symbols
7 7
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
11--- 12---
12 gst-libs/gst/gl/gl-prelude.h | 4 ++++ 13 gst-libs/gst/gl/gl-prelude.h | 4 ++++
13 1 file changed, 4 insertions(+) 14 1 file changed, 4 insertions(+)
14 15
15diff --git a/gst-libs/gst/gl/gl-prelude.h b/gst-libs/gst/gl/gl-prelude.h 16diff --git a/gst-libs/gst/gl/gl-prelude.h b/gst-libs/gst/gl/gl-prelude.h
16index 05e1f62..96ce5e6 100644 17index 85fca5a..946c729 100644
17--- a/gst-libs/gst/gl/gl-prelude.h 18--- a/gst-libs/gst/gl/gl-prelude.h
18+++ b/gst-libs/gst/gl/gl-prelude.h 19+++ b/gst-libs/gst/gl/gl-prelude.h
19@@ -22,6 +22,10 @@ 20@@ -22,6 +22,10 @@
@@ -27,6 +28,3 @@ index 05e1f62..96ce5e6 100644
27 #include <gst/gst.h> 28 #include <gst/gst.h>
28 29
29 #ifdef BUILDING_GST_GL 30 #ifdef BUILDING_GST_GL
30--
312.28.0
32
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch
deleted file mode 100644
index f45ea65ef3..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 79841a02ee754eba736cb32aaf2ed2b2fc0483d4 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 24 Sep 2015 19:47:32 +0300
4Subject: [PATCH 4/4] glimagesink: Downrank to marginal
5
6On desktop, where there is good OpenGL, xvimagesink will come up first,
7on other platforms, OpenGL can't be trusted because it's either software (like
8in a VM) or broken (like on embedded)., so let ximagesink come above.
9
10Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=751684]
11
12Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
13---
14 ext/gl/gstopengl.c | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/ext/gl/gstopengl.c b/ext/gl/gstopengl.c
18index 302e845..463be9c 100644
19--- a/ext/gl/gstopengl.c
20+++ b/ext/gl/gstopengl.c
21@@ -127,7 +127,7 @@ plugin_init (GstPlugin * plugin)
22 #endif
23
24 if (!gst_element_register (plugin, "glimagesink",
25- GST_RANK_SECONDARY, gst_gl_image_sink_bin_get_type ())) {
26+ GST_RANK_MARGINAL, gst_gl_image_sink_bin_get_type ())) {
27 return FALSE;
28 }
29
30--
312.28.0
32
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb
index 86b0f2790e..7aa10eb646 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb
@@ -1,18 +1,17 @@
1require gstreamer1.0-plugins-common.inc 1require gstreamer1.0-plugins-common.inc
2 2
3DESCRIPTION = "'Base' GStreamer plugins and helper libraries" 3SUMMARY = "'Base' GStreamer plugins and helper libraries"
4HOMEPAGE = "https://gstreamer.freedesktop.org/" 4HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues" 5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues"
6LICENSE = "GPLv2+ & LGPLv2+" 6LICENSE = "LGPL-2.1-or-later"
7LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" 7LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770"
8 8
9SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ 9SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \
10 file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \ 10 file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \
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 file://0004-glimagesink-Downrank-to-marginal.patch \
14 " 13 "
15SRC_URI[sha256sum] = "dbfa20283848f0347a223dd8523dfb62e09e5220b21b1d157a8b0c8b67ba9f52" 14SRC_URI[sha256sum] = "65eaf72296cc5edc985695a4d80affc931e64a79f4879d05615854f7a2cf5bd1"
16 15
17S = "${WORKDIR}/gst-plugins-base-${PV}" 16S = "${WORKDIR}/gst-plugins-base-${PV}"
18 17
@@ -20,11 +19,10 @@ DEPENDS += "iso-codes util-linux zlib"
20 19
21inherit gobject-introspection 20inherit gobject-introspection
22 21
23PACKAGES_DYNAMIC =+ "^libgst.*"
24
25# opengl packageconfig factored out to make it easy for distros 22# opengl packageconfig factored out to make it easy for distros
26# and BSP layers to choose OpenGL APIs/platforms/window systems 23# and BSP layers to choose OpenGL APIs/platforms/window systems
27PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" 24PACKAGECONFIG_X11 = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl glx', '', d)}"
25PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl ${PACKAGECONFIG_X11}', '', d)}"
28 26
29PACKAGECONFIG ??= " \ 27PACKAGECONFIG ??= " \
30 ${GSTREAMER_ORC} \ 28 ${GSTREAMER_ORC} \
@@ -35,7 +33,7 @@ PACKAGECONFIG ??= " \
35" 33"
36 34
37OPENGL_APIS = 'opengl gles2' 35OPENGL_APIS = 'opengl gles2'
38OPENGL_PLATFORMS = 'egl' 36OPENGL_PLATFORMS = 'egl glx'
39 37
40X11DEPENDS = "virtual/libx11 libsm libxrender libxv" 38X11DEPENDS = "virtual/libx11 libsm libxrender libxv"
41X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled" 39X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled"
@@ -43,11 +41,15 @@ X11DISABLEOPTS = "-Dx11=disabled -Dxvideo=disabled -Dxshm=disabled"
43 41
44PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" 42PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib"
45PACKAGECONFIG[cdparanoia] = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia" 43PACKAGECONFIG[cdparanoia] = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia"
44PACKAGECONFIG[graphene] = "-Dgl-graphene=enabled,-Dgl-graphene=disabled,graphene"
46PACKAGECONFIG[jpeg] = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg" 45PACKAGECONFIG[jpeg] = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg"
47PACKAGECONFIG[ogg] = "-Dogg=enabled,-Dogg=disabled,libogg" 46PACKAGECONFIG[ogg] = "-Dogg=enabled,-Dogg=disabled,libogg"
48PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus" 47PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus"
49PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango" 48PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango"
50PACKAGECONFIG[png] = "-Dgl-png=enabled,-Dgl-png=disabled,libpng" 49PACKAGECONFIG[png] = "-Dgl-png=enabled,-Dgl-png=disabled,libpng"
50# This enables Qt5 QML examples in -base. The Qt5 GStreamer
51# qmlglsink and qmlglsrc plugins still exist in -good.
52PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native"
51PACKAGECONFIG[theora] = "-Dtheora=enabled,-Dtheora=disabled,libtheora" 53PACKAGECONFIG[theora] = "-Dtheora=enabled,-Dtheora=disabled,libtheora"
52PACKAGECONFIG[tremor] = "-Dtremor=enabled,-Dtremor=disabled,tremor" 54PACKAGECONFIG[tremor] = "-Dtremor=enabled,-Dtremor=disabled,tremor"
53PACKAGECONFIG[visual] = "-Dlibvisual=enabled,-Dlibvisual=disabled,libvisual" 55PACKAGECONFIG[visual] = "-Dlibvisual=enabled,-Dlibvisual=disabled,libvisual"
@@ -60,28 +62,25 @@ PACKAGECONFIG[gles2] = ",,virtual/libgles2"
60 62
61# OpenGL platform packageconfigs 63# OpenGL platform packageconfigs
62PACKAGECONFIG[egl] = ",,virtual/egl" 64PACKAGECONFIG[egl] = ",,virtual/egl"
65PACKAGECONFIG[glx] = ",,virtual/libgl"
63 66
64# OpenGL window systems (except for X11) 67# OpenGL window systems (except for X11)
65PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm" 68PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm"
66PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm" 69PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm"
67PACKAGECONFIG[dispmanx] = ",,virtual/libomxil" 70PACKAGECONFIG[dispmanx] = ",,virtual/libomxil"
71PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d"
68 72
69OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', ' x11', '', d)}" 73OPENGL_WINSYS = "${@bb.utils.filter('PACKAGECONFIG', 'x11 gbm wayland dispmanx egl viv-fb', d)}"
70OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'gbm', ' gbm', '', d)}"
71OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', ' wayland', '', d)}"
72OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'dispmanx', ' dispmanx', '', d)}"
73OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'egl', ' egl', '', d)}"
74 74
75EXTRA_OEMESON += " \ 75EXTRA_OEMESON += " \
76 -Ddoc=disabled \ 76 -Ddoc=disabled \
77 -Dgl-graphene=disabled \
78 ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \ 77 ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \
79 ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \ 78 ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \
80 ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \ 79 ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \
81" 80"
82 81
83FILES_${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h" 82FILES:${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h"
84FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" 83FILES:${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
85 84
86def get_opengl_cmdline_list(switch_name, options, d): 85def get_opengl_cmdline_list(switch_name, options, d):
87 selected_options = [] 86 selected_options = []
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
index dba96e0f6e..54dd92873f 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
@@ -21,7 +21,7 @@ GSTREAMER_ORC ?= "orc"
21# workaround to disable orc on mips to fix the build failure 21# workaround to disable orc on mips to fix the build failure
22# {standard input}: Assembler messages: 22# {standard input}: Assembler messages:
23# {standard input}:46587: Error: branch out of range 23# {standard input}:46587: Error: branch out of range
24GSTREAMER_ORC_mips = "" 24GSTREAMER_ORC:mips = ""
25PACKAGECONFIG[orc] = "-Dorc=enabled,-Dorc=disabled,orc orc-native" 25PACKAGECONFIG[orc] = "-Dorc=enabled,-Dorc=disabled,orc orc-native"
26 26
27# TODO: put this in a gettext.bbclass patch (with variables to allow for 27# TODO: put this in a gettext.bbclass patch (with variables to allow for
@@ -45,6 +45,3 @@ EXTRA_OEMESON += " \
45 45
46GIR_MESON_ENABLE_FLAG = "enabled" 46GIR_MESON_ENABLE_FLAG = "enabled"
47GIR_MESON_DISABLE_FLAG = "disabled" 47GIR_MESON_DISABLE_FLAG = "disabled"
48
49# Dynamically generate packages for all enabled plugins
50PACKAGES_DYNAMIC = "^${PN}-.*"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch
deleted file mode 100644
index 788d752058..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch
+++ /dev/null
@@ -1,56 +0,0 @@
1From bf8b2fa0f6870589d036f0f33c140a3f85b530a0 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 31 Mar 2020 21:23:28 -0700
4Subject: [PATCH] qt: include ext/qt/gstqtgl.h instead of gst/gl/gstglfuncs.h
5
6gst/gl/gstglfuncs.h is included via ext/qt/gstqtgl.h which has logic to
7prefer qt headers definitions for GLsync
8
9This helps in fixing build errors like below
10
11/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: error: conflicting declaration 'typedef struct __GLsync* GLsync'
12 24 | typedef struct __GLsync *GLsync;
13 | ^~~~~~
14In file included from /mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:84,
15 from ../gst-plugins-good-1.16.2/ext/qt/gstqsgtexture.cc:30:
16/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: note: previous declaration as 'typedef void* GLsync
17'
18 40 | typedef gpointer GLsync;
19 | ^~~~~~
20
21Upstream-Status: Pending
22Signed-off-by: Khem Raj <raj.khem@gmail.com>
23---
24 ext/qt/gstqsgtexture.cc | 2 +-
25 ext/qt/qtwindow.cc | 2 +-
26 2 files changed, 2 insertions(+), 2 deletions(-)
27
28diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc
29index a05d26e..4cc9fc6 100644
30--- a/ext/qt/gstqsgtexture.cc
31+++ b/ext/qt/gstqsgtexture.cc
32@@ -27,7 +27,7 @@
33
34 #include <gst/video/video.h>
35 #include <gst/gl/gl.h>
36-#include <gst/gl/gstglfuncs.h>
37+#include <ext/qt/gstqtgl.h>
38 #include "gstqsgtexture.h"
39
40 #define GST_CAT_DEFAULT gst_qsg_texture_debug
41diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc
42index 9360c33..0dfd3f1 100644
43--- a/ext/qt/qtwindow.cc
44+++ b/ext/qt/qtwindow.cc
45@@ -25,7 +25,7 @@
46 #include <stdio.h>
47
48 #include <gst/video/video.h>
49-#include <gst/gl/gstglfuncs.h>
50+#include <ext/qt/gstqtgl.h>
51 #include "qtwindow.h"
52 #include "gstqsgtexture.h"
53 #include "gstqtglutility.h"
54--
552.28.0
56
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
new file mode 100644
index 0000000000..33bd4200f6
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch
@@ -0,0 +1,38 @@
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.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb
index 93c6616c33..9ce3f73f7c 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb
@@ -1,30 +1,33 @@
1require gstreamer1.0-plugins-common.inc 1require gstreamer1.0-plugins-common.inc
2 2
3DESCRIPTION = "'Good' GStreamer plugins" 3SUMMARY = "'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-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \ 8 file://0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch"
9 "
10 9
11SRC_URI[sha256sum] = "9b3b8e05d4d6073bf929fb33e2d8f74dd81ff21fa5b50c3273c78dfa2ab9c5cb" 10SRC_URI[sha256sum] = "6ddd032381827d31820540735f0004b429436b0bdac19aaeab44fa22faad52e2"
12 11
13S = "${WORKDIR}/gst-plugins-good-${PV}" 12S = "${WORKDIR}/gst-plugins-good-${PV}"
14 13
15LICENSE = "GPLv2+ & LGPLv2.1+" 14LICENSE = "LGPL-2.1-or-later"
16LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ 15LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
17 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" 16 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
18 17
19DEPENDS += "gstreamer1.0-plugins-base libcap zlib" 18DEPENDS += "gstreamer1.0-plugins-base libcap zlib"
20RPROVIDES_${PN}-pulseaudio += "${PN}-pulse" 19RPROVIDES:${PN}-pulseaudio += "${PN}-pulse"
21RPROVIDES_${PN}-soup += "${PN}-souphttpsrc" 20RPROVIDES:${PN}-soup += "${PN}-souphttpsrc"
21RDEPENDS:${PN}-soup += "${MLPREFIX}${@bb.utils.contains('PACKAGECONFIG', 'soup2', 'libsoup-2.4', 'libsoup', d)}"
22
23PACKAGECONFIG_SOUP ?= "soup3"
22 24
23PACKAGECONFIG ??= " \ 25PACKAGECONFIG ??= " \
24 ${GSTREAMER_ORC} \ 26 ${GSTREAMER_ORC} \
27 ${PACKAGECONFIG_SOUP} \
25 ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ 28 ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \
26 ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'asm', '', d)} \ 29 ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'asm', '', d)} \
27 bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 soup speex taglib v4l2 \ 30 bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 speex taglib v4l2 \
28" 31"
29 32
30X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" 33X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage"
@@ -48,8 +51,9 @@ PACKAGECONFIG[libpng] = "-Dpng=enabled,-Dpng=disabled,libpng"
48PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils" 51PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils"
49PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123" 52PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123"
50PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio" 53PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio"
51PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native ${QT5WAYLANDDEPENDS}" 54PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native qttools-native ${QT5WAYLANDDEPENDS}"
52PACKAGECONFIG[soup] = "-Dsoup=enabled,-Dsoup=disabled,libsoup-2.4" 55PACKAGECONFIG[soup2] = "-Dsoup=enabled,,libsoup-2.4,,,soup3"
56PACKAGECONFIG[soup3] = "-Dsoup=enabled,,libsoup,,,soup2"
53PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex" 57PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex"
54PACKAGECONFIG[rpi] = "-Drpicamsrc=enabled,-Drpicamsrc=disabled,userland" 58PACKAGECONFIG[rpi] = "-Drpicamsrc=enabled,-Drpicamsrc=disabled,userland"
55PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib" 59PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib"
@@ -73,4 +77,4 @@ EXTRA_OEMESON += " \
73 -Dwaveform=disabled \ 77 -Dwaveform=disabled \
74" 78"
75 79
76FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" 80FILES:${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc
new file mode 100644
index 0000000000..8b1c001111
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc
@@ -0,0 +1,19 @@
1# This .inc file contains functionality for automatically setting
2# the the license of all plugins according to the GSTREAMER_GPL.
3
4PACKAGESPLITFUNCS += "set_gstreamer_license"
5
6python set_gstreamer_license () {
7 import oe.utils
8 pn = d.getVar('PN') + '-'
9 gpl_plugins_names = [pn+plugin for plugin in d.getVar('GSTREAMER_GPL').split()]
10 for pkg in oe.utils.packages_filter_out_system(d):
11 if pkg in gpl_plugins_names:
12 d.setVar('LICENSE:' + pkg, 'GPL-2.0-or-later')
13 else:
14 d.setVar('LICENSE:' + pkg, 'LGPL-2.1-or-later')
15}
16
17EXTRA_OEMESON += " \
18 ${@bb.utils.contains_any('PACKAGECONFIG', "${GSTREAMER_GPL}", '-Dgpl=enabled', '-Dgpl=disabled', d)} \
19 "
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc
index 9a7a1b6afe..d77aeed8a2 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc
@@ -6,8 +6,11 @@
6# This is mainly used by the gstreamer1.0-plugins-* plugin set recipes, 6# This is mainly used by the gstreamer1.0-plugins-* plugin set recipes,
7# but can be used in any recipe that produces GStreamer plugins. 7# but can be used in any recipe that produces GStreamer plugins.
8 8
9PACKAGESPLITFUNCS_prepend = " split_gstreamer10_packages " 9# Dynamically generate packages for all enabled plugins
10PACKAGESPLITFUNCS_append = " set_gstreamer10_metapkg_rdepends " 10PACKAGES_DYNAMIC = "^${PN}-.* ^libgst.*"
11
12PACKAGESPLITFUNCS =+ "split_gstreamer10_packages"
13PACKAGESPLITFUNCS += "set_gstreamer10_metapkg_rdepends"
11 14
12python split_gstreamer10_packages () { 15python split_gstreamer10_packages () {
13 gst_libdir = d.expand('${libdir}/gstreamer-1.0') 16 gst_libdir = d.expand('${libdir}/gstreamer-1.0')
@@ -33,13 +36,13 @@ python set_gstreamer10_metapkg_rdepends () {
33 36
34 pn = d.getVar('PN') 37 pn = d.getVar('PN')
35 metapkg = pn + '-meta' 38 metapkg = pn + '-meta'
36 d.setVar('ALLOW_EMPTY_' + metapkg, "1") 39 d.setVar('ALLOW_EMPTY:' + metapkg, "1")
37 d.setVar('FILES_' + metapkg, "") 40 d.setVar('FILES:' + metapkg, "")
38 blacklist = [ pn, pn + '-meta' ] 41 exclude = [ pn, pn + '-meta' ]
39 metapkg_rdepends = [] 42 metapkg_rdepends = []
40 pkgdest = d.getVar('PKGDEST') 43 pkgdest = d.getVar('PKGDEST')
41 for pkg in oe.utils.packages_filter_out_system(d): 44 for pkg in oe.utils.packages_filter_out_system(d):
42 if pkg not in blacklist and pkg not in metapkg_rdepends: 45 if pkg not in exclude and pkg not in metapkg_rdepends:
43 # See if the package is empty by looking at the contents of its PKGDEST subdirectory. 46 # See if the package is empty by looking at the contents of its PKGDEST subdirectory.
44 # If this subdirectory is empty, then the package is. 47 # If this subdirectory is empty, then the package is.
45 # Empty packages do not get added to the meta package's RDEPENDS 48 # Empty packages do not get added to the meta package's RDEPENDS
@@ -51,20 +54,20 @@ python set_gstreamer10_metapkg_rdepends () {
51 is_empty = len(dir_contents) == 0 54 is_empty = len(dir_contents) == 0
52 if not is_empty: 55 if not is_empty:
53 metapkg_rdepends.append(pkg) 56 metapkg_rdepends.append(pkg)
54 d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) 57 d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends))
55 d.setVar('DESCRIPTION_' + metapkg, pn + ' meta package') 58 d.setVar('DESCRIPTION:' + metapkg, pn + ' meta package')
56} 59}
57 60
58# each plugin-dev depends on PN-dev, plugin-staticdev on PN-staticdev 61# each plugin-dev depends on PN-dev, plugin-staticdev on PN-staticdev
59# so we need them even when empty (like in gst-plugins-good case) 62# so we need them even when empty (like in gst-plugins-good case)
60ALLOW_EMPTY_${PN} = "1" 63ALLOW_EMPTY:${PN} = "1"
61ALLOW_EMPTY_${PN}-dev = "1" 64ALLOW_EMPTY:${PN}-dev = "1"
62ALLOW_EMPTY_${PN}-staticdev = "1" 65ALLOW_EMPTY:${PN}-staticdev = "1"
63 66
64PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib" 67PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib"
65 68
66FILES_${PN} = "" 69FILES:${PN} = ""
67FILES_${PN}-apps = "${bindir}" 70FILES:${PN}-apps = "${bindir}"
68FILES_${PN}-glib = "${datadir}/glib-2.0" 71FILES:${PN}-glib = "${datadir}/glib-2.0"
69 72
70RRECOMMENDS_${PN} += "${PN}-meta" 73RRECOMMENDS:${PN} += "${PN}-meta"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb
index 876a9268a2..99f41d4f3d 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb
@@ -1,19 +1,21 @@
1require gstreamer1.0-plugins-common.inc 1require gstreamer1.0-plugins-common.inc
2require gstreamer1.0-plugins-license.inc
2 3
3DESCRIPTION = "'Ugly GStreamer plugins" 4SUMMARY = "'Ugly GStreamer plugins"
4HOMEPAGE = "https://gstreamer.freedesktop.org/" 5HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues" 6BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues"
6 7
7LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ 8LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
8 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068" 9 "
9 10
10LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+" 11LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
11LICENSE_FLAGS = "commercial" 12LICENSE_FLAGS = "commercial"
12 13
13SRC_URI = " \ 14SRC_URI = " \
14 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 \
15 " 16 "
16SRC_URI[sha256sum] = "70f7429b25dd2f714eb18e80af61b1363b1f63019e16cd28e086e3a619eaa992" 17
18SRC_URI[sha256sum] = "7758b7decfd20c00cae5700822bcbbf03f98c723e33e17634db2e07ca1da60bf"
17 19
18S = "${WORKDIR}/gst-plugins-ugly-${PV}" 20S = "${WORKDIR}/gst-plugins-ugly-${PV}"
19 21
@@ -23,21 +25,22 @@ GST_PLUGIN_SET_HAS_EXAMPLES = "0"
23 25
24PACKAGECONFIG ??= " \ 26PACKAGECONFIG ??= " \
25 ${GSTREAMER_ORC} \ 27 ${GSTREAMER_ORC} \
26 a52dec mpeg2dec \
27" 28"
28 29
29PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52"
30PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr" 30PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr"
31PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr" 31PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr"
32PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52"
32PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio" 33PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio"
33PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread" 34PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread"
34PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec" 35PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec"
35PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264" 36PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264"
36 37
38GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'a52dec cdio dvdread mpeg2dec x264', d)}"
39
37EXTRA_OEMESON += " \ 40EXTRA_OEMESON += " \
38 -Ddoc=disabled \ 41 -Ddoc=disabled \
39 -Dsidplay=disabled \ 42 -Dsidplay=disabled \
40" 43"
41 44
42FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" 45FILES:${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs"
43FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" 46FILES:${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
deleted file mode 100644
index b698067041..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
+++ /dev/null
@@ -1,23 +0,0 @@
1inherit ptest-gnome
2
3TEST_FILES_PATH = "${datadir}/installed-tests/gstreamer-1.0/test-files"
4RUN_PTEST_FILE = "${D}${PTEST_PATH}/run-ptest"
5
6EXTRA_OEMESON += "-Dtest-files-path=${TEST_FILES_PATH}"
7
8GST_TEST_SUITE_NAME ?= "gstreamer-1.0"
9
10# Using do_install_ptest_base instead of do_install_ptest, since
11# the default do_install_ptest_base is hardcoded to expect Makefiles.
12do_install_ptest_base() {
13 # Generate run-ptest file
14 echo "#!/usr/bin/env sh" > "${RUN_PTEST_FILE}"
15 echo "gnome-desktop-testing-runner ${GST_TEST_SUITE_NAME}" >> "${RUN_PTEST_FILE}"
16 chmod 0755 "${RUN_PTEST_FILE}"
17
18 # Install additional files required by tests
19 if [ -d "${S}/tests/files" ] ; then
20 install -d "${D}/${TEST_FILES_PATH}"
21 install -m 0644 "${S}/tests/files"/* "${D}/${TEST_FILES_PATH}"
22 fi
23}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb
index 90b6fc38df..0fbb03f757 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb
@@ -4,23 +4,27 @@ provided by python-gi) "
4HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/" 4HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/"
5SECTION = "multimedia" 5SECTION = "multimedia"
6 6
7LICENSE = "LGPLv2.1" 7LICENSE = "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] = "4e630735276e08ff4d70337aa5d91fd008e5f1ed3dc0993674cd5820e264259a" 11SRC_URI[sha256sum] = "f7a5450d93fd81bf46060dca7f4a048d095b6717961fec211731a11a994c99a7"
12 12
13DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" 13DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
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 = "${WORKDIR}/${PNREAL}-${PV}"
19 19
20EXTRA_OEMESON += "-Dlibpython-dir=${libdir}" 20EXTRA_OEMESON += "\
21 -Dtests=disabled \
22 -Dplugin=enabled \
23 -Dlibpython-dir=${libdir} \
24"
21 25
22# gobject-introspection is mandatory and cannot be configured 26inherit meson pkgconfig setuptools3-base upstream-version-is-even features_check
23REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" 27
24UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" 28FILES:${PN} += "${libdir}/gstreamer-1.0"
25 29
26inherit meson pkgconfig distutils3-base upstream-version-is-even gobject-introspection features_check 30REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb
index d6aaa5df79..554ed9ec8f 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb
@@ -1,8 +1,8 @@
1SUMMARY = "A library on top of GStreamer for building an RTSP server" 1SUMMARY = "A library on top of GStreamer for building an RTSP server"
2HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" 2HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/"
3SECTION = "multimedia" 3SECTION = "multimedia"
4LICENSE = "LGPLv2" 4LICENSE = "LGPL-2.1-or-later"
5LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" 5LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770"
6 6
7DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base" 7DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
8 8
@@ -10,7 +10,7 @@ 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] = "4f7757293b3d73dc49768b7392791668c4d0c21d41824624ffbd75c7f9ee0168" 13SRC_URI[sha256sum] = "ec49d474750a6ff6729c85b448abc607fb6840b21717ad7abc967e2adbf07a24"
14 14
15S = "${WORKDIR}/${PNREAL}-${PV}" 15S = "${WORKDIR}/${PNREAL}-${PV}"
16 16
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb
index 23040ad73c..87eb8484a1 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb
@@ -1,16 +1,17 @@
1SUMMARY = "VA-API support to GStreamer" 1SUMMARY = "VA-API support to GStreamer"
2HOMEPAGE = "https://gstreamer.freedesktop.org/"
2DESCRIPTION = "gstreamer-vaapi consists of a collection of VA-API \ 3DESCRIPTION = "gstreamer-vaapi consists of a collection of VA-API \
3based plugins for GStreamer and helper libraries: `vaapidecode', \ 4based plugins for GStreamer and helper libraries: `vaapidecode', \
4`vaapiconvert', and `vaapisink'." 5`vaapiconvert', and `vaapisink'."
5 6
6REALPN = "gstreamer-vaapi" 7REALPN = "gstreamer-vaapi"
7 8
8LICENSE = "LGPLv2.1+" 9LICENSE = "LGPL-2.1-or-later"
9LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" 10LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
10 11
11SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz" 12SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz"
12 13
13SRC_URI[sha256sum] = "ae9877f15757a661d4dfe6a09755a2faa959ab60752f14ca26b7ff10765e1f12" 14SRC_URI[sha256sum] = "6eae1360658302b9b512fa46b4d06f5b818dfce5f2f43d7d710ca8142719d8ad"
14 15
15S = "${WORKDIR}/${REALPN}-${PV}" 16S = "${WORKDIR}/${REALPN}-${PV}"
16DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" 17DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
@@ -39,14 +40,14 @@ PACKAGECONFIG ??= "drm encoders \
39 ${PACKAGECONFIG_GL} \ 40 ${PACKAGECONFIG_GL} \
40 ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" 41 ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
41 42
42PACKAGECONFIG[drm] = "-Dwith_drm=yes,-Dwith_drm=no,udev libdrm" 43PACKAGECONFIG[drm] = "-Ddrm=enabled,-Ddrm=disabled,udev libdrm"
43PACKAGECONFIG[egl] = "-Dwith_egl=yes,-Dwith_egl=no,virtual/egl" 44PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl"
44PACKAGECONFIG[encoders] = "-Dwith_encoders=yes,-Dwith_encoders=no" 45PACKAGECONFIG[encoders] = "-Dencoders=enabled,-Dencoders=disabled"
45PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/libgl" 46PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,virtual/libgl"
46PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland wayland-protocols" 47PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols"
47PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxrandr libxrender" 48PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libxrandr libxrender"
48 49
49FILES_${PN} += "${libdir}/gstreamer-*/*.so" 50FILES:${PN} += "${libdir}/gstreamer-*/*.so"
50FILES_${PN}-dbg += "${libdir}/gstreamer-*/.debug" 51FILES:${PN}-dbg += "${libdir}/gstreamer-*/.debug"
51FILES_${PN}-dev += "${libdir}/gstreamer-*/*.a" 52FILES:${PN}-dev += "${libdir}/gstreamer-*/*.a"
52FILES_${PN}-tests = "${bindir}/*" 53FILES:${PN}-tests = "${bindir}/*"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
deleted file mode 100644
index fe58e718a7..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
+++ /dev/null
@@ -1,66 +0,0 @@
1From fd8f49dba8c09d47425da80f5faab3bfa4a7c962 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sat, 10 Oct 2020 19:09:03 +0000
4Subject: [PATCH 1/3] gstpluginloader: when env var is set do not fall through
5 to system plugin scanner
6
7If we set a custom GST_PLUGIN_SCANNER env var, then we probably want to use that and only that.
8
9Falling through to the one installed on the system is problamatic in cross-compilation
10environemnts, regardless of whether one pointed to by the env var succeeded or failed.
11
12taken from:
13http://cgit.openembedded.org/openembedded-core/commit/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch?id=0db7ba34ca41b107042306d13a6f0162885c123b
14
15Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/669]
16Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
17---
18 gst/gstpluginloader.c | 15 +++++++--------
19 1 file changed, 7 insertions(+), 8 deletions(-)
20
21diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c
22index d1e404d98..c626bf263 100644
23--- a/gst/gstpluginloader.c
24+++ b/gst/gstpluginloader.c
25@@ -464,20 +464,19 @@ gst_plugin_loader_spawn (GstPluginLoader * loader)
26 if (loader->child_running)
27 return TRUE;
28
29- /* Find the gst-plugin-scanner: first try the env-var if it is set,
30- * otherwise use the installed version */
31+ /* Find the gst-plugin-scanner */
32 env = g_getenv ("GST_PLUGIN_SCANNER_1_0");
33 if (env == NULL)
34 env = g_getenv ("GST_PLUGIN_SCANNER");
35
36 if (env != NULL && *env != '\0') {
37+ /* use the env-var if it is set */
38 GST_LOG ("Trying GST_PLUGIN_SCANNER env var: %s", env);
39 helper_bin = g_strdup (env);
40 res = gst_plugin_loader_try_helper (loader, helper_bin);
41 g_free (helper_bin);
42- }
43-
44- if (!res) {
45+ } else {
46+ /* use the installed version */
47 GST_LOG ("Trying installed plugin scanner");
48
49 #ifdef G_OS_WIN32
50@@ -497,10 +496,10 @@ gst_plugin_loader_spawn (GstPluginLoader * loader)
51 #endif
52 res = gst_plugin_loader_try_helper (loader, helper_bin);
53 g_free (helper_bin);
54+ }
55
56- if (!res) {
57- GST_INFO ("No gst-plugin-scanner available, or not working");
58- }
59+ if (!res) {
60+ GST_INFO ("No gst-plugin-scanner available, or not working");
61 }
62
63 return loader->child_running;
64--
652.29.2
66
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
new file mode 100644
index 0000000000..0d839bd6c8
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
@@ -0,0 +1,34 @@
1From 5372cd5bf2a9dd247b9c5fc6e4fe248046dbb085 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH] tests: respect the idententaion used in meson
5
6Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
7
8Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
9
10---
11 tests/check/meson.build | 10 +++++-----
12 1 file changed, 5 insertions(+), 5 deletions(-)
13
14diff --git a/tests/check/meson.build b/tests/check/meson.build
15index 9787b0a..16caac7 100644
16--- a/tests/check/meson.build
17+++ b/tests/check/meson.build
18@@ -145,11 +145,11 @@ foreach t : core_tests
19
20 if not skip_test
21 exe = executable(test_name, fname,
22- c_args : gst_c_args + test_defines,
23- cpp_args : gst_c_args + test_defines,
24- include_directories : [configinc],
25- link_with : link_with_libs,
26- dependencies : gst_deps + test_deps,
27+ c_args : gst_c_args + test_defines,
28+ cpp_args : gst_c_args + test_defines,
29+ include_directories : [configinc],
30+ link_with : link_with_libs,
31+ dependencies : gst_deps + test_deps,
32 )
33
34 env = environment()
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
deleted file mode 100644
index e0e64e2c7a..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 1db36347d05d88835519368442e9aa89c64091ad Mon Sep 17 00:00:00 2001
2From: Seungha Yang <seungha@centricular.com>
3Date: Tue, 15 Sep 2020 00:54:58 +0900
4Subject: [PATCH] tests: seek: Don't use too strict timeout for validation
5
6Expected segment-done message might not be seen within expected
7time if system is not powerful enough.
8
9Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/625>
10
11Upstream-Status: Backport [https://cgit.freedesktop.org/gstreamer/gstreamer/commit?id=f44312ae5d831438fcf8041162079c65321c588c]
12Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
13---
14 tests/check/pipelines/seek.c | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/tests/check/pipelines/seek.c b/tests/check/pipelines/seek.c
18index 28bb8846d..5f7447bc5 100644
19--- a/tests/check/pipelines/seek.c
20+++ b/tests/check/pipelines/seek.c
21@@ -521,7 +521,7 @@ GST_START_TEST (test_loopback_2)
22
23 GST_INFO ("wait for segment done message");
24
25- msg = gst_bus_timed_pop_filtered (bus, (GstClockTime) 2 * GST_SECOND,
26+ msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
27 GST_MESSAGE_SEGMENT_DONE | GST_MESSAGE_ERROR);
28 fail_unless (msg, "no message within the timed window");
29 fail_unless_equals_string (GST_MESSAGE_TYPE_NAME (msg), "segment-done");
30--
312.29.2
32
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch
deleted file mode 100644
index 96abef17b0..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch
+++ /dev/null
@@ -1,112 +0,0 @@
1From 598d108e2c438d8f2ecd3bf948fa3ebbd3681490 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
3Date: Fri, 14 Aug 2020 16:38:26 +0100
4Subject: [PATCH 2/3] Remove unused valgrind detection
5
6Having this just to log a debug message in case we're
7running inside valgrind doesn't seem very useful, and
8the code that used to use this no longer exists it seems.
9
10Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/595>
11
12Upstream-Status: Backport [a2cbf75523cdf8a4df1baa7007d86ef455972245]
13
14Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
15---
16 gst/gst_private.h | 2 --
17 gst/gstinfo.c | 39 ---------------------------------------
18 meson.build | 1 -
19 3 files changed, 42 deletions(-)
20
21diff --git a/gst/gst_private.h b/gst/gst_private.h
22index eefd044d9..8252ede51 100644
23--- a/gst/gst_private.h
24+++ b/gst/gst_private.h
25@@ -116,8 +116,6 @@ G_GNUC_INTERNAL gboolean _priv_plugin_deps_env_vars_changed (GstPlugin * plugin
26
27 G_GNUC_INTERNAL gboolean _priv_plugin_deps_files_changed (GstPlugin * plugin);
28
29-G_GNUC_INTERNAL gboolean _priv_gst_in_valgrind (void);
30-
31 /* init functions called from gst_init(). */
32 G_GNUC_INTERNAL void _priv_gst_quarks_initialize (void);
33 G_GNUC_INTERNAL void _priv_gst_mini_object_initialize (void);
34diff --git a/gst/gstinfo.c b/gst/gstinfo.c
35index 5d317877b..097f8b20d 100644
36--- a/gst/gstinfo.c
37+++ b/gst/gstinfo.c
38@@ -305,36 +305,6 @@ static gboolean pretty_tags = PRETTY_TAGS_DEFAULT;
39 static volatile gint G_GNUC_MAY_ALIAS __default_level = GST_LEVEL_DEFAULT;
40 static volatile gint G_GNUC_MAY_ALIAS __use_color = GST_DEBUG_COLOR_MODE_ON;
41
42-/* FIXME: export this? */
43-gboolean
44-_priv_gst_in_valgrind (void)
45-{
46- static enum
47- {
48- GST_VG_UNCHECKED,
49- GST_VG_NO_VALGRIND,
50- GST_VG_INSIDE
51- }
52- in_valgrind = GST_VG_UNCHECKED;
53-
54- if (in_valgrind == GST_VG_UNCHECKED) {
55-#ifdef HAVE_VALGRIND_VALGRIND_H
56- if (RUNNING_ON_VALGRIND) {
57- GST_CAT_INFO (GST_CAT_GST_INIT, "we're running inside valgrind");
58- in_valgrind = GST_VG_INSIDE;
59- } else {
60- GST_CAT_LOG (GST_CAT_GST_INIT, "not doing extra valgrind stuff");
61- in_valgrind = GST_VG_NO_VALGRIND;
62- }
63-#else
64- in_valgrind = GST_VG_NO_VALGRIND;
65-#endif
66- g_assert (in_valgrind == GST_VG_NO_VALGRIND ||
67- in_valgrind == GST_VG_INSIDE);
68- }
69- return (in_valgrind == GST_VG_INSIDE);
70-}
71-
72 static gchar *
73 _replace_pattern_in_gst_debug_file_name (gchar * name, const char *token,
74 guint val)
75@@ -463,9 +433,6 @@ _priv_gst_debug_init (void)
76 _priv_GST_CAT_PROTECTION =
77 _gst_debug_category_new ("GST_PROTECTION", 0, "protection");
78
79- /* print out the valgrind message if we're in valgrind */
80- _priv_gst_in_valgrind ();
81-
82 env = g_getenv ("GST_DEBUG_OPTIONS");
83 if (env != NULL) {
84 if (strstr (env, "full_tags") || strstr (env, "full-tags"))
85@@ -2503,12 +2470,6 @@ gst_debug_construct_win_color (guint colorinfo)
86 return 0;
87 }
88
89-gboolean
90-_priv_gst_in_valgrind (void)
91-{
92- return FALSE;
93-}
94-
95 void
96 _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file,
97 const gchar * func, gint line, GObject * obj, const gchar * msg,
98diff --git a/meson.build b/meson.build
99index ce1921aa4..7a84d0981 100644
100--- a/meson.build
101+++ b/meson.build
102@@ -200,7 +200,6 @@ check_headers = [
103 'sys/wait.h',
104 'ucontext.h',
105 'unistd.h',
106- 'valgrind/valgrind.h',
107 'sys/resource.h',
108 'sys/uio.h',
109 ]
110--
1112.29.2
112
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
new file mode 100644
index 0000000000..64717e66c3
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
@@ -0,0 +1,107 @@
1From 27e977d03b0f7c1d0bf19621ef0cec0585410e7b Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH] tests: add support for install the tests
5
6This will provide to run the tests using the gnome-desktop-testing [1]
7
8[1] https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests
9
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13
14---
15 meson.build | 4 ++++
16 meson_options.txt | 1 +
17 tests/check/meson.build | 22 +++++++++++++++++++++-
18 tests/check/template.test.in | 3 +++
19 4 files changed, 29 insertions(+), 1 deletion(-)
20 create mode 100644 tests/check/template.test.in
21
22diff --git a/meson.build b/meson.build
23index 60c7bec..f7650b1 100644
24--- a/meson.build
25+++ b/meson.build
26@@ -606,6 +606,10 @@ if bashcomp_dep.found()
27 endif
28 endif
29
30+installed_tests_enabled = get_option('installed_tests')
31+installed_tests_metadir = join_paths(datadir, 'installed-tests', meson.project_name())
32+installed_tests_execdir = join_paths(libexecdir, 'installed-tests', meson.project_name())
33+
34 plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0')
35
36 pkgconfig = import('pkgconfig')
37diff --git a/meson_options.txt b/meson_options.txt
38index 7363bdb..a34ba37 100644
39--- a/meson_options.txt
40+++ b/meson_options.txt
41@@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
42 option('memory-alignment', type: 'combo',
43 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
44 value: 'malloc')
45+option('installed_tests', type : 'boolean', value : false, description : 'Enable installed tests')
46
47 # Feature options
48 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
49diff --git a/tests/check/meson.build b/tests/check/meson.build
50index 16caac7..f2d400f 100644
51--- a/tests/check/meson.build
52+++ b/tests/check/meson.build
53@@ -124,10 +124,16 @@ test_defines = [
54 '-UG_DISABLE_ASSERT',
55 '-UG_DISABLE_CAST_CHECKS',
56 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
57- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
58 '-DGST_DISABLE_DEPRECATED',
59 ]
60
61+testfile = meson.current_source_dir() + '/meson.build'
62+if installed_tests_enabled
63+ install_data(testfile, install_dir : installed_tests_metadir, rename : 'testfile')
64+ testfile = installed_tests_metadir + '/testfile'
65+endif
66+test_defines += '-DTESTFILE="@0@"'.format(testfile)
67+
68 # sanity checking
69 if get_option('check').disabled()
70 if get_option('tests').enabled()
71@@ -150,6 +156,8 @@ foreach t : core_tests
72 include_directories : [configinc],
73 link_with : link_with_libs,
74 dependencies : gst_deps + test_deps,
75+ install_dir: installed_tests_execdir,
76+ install: installed_tests_enabled,
77 )
78
79 env = environment()
80@@ -161,6 +169,18 @@ foreach t : core_tests
81 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
82 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
83
84+ if installed_tests_enabled
85+ test_conf = configuration_data()
86+ test_conf.set('installed_tests_dir', join_paths(prefix, installed_tests_execdir))
87+ test_conf.set('program', test_name)
88+ configure_file(
89+ input: 'template.test.in',
90+ output: test_name + '.test',
91+ install_dir: installed_tests_metadir,
92+ configuration: test_conf
93+ )
94+ endif
95+
96 test(test_name, exe, env: env, timeout : 3 * 60)
97 endif
98 endforeach
99diff --git a/tests/check/template.test.in b/tests/check/template.test.in
100new file mode 100644
101index 0000000..f701627
102--- /dev/null
103+++ b/tests/check/template.test.in
104@@ -0,0 +1,3 @@
105+[Test]
106+Type=session
107+Exec=@installed_tests_dir@/@program@
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch
deleted file mode 100644
index bf5e57249c..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch
+++ /dev/null
@@ -1,257 +0,0 @@
1From cf8077a7e3ab0ae236ebde79b7fc0b02eac658de Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Fri, 25 Oct 2019 00:06:26 +0200
4Subject: [PATCH 3/3] meson: Add option for installed tests
5
6This adds an option for producing installed versions of the unit tests.
7These versions don't need meson to run (only a small shell script). This
8makes it easier to run cross compiled tests on a target machine.
9
10Upstream-Status: Pending
11
12Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
13---
14 build-aux/gen-installed-test-desc.py | 18 ++++++
15 build-aux/gen-installed-test-shscript.py | 25 ++++++++
16 meson_options.txt | 2 +
17 tests/check/meson.build | 46 +++++++++++++-
18 tests/files/testfile | 80 ++++++++++++++++++++++++
19 5 files changed, 170 insertions(+), 1 deletion(-)
20 create mode 100644 build-aux/gen-installed-test-desc.py
21 create mode 100644 build-aux/gen-installed-test-shscript.py
22 create mode 100644 tests/files/testfile
23
24diff --git a/build-aux/gen-installed-test-desc.py b/build-aux/gen-installed-test-desc.py
25new file mode 100644
26index 000000000..69e8a0faf
27--- /dev/null
28+++ b/build-aux/gen-installed-test-desc.py
29@@ -0,0 +1,18 @@
30+import sys
31+import os
32+import argparse
33+
34+def write_template(filename, data):
35+ with open(filename, 'w') as f:
36+ f.write(data)
37+
38+def build_template(testdir, testname):
39+ return "[Test]\nType=session\nExec={}\n".format(os.path.join(testdir, testname))
40+
41+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
42+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
43+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
44+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
45+args = argparser.parse_args()
46+
47+write_template(args.output, build_template(args.test_execdir, args.testname))
48diff --git a/build-aux/gen-installed-test-shscript.py b/build-aux/gen-installed-test-shscript.py
49new file mode 100644
50index 000000000..5da86fb37
51--- /dev/null
52+++ b/build-aux/gen-installed-test-shscript.py
53@@ -0,0 +1,25 @@
54+import sys
55+import os
56+import argparse
57+
58+def write_template(filename, data):
59+ with open(filename, 'w') as f:
60+ f.write(data)
61+
62+def build_template(testdir, testname):
63+ return ''.join([
64+ "#!/usr/bin/env sh\n",
65+ "export GST_STATE_IGNORE_ELEMENTS=''\n",
66+ "export CK_DEFAULT_TIMEOUT=20\n",
67+ "export GST_PLUGIN_LOADING_WHITELIST='gstreamer'\n",
68+ "{}\n".format(os.path.join(testdir, testname)),
69+ ])
70+
71+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
72+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
73+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
74+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
75+args = argparser.parse_args()
76+
77+write_template(args.output, build_template(args.test_execdir, args.testname))
78+os.chmod(args.output, 0o755)
79diff --git a/meson_options.txt b/meson_options.txt
80index 72c3997e2..346c423d4 100644
81--- a/meson_options.txt
82+++ b/meson_options.txt
83@@ -15,6 +15,8 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
84 option('memory-alignment', type: 'combo',
85 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
86 value: 'malloc')
87+option('installed-tests', type : 'boolean', value : false, description : 'enable installed tests')
88+option('test-files-path', type : 'string', description : 'Path where to find test files')
89
90 # Feature options
91 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
92diff --git a/tests/check/meson.build b/tests/check/meson.build
93index a617cf159..e629131c5 100644
94--- a/tests/check/meson.build
95+++ b/tests/check/meson.build
96@@ -120,11 +120,17 @@ if add_languages('cpp', native: false, required: false)
97 ]
98 endif
99
100+test_files_path = get_option('test-files-path')
101+if test_files_path == ''
102+ test_files_path = meson.current_source_dir() + '/../files'
103+endif
104+message('Using path "@0@" as the path to read test files from'.format(test_files_path))
105+
106 test_defines = [
107 '-UG_DISABLE_ASSERT',
108 '-UG_DISABLE_CAST_CHECKS',
109 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
110- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
111+ '-DTESTFILE="@0@"'.format(test_files_path + '/testfile'),
112 '-DGST_DISABLE_DEPRECATED',
113 ]
114
115@@ -138,6 +144,14 @@ endif
116 glib_deps = [gio_dep, gobject_dep, gmodule_dep, glib_dep]
117 gst_deps = [gst_dep, gst_base_dep, gst_check_dep, gst_net_dep, gst_controller_dep]
118
119+installed_tests_datadir = join_paths(prefix, get_option('datadir'), 'installed-tests', 'gstreamer-1.0')
120+installed_tests_execdir = join_paths(prefix, libexecdir, 'installed-tests', 'gstreamer-1.0')
121+installed_tests_enabled = get_option('installed-tests')
122+
123+python = import('python').find_installation()
124+gen_installed_test_desc = files('../../build-aux/gen-installed-test-desc.py')
125+gen_installed_test_shscript = files('../../build-aux/gen-installed-test-shscript.py')
126+
127 foreach t : core_tests
128 fname = t[0]
129 test_name = fname.split('.')[0].underscorify()
130@@ -151,8 +165,38 @@ foreach t : core_tests
131 include_directories : [configinc],
132 link_with : link_with_libs,
133 dependencies : test_deps + glib_deps + gst_deps,
134+ install_dir: installed_tests_execdir,
135+ install: installed_tests_enabled
136 )
137
138+ if installed_tests_enabled
139+ installed_test_shscript = test_name + '.sh'
140+ shscript = custom_target (test_name + '_shscript',
141+ output: installed_test_shscript,
142+ command: [
143+ python,
144+ gen_installed_test_shscript,
145+ '--test-execdir=@0@'.format(installed_tests_execdir),
146+ '--testname=@0@'.format(test_name),
147+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_shscript)),
148+ ],
149+ install: true,
150+ install_dir: installed_tests_execdir)
151+
152+ installed_test_desc = test_name + '.test'
153+ data = custom_target(test_name + '_desc',
154+ output: installed_test_desc,
155+ command: [
156+ python,
157+ gen_installed_test_desc,
158+ '--test-execdir=@0@'.format(installed_tests_execdir),
159+ '--testname=@0@'.format(installed_test_shscript),
160+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_desc)),
161+ ],
162+ install: true,
163+ install_dir: installed_tests_datadir)
164+ endif
165+
166 env = environment()
167 env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
168 env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
169diff --git a/tests/files/testfile b/tests/files/testfile
170new file mode 100644
171index 000000000..89954e0e2
172--- /dev/null
173+++ b/tests/files/testfile
174@@ -0,0 +1,80 @@
175+................................................................................
176+................................................................................
177+................................................................................
178+................................................................................
179+................................................................................
180+................................................................................
181+................................................................................
182+................................................................................
183+................................................................................
184+................................................................................
185+................................................................................
186+................................................................................
187+................................................................................
188+................................................................................
189+................................................................................
190+................................................................................
191+................................................................................
192+................................................................................
193+................................................................................
194+................................................................................
195+................................................................................
196+................................................................................
197+................................................................................
198+................................................................................
199+................................................................................
200+................................................................................
201+................................................................................
202+................................................................................
203+................................................................................
204+................................................................................
205+................................................................................
206+................................................................................
207+................................................................................
208+................................................................................
209+................................................................................
210+................................................................................
211+................................................................................
212+................................................................................
213+................................................................................
214+................................................................................
215+................................................................................
216+................................................................................
217+................................................................................
218+................................................................................
219+................................................................................
220+................................................................................
221+................................................................................
222+................................................................................
223+................................................................................
224+................................................................................
225+................................................................................
226+................................................................................
227+................................................................................
228+................................................................................
229+................................................................................
230+................................................................................
231+................................................................................
232+................................................................................
233+................................................................................
234+................................................................................
235+................................................................................
236+................................................................................
237+................................................................................
238+................................................................................
239+................................................................................
240+................................................................................
241+................................................................................
242+................................................................................
243+................................................................................
244+................................................................................
245+................................................................................
246+................................................................................
247+................................................................................
248+................................................................................
249+................................................................................
250+................................................................................
251+................................................................................
252+................................................................................
253+................................................................................
254+................................................................................
255--
2562.29.2
257
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
new file mode 100644
index 0000000000..0fd830f150
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
@@ -0,0 +1,48 @@
1From 7041bc5adf9501beb1428d8bbae6b351a6bf07f9 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sat, 24 Apr 2021 10:34:47 +0100
4Subject: [PATCH] tests: use a dictionaries for environment
5
6meson environment() can't be passed to configure_file and it is needed for installed_tests,
7use a dictionary as this is simplest solution to install the environment.
8
9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
10
11Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
12
13---
14 tests/check/meson.build | 21 +++++++++++++--------
15 1 file changed, 13 insertions(+), 8 deletions(-)
16
17diff --git a/tests/check/meson.build b/tests/check/meson.build
18index f2d400f..50dff7f 100644
19--- a/tests/check/meson.build
20+++ b/tests/check/meson.build
21@@ -160,14 +160,19 @@ foreach t : core_tests
22 install: installed_tests_enabled,
23 )
24
25- env = environment()
26- env.set('GST_PLUGIN_PATH_1_0', meson.project_build_root())
27- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
28- env.set('GST_STATE_IGNORE_ELEMENTS', '')
29- env.set('CK_DEFAULT_TIMEOUT', '20')
30- env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
31- env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
32- env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
33+ # meson environment object can't be passed to configure_file and
34+ # installed tests uses configure_file to install the environment.
35+ # use a dictionary as this is the simplest solution
36+ # to install the environment.
37+ env = {
38+ 'GST_PLUGIN_PATH_1_0': meson.project_build_root(),
39+ 'GST_PLUGIN_SYSTEM_PATH_1_0': '',
40+ 'GST_STATE_IGNORE_ELEMENTS': '',
41+ 'CK_DEFAULT_TIMEOUT': '20',
42+ 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name),
43+ 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner',
44+ 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer',
45+ }
46
47 if installed_tests_enabled
48 test_conf = configuration_data()
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
new file mode 100644
index 0000000000..5689dc9fbb
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
@@ -0,0 +1,72 @@
1From 1b1d1ce4227b6bea7c7def5dac4a663486e070c2 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 2 May 2021 01:58:01 +0100
4Subject: [PATCH] tests: add helper script to run the installed_tests
5
6- this is a bash script that will run the installed_tests
7with some of the environment variables used in the meson
8testing framework.
9
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13
14---
15 tests/check/meson.build | 17 +++++++++++++++++
16 tests/check/template.sh.in | 9 +++++++++
17 tests/check/template.test.in | 2 +-
18 3 files changed, 27 insertions(+), 1 deletion(-)
19 create mode 100755 tests/check/template.sh.in
20
21diff --git a/tests/check/meson.build b/tests/check/meson.build
22index 50dff7f..2b9e979 100644
23--- a/tests/check/meson.build
24+++ b/tests/check/meson.build
25@@ -184,6 +184,23 @@ foreach t : core_tests
26 install_dir: installed_tests_metadir,
27 configuration: test_conf
28 )
29+
30+ # All the tests will be deployed on the target machine and
31+ # we use the home folder ~ for the registry which will then expand at runtime.
32+ # Using the /tmp/gstreamer-1.0/@0@.registry can be problematic as it mostly
33+ # is mounted using tmpfs and if the machine crash from some reason we can lost the registry
34+ # that is useful for debug propose of the tests itself.
35+ env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)}
36+
37+ # Set the full path for the test it self.
38+ env += {'TEST': '@0@/@1@'.format(join_paths(prefix, installed_tests_execdir), test_name)}
39+
40+ configure_file(
41+ input : 'template.sh.in',
42+ output: test_name + '.sh',
43+ install_dir: installed_tests_execdir,
44+ configuration : env,
45+ )
46 endif
47
48 test(test_name, exe, env: env, timeout : 3 * 60)
49diff --git a/tests/check/template.sh.in b/tests/check/template.sh.in
50new file mode 100755
51index 0000000..cf7d31b
52--- /dev/null
53+++ b/tests/check/template.sh.in
54@@ -0,0 +1,9 @@
55+#!/bin/sh
56+
57+set -ax
58+
59+CK_DEFAULT_TIMEOUT="@CK_DEFAULT_TIMEOUT@"
60+GST_PLUGIN_LOADING_WHITELIST="@GST_PLUGIN_LOADING_WHITELIST@"
61+GST_REGISTRY=@GST_REGISTRY@
62+GST_STATE_IGNORE_ELEMENTS="@GST_STATE_IGNORE_ELEMENTS@"
63+exec @TEST@
64diff --git a/tests/check/template.test.in b/tests/check/template.test.in
65index f701627..b74ef6a 100644
66--- a/tests/check/template.test.in
67+++ b/tests/check/template.test.in
68@@ -1,3 +1,3 @@
69 [Test]
70 Type=session
71-Exec=@installed_tests_dir@/@program@
72+Exec=@installed_tests_dir@/@program@.sh
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
new file mode 100755
index 0000000000..7d0312005f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
@@ -0,0 +1,16 @@
1#! /bin/sh
2
3# Multiply all timeouts by ten so they're more likely to work
4# on a loaded system.
5export CK_TIMEOUT_MULTIPLIER=5
6
7# Skip some tests that we know are problematic
8export GST_CHECKS_IGNORE=""
9# gstnetclientclock.c:test_functioning is very sensitive to load
10GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning"
11
12# aggregator.c:test_infinite_seek_50_src_live is known to be flaky
13# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410
14GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_infinite_seek_50_src_live"
15
16gnome-desktop-testing-runner gstreamer
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb
index 9cb07726ed..8965497d01 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.3.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb
@@ -4,24 +4,25 @@ It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime.
4HOMEPAGE = "http://gstreamer.freedesktop.org/" 4HOMEPAGE = "http://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" 5BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
6SECTION = "multimedia" 6SECTION = "multimedia"
7LICENSE = "LGPLv2+" 7LICENSE = "LGPL-2.1-or-later"
8 8
9DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native" 9DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
10 10
11inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection 11inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
12 12
13LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ 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 = "${WORKDIR}/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://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \ 19 file://run-ptest \
20 file://0002-Remove-unused-valgrind-detection.patch \ 20 file://0001-tests-respect-the-idententaion-used-in-meson.patch \
21 file://0003-meson-Add-option-for-installed-tests.patch \ 21 file://0002-tests-add-support-for-install-the-tests.patch \
22 file://0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.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 " 24 "
24SRC_URI[sha256sum] = "0c2e09e18f2df69a99b5cb3bd53c597b3cc2e35cf6c98043bb86a66f3d312100" 25SRC_URI[sha256sum] = "3d16259e9dab8b002c57ce208a09b350d8282f5b0197306c0cdba9a0d0799744"
25 26
26PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ 27PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
27 check \ 28 check \
@@ -30,8 +31,9 @@ PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
30 31
31PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false" 32PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false"
32PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false" 33PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false"
34PACKAGECONFIG[coretracers] = "-Dcoretracers=enabled,-Dcoretracers=disabled"
33PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled" 35PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled"
34PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled-tests=true,-Dtests=disabled -Dinstalled-tests=false" 36PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled_tests=true,-Dtests=disabled -Dinstalled_tests=false"
35PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" 37PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
36PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils" 38PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils"
37PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion" 39PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion"
@@ -60,11 +62,13 @@ GIR_MESON_DISABLE_FLAG = "disabled"
60PACKAGES += "${PN}-bash-completion" 62PACKAGES += "${PN}-bash-completion"
61 63
62# Add the core element plugins to the main package 64# Add the core element plugins to the main package
63FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" 65FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
64FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" 66FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
65FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" 67FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
66FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb" 68FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
69
70RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-iso8859-5"
67 71
68CVE_PRODUCT = "gstreamer" 72CVE_PRODUCT = "gstreamer"
69 73
70require gstreamer1.0-ptest.inc 74PTEST_BUILD_HOST_FILES = ""
diff --git a/meta/recipes-multimedia/lame/lame_3.100.bb b/meta/recipes-multimedia/lame/lame_3.100.bb
index d007e0a495..5b42795f4e 100644
--- a/meta/recipes-multimedia/lame/lame_3.100.bb
+++ b/meta/recipes-multimedia/lame/lame_3.100.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "LAME is an educational tool to be used for learning about MP3 enc
3HOMEPAGE = "https://lame.sourceforge.io/" 3HOMEPAGE = "https://lame.sourceforge.io/"
4BUGTRACKER = "http://sourceforge.net/tracker/?group_id=290&atid=100290" 4BUGTRACKER = "http://sourceforge.net/tracker/?group_id=290&atid=100290"
5SECTION = "console/utils" 5SECTION = "console/utils"
6LICENSE = "LGPLv2+" 6LICENSE = "LGPL-2.0-or-later"
7LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9 \ 7LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9 \
8 file://include/lame.h;beginline=1;endline=20;md5=a2258182c593c398d15a48262130a92b \ 8 file://include/lame.h;beginline=1;endline=20;md5=a2258182c593c398d15a48262130a92b \
9" 9"
@@ -20,7 +20,7 @@ SRC_URI[sha256sum] = "ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175
20inherit autotools pkgconfig 20inherit autotools pkgconfig
21 21
22PACKAGES += "libmp3lame libmp3lame-dev" 22PACKAGES += "libmp3lame libmp3lame-dev"
23FILES_${PN} = "${bindir}/lame" 23FILES:${PN} = "${bindir}/lame"
24FILES_libmp3lame = "${libdir}/libmp3lame.so.*" 24FILES:libmp3lame = "${libdir}/libmp3lame.so.*"
25FILES_libmp3lame-dev = "${includedir} ${libdir}/*" 25FILES:libmp3lame-dev = "${includedir} ${libdir}/*"
26FILES_${PN}-dev = "" 26FILES:${PN}-dev = ""
diff --git a/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch b/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch
deleted file mode 100644
index 5168100f3a..0000000000
--- a/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch
+++ /dev/null
@@ -1,89 +0,0 @@
1It makes much more sense to control our own CFLAGS and avoiding fPIC breaks
2some arches too. Assume we know what we're doing and remove all the messing
3around.
4
5RP 23/2/10
6
7Upstream-Status: Inappropriate [configuration]
8
9Index: a52dec-0.7.4/configure.in
10===================================================================
11--- a52dec-0.7.4.orig/configure.in 2010-02-23 14:51:50.000000000 +0000
12+++ a52dec-0.7.4/configure.in 2010-02-23 14:52:36.000000000 +0000
13@@ -14,62 +14,6 @@
14 AC_PROG_CC
15 AC_PROG_GCC_TRADITIONAL
16
17-if test x"$GCC" = x"yes"; then
18-
19- dnl GCC-specific flags - try to optimize them sometime
20- dnl -Wall -Werror moved to the end to not disturb the configure script
21-
22- dnl -O3
23- changequote(<<,>>)
24- OPT_CFLAGS=`echo "$CFLAGS"|sed "s/-O[0-9]*//g"`
25- changequote([,])
26- OPT_CFLAGS="$OPT_CFLAGS -O3"
27- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS])
28-
29- dnl -fomit-frame-pointer
30- OPT_CFLAGS="$CFLAGS -fomit-frame-pointer"
31- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS])
32-
33- dnl arch-specific flags
34- case "$host" in
35- i?86-* | k?-*)
36- case "$host" in
37- i386-*) OPT_CFLAGS="$CFLAGS -mcpu=i386";;
38- i486-*) OPT_CFLAGS="$CFLAGS -mcpu=i486";;
39- i586-*) OPT_CFLAGS="$CFLAGS -mcpu=pentium";;
40- i686-*) OPT_CFLAGS="$CFLAGS -mcpu=pentiumpro";;
41- k6-*) OPT_CFLAGS="$CFLAGS -mcpu=k6";;
42- esac
43- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
44- sparc-* | sparc64-*)
45- OPT_CFLAGS="$CFLAGS -mtune=ultrasparc"
46- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
47- mips-sgi-irix6.*) dnl do we need to be that specific ?
48- OPT_CFLAGS="$CFLAGS -mabi=64"
49- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
50- esac
51-elif test x"$CC" = x"tcc" -a x"`$CC -version 2>&1 | grep TenDRA`" != x""; then
52- dnl TenDRA portability checking compiler
53- TENDRA=yes
54- CFLAGS="-Xp -Yansi -f`pwd`/include/tendra.h -DELIDE_CODE"
55- enable_mlib=no
56- enable_oss=no
57- enable_solaris_audio=no
58-elif test x"$CC" = x"icc" -a x"`$CC -V 2>&1 | grep Intel`" != x""; then
59- dnl Intel C++ compiler
60- CFLAGS="-g -O3 -unroll -ip"
61-else
62- dnl non-gcc flags - we probably need exact configuration triplets here.
63- case "$host" in
64- mips-sgi-irix6.*)
65- OPT_CFLAGS="$CFLAGS -64"
66- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
67- sparc-sun-solaris*)
68- OPT_CFLAGS="$CFLAGS -xCC -fast -xO5"
69- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
70- esac
71-fi
72-
73 dnl Checks for libtool - this must be done after we set cflags
74 AC_DISABLE_SHARED
75 AC_LIBTOOL_WIN32_DLL
76Index: a52dec-0.7.4/liba52/configure.incl
77===================================================================
78--- a52dec-0.7.4.orig/liba52/configure.incl 2010-02-23 14:51:44.000000000 +0000
79+++ a52dec-0.7.4/liba52/configure.incl 2010-02-23 14:51:59.000000000 +0000
80@@ -1,9 +1,6 @@
81 AC_SUBST([LIBA52_CFLAGS])
82 AC_SUBST([LIBA52_LIBS])
83
84-dnl avoid -fPIC when possible
85-LIBA52_CFLAGS="$LIBA52_CFLAGS -prefer-non-pic"
86-
87 AC_ARG_ENABLE([double],
88 [ --enable-double use double-precision samples])
89 if test x"$enable_double" = x"yes"; then
diff --git a/meta/recipes-multimedia/liba52/liba52_0.7.4.bb b/meta/recipes-multimedia/liba52/liba52_0.7.4.bb
deleted file mode 100644
index 0ef5d947c3..0000000000
--- a/meta/recipes-multimedia/liba52/liba52_0.7.4.bb
+++ /dev/null
@@ -1,29 +0,0 @@
1SUMMARY = "ATSC A/52 surround sound stream decoder"
2DESCRIPTION = "Library for decoding ATSC A/52 streams. The A/52 standard \
3is used in a variety of applications, including digital television \
4and DVD. It is also known as AC-3."
5HOMEPAGE = "http://liba52.sourceforge.net/"
6LICENSE = "GPLv2+"
7LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
8 file://include/a52.h;beginline=1;endline=12;md5=81152ceb3562bf20a60d1b6018175dd1"
9SECTION = "libs"
10PR = "r4"
11
12inherit autotools
13
14SRC_URI = "http://liba52.sourceforge.net/files/a52dec-${PV}.tar.gz \
15 file://buildcleanup.patch"
16
17SRC_URI[md5sum] = "caa9f5bc44232dc8aeea773fea56be80"
18SRC_URI[sha256sum] = "a21d724ab3b3933330194353687df82c475b5dfb997513eef4c25de6c865ec33"
19
20UPSTREAM_CHECK_URI = "http://liba52.sourceforge.net/downloads.html"
21
22S = "${WORKDIR}/a52dec-${PV}"
23
24EXTRA_OECONF = " --enable-shared "
25
26PACKAGES =+ "a52dec a52dec-doc"
27
28FILES_a52dec = " ${bindir}/* "
29FILES_a52dec-doc = " ${mandir}/man1/* "
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch b/meta/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch
deleted file mode 100644
index 54f49f6f23..0000000000
--- a/meta/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From 91fcf66b9182c75cd2b96d88991d5a1c6307d4b4 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Wed, 2 Aug 2017 16:27:52 +0300
4Subject: [PATCH] Fix gperf 3.1 incompatibility.
5
6Upstream-Status: Pending
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8---
9 compat.h | 2 +-
10 frametype.h | 2 +-
11 2 files changed, 2 insertions(+), 2 deletions(-)
12
13diff --git a/compat.h b/compat.h
14index 8af71ec..b3d80d9 100644
15--- a/compat.h
16+++ b/compat.h
17@@ -34,7 +34,7 @@ struct id3_compat {
18 };
19
20 struct id3_compat const *id3_compat_lookup(register char const *,
21- register unsigned int);
22+ register size_t);
23
24 int id3_compat_fixup(struct id3_tag *);
25
26diff --git a/frametype.h b/frametype.h
27index dd064b2..b5b7593 100644
28--- a/frametype.h
29+++ b/frametype.h
30@@ -37,6 +37,6 @@ extern struct id3_frametype const id3_frametype_unknown;
31 extern struct id3_frametype const id3_frametype_obsolete;
32
33 struct id3_frametype const *id3_frametype_lookup(register char const *,
34- register unsigned int);
35+ register size_t);
36
37 # endif
38--
392.13.2
40
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch b/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch
deleted file mode 100644
index 10e089018c..0000000000
--- a/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1libid3tag: patch for CVE-2004-2779
2
3The patch comes from
4https://sources.debian.org/patches/libid3tag/0.15.1b-13/10_utf16.dpatch
5
6Upstream-Status: Pending
7
8CVE: CVE-2004-2779
9CVE: CVE-2017-11551
10
11Signed-off-by: Changqing Li <changqing.li@windriver.com>
12
13diff -urNad libid3tag-0.15.1b/utf16.c /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c
14--- libid3tag-0.15.1b/utf16.c 2006-01-13 15:26:29.000000000 +0100
15+++ /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c 2006-01-13 15:27:19.000000000 +0100
16@@ -282,5 +282,18 @@
17
18 free(utf16);
19
20+ if (end == *ptr && length % 2 != 0)
21+ {
22+ /* We were called with a bogus length. It should always
23+ * be an even number. We can deal with this in a few ways:
24+ * - Always give an error.
25+ * - Try and parse as much as we can and
26+ * - return an error if we're called again when we
27+ * already tried to parse everything we can.
28+ * - tell that we parsed it, which is what we do here.
29+ */
30+ (*ptr)++;
31+ }
32+
33 return ucs4;
34 }
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch b/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch
deleted file mode 100644
index 38d40c3632..0000000000
--- a/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1Upstream-Status: Inappropriate [configuration]
2
3Index: libid3tag-0.15.1b/Makefile.am
4===================================================================
5--- libid3tag-0.15.1b.orig/Makefile.am 2009-07-29 09:29:20.000000000 +0100
6+++ libid3tag-0.15.1b/Makefile.am 2009-07-29 09:29:47.000000000 +0100
7@@ -27,6 +27,9 @@
8 lib_LTLIBRARIES = libid3tag.la
9 include_HEADERS = id3tag.h
10
11+pkgconfigdir = $(libdir)/pkgconfig
12+pkgconfig_DATA = id3tag.pc
13+
14 ## From the libtool documentation on library versioning:
15 ##
16 ## CURRENT
17Index: libid3tag-0.15.1b/configure.ac
18===================================================================
19--- libid3tag-0.15.1b.orig/configure.ac 2009-07-29 09:27:15.000000000 +0100
20+++ libid3tag-0.15.1b/configure.ac 2009-07-29 09:27:45.000000000 +0100
21@@ -201,5 +201,5 @@
22 dnl AC_SUBST(LTLIBOBJS)
23
24 AC_CONFIG_FILES([Makefile msvc++/Makefile \
25- libid3tag.list])
26+ libid3tag.list id3tag.pc])
27 AC_OUTPUT
28Index: libid3tag-0.15.1b/id3tag.pc.in
29===================================================================
30--- /dev/null 1970-01-01 00:00:00.000000000 +0000
31+++ libid3tag-0.15.1b/id3tag.pc.in 2009-07-29 09:29:10.000000000 +0100
32@@ -0,0 +1,11 @@
33+prefix=@prefix@
34+exec_prefix=@exec_prefix@
35+libdir=@libdir@
36+includedir=@includedir@
37+
38+Name: id3tag
39+Description: ID3 tag reading library
40+Requires:
41+Version: @VERSION@
42+Libs: -L${libdir} -lid3tag -lz
43+Cflags: -I${includedir}
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch b/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
deleted file mode 100644
index 0d1d0dc381..0000000000
--- a/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1configure contains CFLAGS filtering code which was removing our prefix-map
2flags. We need those to generate reproducible binaries. Allow them through.
3
4Upstream-Status: Pending
5Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
6
7Index: libid3tag-0.15.1b/configure.ac
8===================================================================
9--- libid3tag-0.15.1b.orig/configure.ac
10+++ libid3tag-0.15.1b/configure.ac
11@@ -99,6 +99,10 @@ do
12 -mno-cygwin)
13 shift
14 ;;
15+ -fmacro-prefix-map*|-fdebug-prefix-map*)
16+ CFLAGS="$CFLAGS $1"
17+ shift
18+ ;;
19 -m*)
20 arch="$arch $1"
21 shift
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch b/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch
deleted file mode 100644
index 2845fb1d3a..0000000000
--- a/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1Upstream-Status: Submitted [https://sourceforge.net/tracker/?func=detail&aid=3599280&group_id=12349&atid=112349]
2
3Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
4diff -Nurd libid3tag-0.15.1b/configure.ac libid3tag-0.15.1b/configure.ac
5--- libid3tag-0.15.1b/configure.ac 2004-01-24 01:22:46.000000000 +0200
6+++ libid3tag-0.15.1b/configure.ac 2013-01-03 06:41:02.734835014 +0200
7@@ -28,7 +28,7 @@
8
9-AM_INIT_AUTOMAKE
10+AM_INIT_AUTOMAKE([foreign])
11
12-AM_CONFIG_HEADER([config.h])
13+AC_CONFIG_HEADERS([config.h])
14
15 dnl System type.
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch b/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch
deleted file mode 100644
index f0867b5f01..0000000000
--- a/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1In case of an unknown/invalid encoding, id3_parse_string() will
2return NULL, but the return value wasn't checked resulting
3in segfault in id3_ucs4_length(). This is the only place
4the return value wasn't checked.
5
6Patch taken from Debian:
7https://sources.debian.org/patches/libid3tag/0.15.1b-14/11_unknown_encoding.dpatch/
8
9CVE: CVE-2017-11550
10Upstream-Status: Pending
11Signed-off-by: Ross Burton <ross.burton@intel.com>
12
13diff -urNad libid3tag-0.15.1b~/compat.gperf libid3tag-0.15.1b/compat.gperf
14--- libid3tag-0.15.1b~/compat.gperf 2004-01-23 09:41:32.000000000 +0000
15+++ libid3tag-0.15.1b/compat.gperf 2007-01-14 14:36:53.000000000 +0000
16@@ -236,6 +236,10 @@
17
18 encoding = id3_parse_uint(&data, 1);
19 string = id3_parse_string(&data, end - data, encoding, 0);
20+ if (!string)
21+ {
22+ continue;
23+ }
24
25 if (id3_ucs4_length(string) < 4) {
26 free(string);
27diff -urNad libid3tag-0.15.1b~/parse.c libid3tag-0.15.1b/parse.c
28--- libid3tag-0.15.1b~/parse.c 2004-01-23 09:41:32.000000000 +0000
29+++ libid3tag-0.15.1b/parse.c 2007-01-14 14:37:34.000000000 +0000
30@@ -165,6 +165,9 @@
31 case ID3_FIELD_TEXTENCODING_UTF_8:
32 ucs4 = id3_utf8_deserialize(ptr, length);
33 break;
34+ default:
35+ /* FIXME: Unknown encoding! Print warning? */
36+ return NULL;
37 }
38
39 if (ucs4 && !full) {
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb b/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
deleted file mode 100644
index 80581765ac..0000000000
--- a/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
+++ /dev/null
@@ -1,28 +0,0 @@
1SUMMARY = "Library for interacting with ID3 tags in MP3 files"
2HOMEPAGE = "http://sourceforge.net/projects/mad/"
3BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
6 file://COPYRIGHT;md5=5e6279efb87c26c6e5e7a68317a6a87a \
7 file://version.h;beginline=1;endline=8;md5=86ac68b67f054b7afde9e149bbc3fe63"
8SECTION = "libs"
9DEPENDS = "zlib gperf-native"
10PR = "r7"
11
12SRC_URI = "${SOURCEFORGE_MIRROR}/mad/libid3tag-${PV}.tar.gz \
13 file://addpkgconfig.patch \
14 file://obsolete_automake_macros.patch \
15 file://0001-Fix-gperf-3.1-incompatibility.patch \
16 file://10_utf16.patch \
17 file://unknown-encoding.patch \
18 file://cflags_filter.patch \
19 "
20UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/mad/files/libid3tag/"
21UPSTREAM_CHECK_REGEX = "/projects/mad/files/libid3tag/(?P<pver>.*)/$"
22
23SRC_URI[md5sum] = "e5808ad997ba32c498803822078748c3"
24SRC_URI[sha256sum] = "63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151"
25
26S = "${WORKDIR}/libid3tag-${PV}"
27
28inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/libogg/libogg_1.3.4.bb b/meta/recipes-multimedia/libogg/libogg_1.3.5.bb
index c4004619b9..b4f02e404c 100644
--- a/meta/recipes-multimedia/libogg/libogg_1.3.4.bb
+++ b/meta/recipes-multimedia/libogg/libogg_1.3.5.bb
@@ -11,7 +11,7 @@ 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] = "eadef24aad6e3e8379ba0d14971fd64a" 14SRC_URI[md5sum] = "3178c98341559657a15b185bf5d700a5"
15SRC_URI[sha256sum] = "c163bc12bc300c401b6aa35907ac682671ea376f13ae0969a220f7ddf71893fe" 15SRC_URI[sha256sum] = "c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705"
16 16
17inherit autotools pkgconfig 17inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
index 82cdaf54c7..4564d619ae 100644
--- a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
+++ b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Bellagio is an opensource implementation of the Khronos OpenMAX \
3 Integration Layer API to access multimedia components." 3 Integration Layer API to access multimedia components."
4HOMEPAGE = "http://omxil.sourceforge.net/" 4HOMEPAGE = "http://omxil.sourceforge.net/"
5 5
6LICENSE = "LGPLv2.1+" 6LICENSE = "LGPL-2.1-or-later"
7LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'amr', 'commercial', '', d)}" 7LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'amr', 'commercial', '', d)}"
8LIC_FILES_CHKSUM = "file://COPYING;md5=ae6f0f4dbc7ac193b50f323a6ae191cb \ 8LIC_FILES_CHKSUM = "file://COPYING;md5=ae6f0f4dbc7ac193b50f323a6ae191cb \
9 file://src/omxcore.h;beginline=1;endline=27;md5=806b1e5566c06486fe8e42b461e03a90" 9 file://src/omxcore.h;beginline=1;endline=27;md5=806b1e5566c06486fe8e42b461e03a90"
@@ -36,10 +36,10 @@ PACKAGECONFIG[amr] = "--enable-amr,,"
36# The .so files under ${libdir}/bellagio are not intended to be versioned and symlinked. 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. 37# Make sure they get packaged in the main package.
38# 38#
39FILES_${PN} += "${libdir}/bellagio/*.so \ 39FILES:${PN} += "${libdir}/bellagio/*.so \
40 ${libdir}/omxloaders/*${SOLIBS}" 40 ${libdir}/omxloaders/*${SOLIBS}"
41FILES_${PN}-staticdev += "${libdir}/bellagio/*.a \ 41FILES:${PN}-staticdev += "${libdir}/bellagio/*.a \
42 ${libdir}/omxloaders/*.a" 42 ${libdir}/omxloaders/*.a"
43FILES_${PN}-dev += "${libdir}/bellagio/*.la \ 43FILES:${PN}-dev += "${libdir}/bellagio/*.la \
44 ${libdir}/omxloaders/*.la \ 44 ${libdir}/omxloaders/*.la \
45 ${libdir}/omxloaders/*${SOLIBSDEV}" 45 ${libdir}/omxloaders/*${SOLIBSDEV}"
diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.37.bb b/meta/recipes-multimedia/libpng/libpng_1.6.43.bb
index 0b0af756f6..f1febd0a02 100644
--- a/meta/recipes-multimedia/libpng/libpng_1.6.37.bb
+++ b/meta/recipes-multimedia/libpng/libpng_1.6.43.bb
@@ -5,16 +5,15 @@ library for use in applications that read, create, and manipulate PNG \
5HOMEPAGE = "http://www.libpng.org/" 5HOMEPAGE = "http://www.libpng.org/"
6SECTION = "libs" 6SECTION = "libs"
7LICENSE = "Libpng" 7LICENSE = "Libpng"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=b0085051bf265bac2bfc38bc89f50000" 8LIC_FILES_CHKSUM = "file://LICENSE;md5=0fdbfbe10fc294a6fca24dc76134222a"
9DEPENDS = "zlib" 9DEPENDS = "zlib"
10 10
11LIBV = "16" 11LIBV = "16"
12 12
13SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz" 13SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz"
14SRC_URI[md5sum] = "015e8e15db1eecde5f2eb9eb5b6e59e9" 14SRC_URI[sha256sum] = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c"
15SRC_URI[sha256sum] = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca"
16 15
17MIRRORS += "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/older-releases/" 16MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/"
18 17
19UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html" 18UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html"
20 19
@@ -23,13 +22,12 @@ BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
23inherit autotools binconfig-disabled pkgconfig 22inherit autotools binconfig-disabled pkgconfig
24 23
25# Work around missing symbols 24# Work around missing symbols
26EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}" 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}"
27 28
28PACKAGES =+ "${PN}-tools" 29PACKAGES =+ "${PN}-tools"
29 30
30FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp" 31FILES:${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp"
31 32
32BBCLASSEXTEND = "native nativesdk" 33BBCLASSEXTEND = "native nativesdk"
33
34# CVE-2019-17371 is actually a memory leak in gif2png 2.x
35CVE_CHECK_WHITELIST += "CVE-2019-17371"
diff --git a/meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch b/meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch
deleted file mode 100644
index d19b514e6b..0000000000
--- a/meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch
+++ /dev/null
@@ -1,62 +0,0 @@
1From 957ebce3837588f71016e37ffaf9aad0a9d41cec Mon Sep 17 00:00:00 2001
2From: Tanu Kaskinen <tanuk@iki.fi>
3Date: Fri, 23 Sep 2016 12:02:06 +0300
4Subject: [PATCH] configure.ac: improve alsa handling
5
6Three improvements:
7
81) "--enable-alsa" or "--disable-alsa" caused a warning about an
9unsupported configure option, because AC_ARG_ENABLE was not used.
10
112) If alsa was disabled, the "Have ALSA" item in the summary would print
12an empty string instead of "no".
13
143) If "--enable-alsa" was passed to configure, but the headers were not
15found, configure would still succeed (with alsa disabled). It's better
16to fail and abort configure if a feature that was explicitly requested
17can't be enabled.
18
19Upstream-Status: Submitted [sent to src@mega-nerd.com]
20
21Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
22---
23 configure.ac | 9 ++++++++-
24 1 file changed, 8 insertions(+), 1 deletion(-)
25
26diff --git a/configure.ac b/configure.ac
27index 474c6ab..bad597e 100644
28--- a/configure.ac
29+++ b/configure.ac
30@@ -101,6 +101,9 @@ AC_ARG_ENABLE(cpu-clip,
31 AC_HELP_STRING([--disable-cpu-clip], [disable tricky cpu specific clipper]),
32 ac_arg_cpu_clip="N", ac_arg_cpu_clip="Y")
33
34+AC_ARG_ENABLE(alsa,
35+ AC_HELP_STRING([--disable-alsa], [disable ALSA support in the varispeed-play example program]))
36+
37 #====================================================================================
38 # Check types and their sizes.
39
40@@ -194,6 +197,10 @@ if test x$enable_alsa != xno ; then
41 if test x$ac_cv_header_alsa_asoundlib_h = xyes ; then
42 ALSA_LIBS="-lasound"
43 enable_alsa=yes
44+ elif test x$enable_alsa = xyes ; then
45+ AC_MSG_ERROR(["ALSA headers not found"])
46+ else
47+ enable_alsa=no
48 fi
49 fi
50
51@@ -340,7 +347,7 @@ AC_MSG_RESULT([
52 Have FFTW : ................... ${ac_cv_fftw3}])
53
54 AC_MSG_RESULT([ Have libsndfile : ............. ${ac_cv_sndfile}])
55-AC_MSG_RESULT([ Have ALSA : ................... ${ac_cv_header_alsa_asoundlib_h}
56+AC_MSG_RESULT([ Have ALSA : ................... ${enable_alsa}
57 ])
58
59 AC_MSG_RESULT([ Installation directories :
60--
612.9.3
62
diff --git a/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
index 6dfc42b436..29d48fd333 100644
--- a/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb
+++ b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
@@ -1,27 +1,24 @@
1SUMMARY = "Audio Sample Rate Conversion library" 1SUMMARY = "Audio Sample Rate Conversion library"
2DESCRIPTION = "Also known as Secret Rabbit Code - a library for performing sample rate conversion of audio data." 2DESCRIPTION = "Also known as Secret Rabbit Code - a library for performing sample rate conversion of audio data."
3HOMEPAGE = "http://www.mega-nerd.com/SRC/" 3HOMEPAGE = "https://libsndfile.github.io/libsamplerate/"
4SECTION = "libs" 4SECTION = "libs"
5LICENSE = "BSD-2-Clause" 5LICENSE = "BSD-2-Clause"
6LIC_FILES_CHKSUM = "file://COPYING;md5=336d6faf40fb600bafb0061f4052f1f4 \ 6LIC_FILES_CHKSUM = "file://COPYING;md5=336d6faf40fb600bafb0061f4052f1f4 \
7 file://src/samplerate.c;beginline=1;endline=7;md5=5b6982a8c2811c7312c13cccbf55f55e" 7 file://src/samplerate.c;beginline=1;endline=7;md5=7a4238289dc36bfb70968ccaa5bd0d4f"
8DEPENDS = "libsndfile1" 8DEPENDS = "libsndfile1"
9PR = "r1"
10 9
11SRC_URI = "http://www.mega-nerd.com/SRC/libsamplerate-${PV}.tar.gz \ 10SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libsamplerate-${PV}.tar.xz \
12 file://0001-configure.ac-improve-alsa-handling.patch \
13" 11"
14 12
15SRC_URI[md5sum] = "2b78ae9fe63b36b9fbb6267fad93f259" 13SRC_URI[sha256sum] = "3258da280511d24b49d6b08615bbe824d0cacc9842b0e4caf11c52cf2b043893"
16SRC_URI[sha256sum] = "0a7eb168e2f21353fb6d84da152e4512126f7dc48ccb0be80578c565413444c1"
17 14
18CVE_PRODUCT = "libsamplerate" 15CVE_PRODUCT = "libsamplerate"
19 16
20UPSTREAM_CHECK_URI = "http://www.mega-nerd.com/SRC/download.html" 17GITHUB_BASE_URI = "https://github.com/libsndfile/libsamplerate/releases"
21 18
22S = "${WORKDIR}/libsamplerate-${PV}" 19S = "${WORKDIR}/libsamplerate-${PV}"
23 20
24inherit autotools pkgconfig 21inherit autotools pkgconfig github-releases
25 22
26# FFTW and ALSA are only used in tests and examples, so they don't affect 23# FFTW and ALSA are only used in tests and examples, so they don't affect
27# normal builds. It should be safe to ignore these, but explicitly disabling 24# normal builds. It should be safe to ignore these, but explicitly disabling
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/0001-a-ulaw-fix-multiple-buffer-overflows-432.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/0001-a-ulaw-fix-multiple-buffer-overflows-432.patch
deleted file mode 100644
index a4679cef2a..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/0001-a-ulaw-fix-multiple-buffer-overflows-432.patch
+++ /dev/null
@@ -1,107 +0,0 @@
1This patch fixes #429 (CVE-2018-19661 CVE-2018-19662) and #344 (CVE-2017-17456
2CVE-2017-17457). As per
3https://github.com/erikd/libsndfile/issues/344#issuecomment-448504425 it also
4fixes #317 (CVE-2017-14245 CVE-2017-14246).
5
6CVE: CVE-2017-14245 CVE-2017-14246
7CVE: CVE-2017-17456 CVE-2017-17457
8CVE: CVE-2018-19661 CVE-2018-19662
9
10Upstream-Status: Backport [8ddc442d539ca775d80cdbc7af17a718634a743f]
11Signed-off-by: Ross Burton <ross.burton@intel.com>
12
13From 39453899fe1bb39b2e041fdf51a85aecd177e9c7 Mon Sep 17 00:00:00 2001
14From: Changqing Li <changqing.li@windriver.com>
15Date: Mon, 7 Jan 2019 15:55:03 +0800
16Subject: [PATCH] a/ulaw: fix multiple buffer overflows (#432)
17
18i2ulaw_array() and i2alaw_array() fail to handle ptr [count] = INT_MIN
19properly, leading to buffer underflow. INT_MIN is a special value
20since - INT_MIN cannot be represented as int.
21
22In this case round - INT_MIN to INT_MAX and proceed as usual.
23
24f2ulaw_array() and f2alaw_array() fail to handle ptr [count] = NaN
25properly, leading to null pointer dereference.
26
27In this case, arbitrarily set the buffer value to 0.
28
29This commit fixes #429 (CVE-2018-19661 and CVE-2018-19662) and
30fixes #344 (CVE-2017-17456 and CVE-2017-17457).
31
32---
33 src/alaw.c | 9 +++++++--
34 src/ulaw.c | 9 +++++++--
35 2 files changed, 14 insertions(+), 4 deletions(-)
36
37diff --git a/src/alaw.c b/src/alaw.c
38index 063fd1a..4220224 100644
39--- a/src/alaw.c
40+++ b/src/alaw.c
41@@ -19,6 +19,7 @@
42 #include "sfconfig.h"
43
44 #include <math.h>
45+#include <limits.h>
46
47 #include "sndfile.h"
48 #include "common.h"
49@@ -326,7 +327,9 @@ s2alaw_array (const short *ptr, int count, unsigned char *buffer)
50 static inline void
51 i2alaw_array (const int *ptr, int count, unsigned char *buffer)
52 { while (--count >= 0)
53- { if (ptr [count] >= 0)
54+ { if (ptr [count] == INT_MIN)
55+ buffer [count] = alaw_encode [INT_MAX >> (16 + 4)] ;
56+ else if (ptr [count] >= 0)
57 buffer [count] = alaw_encode [ptr [count] >> (16 + 4)] ;
58 else
59 buffer [count] = 0x7F & alaw_encode [- ptr [count] >> (16 + 4)] ;
60@@ -346,7 +349,9 @@ f2alaw_array (const float *ptr, int count, unsigned char *buffer, float normfact
61 static inline void
62 d2alaw_array (const double *ptr, int count, unsigned char *buffer, double normfact)
63 { while (--count >= 0)
64- { if (ptr [count] >= 0)
65+ { if (!isfinite (ptr [count]))
66+ buffer [count] = 0 ;
67+ else if (ptr [count] >= 0)
68 buffer [count] = alaw_encode [lrint (normfact * ptr [count])] ;
69 else
70 buffer [count] = 0x7F & alaw_encode [- lrint (normfact * ptr [count])] ;
71diff --git a/src/ulaw.c b/src/ulaw.c
72index e50b4cb..b6070ad 100644
73--- a/src/ulaw.c
74+++ b/src/ulaw.c
75@@ -19,6 +19,7 @@
76 #include "sfconfig.h"
77
78 #include <math.h>
79+#include <limits.h>
80
81 #include "sndfile.h"
82 #include "common.h"
83@@ -827,7 +828,9 @@ s2ulaw_array (const short *ptr, int count, unsigned char *buffer)
84 static inline void
85 i2ulaw_array (const int *ptr, int count, unsigned char *buffer)
86 { while (--count >= 0)
87- { if (ptr [count] >= 0)
88+ { if (ptr [count] == INT_MIN)
89+ buffer [count] = ulaw_encode [INT_MAX >> (16 + 2)] ;
90+ else if (ptr [count] >= 0)
91 buffer [count] = ulaw_encode [ptr [count] >> (16 + 2)] ;
92 else
93 buffer [count] = 0x7F & ulaw_encode [-ptr [count] >> (16 + 2)] ;
94@@ -847,7 +850,9 @@ f2ulaw_array (const float *ptr, int count, unsigned char *buffer, float normfact
95 static inline void
96 d2ulaw_array (const double *ptr, int count, unsigned char *buffer, double normfact)
97 { while (--count >= 0)
98- { if (ptr [count] >= 0)
99+ { if (!isfinite (ptr [count]))
100+ buffer [count] = 0 ;
101+ else if (ptr [count] >= 0)
102 buffer [count] = ulaw_encode [lrint (normfact * ptr [count])] ;
103 else
104 buffer [count] = 0x7F & ulaw_encode [- lrint (normfact * ptr [count])] ;
105--
1062.7.4
107
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-12562.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-12562.patch
deleted file mode 100644
index 491dae3114..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-12562.patch
+++ /dev/null
@@ -1,96 +0,0 @@
1Heap-based Buffer Overflow in the psf_binheader_writef function in common.c in
2libsndfile through 1.0.28 allows remote attackers to cause a denial of service
3(application crash) or possibly have unspecified other impact.
4
5CVE: CVE-2017-12562
6Upstream-Status: Backport [cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8]
7Signed-off-by: Ross Burton <ross.burton@intel.com>
8
9From b6a9d7e95888ffa77d8c75ce3f03e6c7165587cd Mon Sep 17 00:00:00 2001
10From: =?UTF-8?q?J=C3=B6rn=20Heusipp?= <osmanx@problemloesungsmaschine.de>
11Date: Wed, 14 Jun 2017 12:25:40 +0200
12Subject: [PATCH] src/common.c: Fix heap buffer overflows when writing strings
13 in binheader
14
15Fixes the following problems:
16 1. Case 's' only enlarges the buffer by 16 bytes instead of size bytes.
17 2. psf_binheader_writef() enlarges the header buffer (if needed) prior to the
18 big switch statement by an amount (16 bytes) which is enough for all cases
19 where only a single value gets added. Cases 's', 'S', 'p' however
20 additionally write an arbitrary length block of data and again enlarge the
21 buffer to the required amount. However, the required space calculation does
22 not take into account the size of the length field which gets output before
23 the data.
24 3. Buffer size requirement calculation in case 'S' does not account for the
25 padding byte ("size += (size & 1) ;" happens after the calculation which
26 uses "size").
27 4. Case 'S' can overrun the header buffer by 1 byte when no padding is
28 involved
29 ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;" while
30 the buffer is only guaranteed to have "size" space available).
31 5. "psf->header.ptr [psf->header.indx] = 0 ;" in case 'S' always writes 1 byte
32 beyond the space which is guaranteed to be allocated in the header buffer.
33 6. Case 's' can overrun the provided source string by 1 byte if padding is
34 involved ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;"
35 where "size" is "strlen (strptr) + 1" (which includes the 0 terminator,
36 plus optionally another 1 which is padding and not guaranteed to be
37 readable via the source string pointer).
38
39Closes: https://github.com/erikd/libsndfile/issues/292
40---
41 src/common.c | 15 +++++++--------
42 1 file changed, 7 insertions(+), 8 deletions(-)
43
44diff --git a/src/common.c b/src/common.c
45index 1a6204ca..6b2a2ee9 100644
46--- a/src/common.c
47+++ b/src/common.c
48@@ -681,16 +681,16 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
49 /* Write a C string (guaranteed to have a zero terminator). */
50 strptr = va_arg (argptr, char *) ;
51 size = strlen (strptr) + 1 ;
52- size += (size & 1) ;
53
54- if (psf->header.indx + (sf_count_t) size >= psf->header.len && psf_bump_header_allocation (psf, 16))
55+ if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
56 return count ;
57
58 if (psf->rwf_endian == SF_ENDIAN_BIG)
59- header_put_be_int (psf, size) ;
60+ header_put_be_int (psf, size + (size & 1)) ;
61 else
62- header_put_le_int (psf, size) ;
63+ header_put_le_int (psf, size + (size & 1)) ;
64 memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;
65+ size += (size & 1) ;
66 psf->header.indx += size ;
67 psf->header.ptr [psf->header.indx - 1] = 0 ;
68 count += 4 + size ;
69@@ -703,16 +703,15 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
70 */
71 strptr = va_arg (argptr, char *) ;
72 size = strlen (strptr) ;
73- if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
74+ if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
75 return count ;
76 if (psf->rwf_endian == SF_ENDIAN_BIG)
77 header_put_be_int (psf, size) ;
78 else
79 header_put_le_int (psf, size) ;
80- memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;
81+ memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + (size & 1)) ;
82 size += (size & 1) ;
83 psf->header.indx += size ;
84- psf->header.ptr [psf->header.indx] = 0 ;
85 count += 4 + size ;
86 break ;
87
88@@ -724,7 +723,7 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
89 size = (size & 1) ? size : size + 1 ;
90 size = (size > 254) ? 254 : size ;
91
92- if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
93+ if (psf->header.indx + 1 + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, 1 + size))
94 return count ;
95
96 header_put_byte (psf, size) ;
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-14634.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-14634.patch
deleted file mode 100644
index 39b4ec1101..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-14634.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1From 85c877d5072866aadbe8ed0c3e0590fbb5e16788 Mon Sep 17 00:00:00 2001
2From: Fabian Greffrath <fabian@greffrath.com>
3Date: Thu, 28 Sep 2017 12:15:04 +0200
4Subject: [PATCH] double64_init: Check psf->sf.channels against upper bound
5
6This prevents division by zero later in the code.
7
8While the trivial case to catch this (i.e. sf.channels < 1) has already
9been covered, a crafted file may report a number of channels that is
10so high (i.e. > INT_MAX/sizeof(double)) that it "somehow" gets
11miscalculated to zero (if this makes sense) in the determination of the
12blockwidth. Since we only support a limited number of channels anyway,
13make sure to check here as well.
14
15CVE: CVE-2017-14634
16
17Closes: https://github.com/erikd/libsndfile/issues/318
18
19Upstream-Status: Backport [https://github.com/erikd/libsndfile/commit/85c877d5072866aadbe8ed0c3e0590fbb5e16788]
20
21Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
22Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
23---
24 src/double64.c | 2 +-
25 1 file changed, 1 insertion(+), 1 deletion(-)
26
27diff --git a/src/double64.c b/src/double64.c
28index b318ea8..78dfef7 100644
29--- a/src/double64.c
30+++ b/src/double64.c
31@@ -91,7 +91,7 @@ int
32 double64_init (SF_PRIVATE *psf)
33 { static int double64_caps ;
34
35- if (psf->sf.channels < 1)
36+ if (psf->sf.channels < 1 || psf->sf.channels > SF_MAX_CHANNELS)
37 { psf_log_printf (psf, "double64_init : internal error : channels = %d\n", psf->sf.channels) ;
38 return SFE_INTERNAL ;
39 } ;
40--
412.13.3
42
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-6892.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-6892.patch
deleted file mode 100644
index 89552ac2d9..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-6892.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From f833c53cb596e9e1792949f762e0b33661822748 Mon Sep 17 00:00:00 2001
2From: Erik de Castro Lopo <erikd@mega-nerd.com>
3Date: Tue, 23 May 2017 20:15:24 +1000
4Subject: [PATCH] src/aiff.c: Fix a buffer read overflow
5
6Secunia Advisory SA76717.
7
8Found by: Laurent Delosieres, Secunia Research at Flexera Software
9
10CVE: CVE-2017-6892
11Upstream-Status: Backport
12
13Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com>
14
15---
16 src/aiff.c | 2 +-
17 1 file changed, 1 insertion(+), 1 deletion(-)
18
19diff --git a/src/aiff.c b/src/aiff.c
20index 5b5f9f5..45864b7 100644
21--- a/src/aiff.c
22+++ b/src/aiff.c
23@@ -1759,7 +1759,7 @@ aiff_read_chanmap (SF_PRIVATE * psf, unsigned dword)
24 psf_binheader_readf (psf, "j", dword - bytesread) ;
25
26 if (map_info->channel_map != NULL)
27- { size_t chanmap_size = psf->sf.channels * sizeof (psf->channel_map [0]) ;
28+ { size_t chanmap_size = SF_MIN (psf->sf.channels, layout_tag & 0xffff) * sizeof (psf->channel_map [0]) ;
29
30 free (psf->channel_map) ;
31
32--
331.9.1
34
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8361-8365.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8361-8365.patch
deleted file mode 100644
index ac99516bb3..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8361-8365.patch
+++ /dev/null
@@ -1,73 +0,0 @@
1From fd0484aba8e51d16af1e3a880f9b8b857b385eb3 Mon Sep 17 00:00:00 2001
2From: Erik de Castro Lopo <erikd@mega-nerd.com>
3Date: Wed, 12 Apr 2017 19:45:30 +1000
4Subject: [PATCH] FLAC: Fix a buffer read overrun
5
6Buffer read overrun occurs when reading a FLAC file that switches
7from 2 channels to one channel mid-stream. Only option is to
8abort the read.
9
10Closes: https://github.com/erikd/libsndfile/issues/230
11
12CVE: CVE-2017-8361 CVE-2017-8365
13
14Upstream-Status: Backport [https://github.com/erikd/libsndfile/commit/fd0484aba8e51d16af1e3a880f9b8b857b385eb3]
15
16Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
17---
18 src/common.h | 1 +
19 src/flac.c | 13 +++++++++++++
20 src/sndfile.c | 1 +
21 3 files changed, 15 insertions(+)
22
23diff --git a/src/common.h b/src/common.h
24index 0bd810c..e2669b6 100644
25--- a/src/common.h
26+++ b/src/common.h
27@@ -725,6 +725,7 @@ enum
28 SFE_FLAC_INIT_DECODER,
29 SFE_FLAC_LOST_SYNC,
30 SFE_FLAC_BAD_SAMPLE_RATE,
31+ SFE_FLAC_CHANNEL_COUNT_CHANGED,
32 SFE_FLAC_UNKOWN_ERROR,
33
34 SFE_WVE_NOT_WVE,
35diff --git a/src/flac.c b/src/flac.c
36index 84de0e2..986a7b8 100644
37--- a/src/flac.c
38+++ b/src/flac.c
39@@ -434,6 +434,19 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_
40
41 switch (metadata->type)
42 { case FLAC__METADATA_TYPE_STREAMINFO :
43+ if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels)
44+ { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n"
45+ "Nothing to be but to error out.\n" ,
46+ psf->sf.channels, metadata->data.stream_info.channels) ;
47+ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
48+ return ;
49+ } ;
50+
51+ if (psf->sf.channels > 0 && psf->sf.samplerate != (int) metadata->data.stream_info.sample_rate)
52+ { psf_log_printf (psf, "Warning: FLAC stream changed sample rates from %d to %d.\n"
53+ "Carrying on as if nothing happened.",
54+ psf->sf.samplerate, metadata->data.stream_info.sample_rate) ;
55+ } ;
56 psf->sf.channels = metadata->data.stream_info.channels ;
57 psf->sf.samplerate = metadata->data.stream_info.sample_rate ;
58 psf->sf.frames = metadata->data.stream_info.total_samples ;
59diff --git a/src/sndfile.c b/src/sndfile.c
60index 4187561..e2a87be 100644
61--- a/src/sndfile.c
62+++ b/src/sndfile.c
63@@ -245,6 +245,7 @@ ErrorStruct SndfileErrors [] =
64 { SFE_FLAC_INIT_DECODER , "Error : problem with initialization of the flac decoder." },
65 { SFE_FLAC_LOST_SYNC , "Error : flac decoder lost sync." },
66 { SFE_FLAC_BAD_SAMPLE_RATE, "Error : flac does not support this sample rate." },
67+ { SFE_FLAC_CHANNEL_COUNT_CHANGED, "Error : flac channel changed mid stream." },
68 { SFE_FLAC_UNKOWN_ERROR , "Error : unknown error in flac decoder." },
69
70 { SFE_WVE_NOT_WVE , "Error : not a WVE file." },
71--
722.7.4
73
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8362.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8362.patch
deleted file mode 100644
index 9ee7e46a6d..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8362.patch
+++ /dev/null
@@ -1,59 +0,0 @@
1From ef1dbb2df1c0e741486646de40bd638a9c4cd808 Mon Sep 17 00:00:00 2001
2From: Erik de Castro Lopo <erikd@mega-nerd.com>
3Date: Fri, 14 Apr 2017 15:19:16 +1000
4Subject: [PATCH] src/flac.c: Fix a buffer read overflow
5
6A file (generated by a fuzzer) which increased the number of channels
7from one frame to the next could cause a read beyond the end of the
8buffer provided by libFLAC. Only option is to abort the read.
9
10Closes: https://github.com/erikd/libsndfile/issues/231
11
12CVE: CVE-2017-8362
13
14Upstream-Status: Backport [https://github.com/erikd/libsndfile/commit/ef1dbb2df1c0e741486646de40bd638a9c4cd808]
15
16Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
17---
18 src/flac.c | 11 +++++++++--
19 1 file changed, 9 insertions(+), 2 deletions(-)
20
21diff --git a/src/flac.c b/src/flac.c
22index 5a4f8c2..e4f9aaa 100644
23--- a/src/flac.c
24+++ b/src/flac.c
25@@ -169,6 +169,14 @@ flac_buffer_copy (SF_PRIVATE *psf)
26 const int32_t* const *buffer = pflac->wbuffer ;
27 unsigned i = 0, j, offset, channels, len ;
28
29+ if (psf->sf.channels != (int) frame->header.channels)
30+ { psf_log_printf (psf, "Error: FLAC frame changed from %d to %d channels\n"
31+ "Nothing to do but to error out.\n" ,
32+ psf->sf.channels, frame->header.channels) ;
33+ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
34+ return 0 ;
35+ } ;
36+
37 /*
38 ** frame->header.blocksize is variable and we're using a constant blocksize
39 ** of FLAC__MAX_BLOCK_SIZE.
40@@ -202,7 +210,6 @@ flac_buffer_copy (SF_PRIVATE *psf)
41 return 0 ;
42 } ;
43
44-
45 len = SF_MIN (pflac->len, frame->header.blocksize) ;
46
47 if (pflac->remain % channels != 0)
48@@ -436,7 +443,7 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_
49 { case FLAC__METADATA_TYPE_STREAMINFO :
50 if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels)
51 { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n"
52- "Nothing to be but to error out.\n" ,
53+ "Nothing to do but to error out.\n" ,
54 psf->sf.channels, metadata->data.stream_info.channels) ;
55 psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
56 return ;
57--
582.7.4
59
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8363.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8363.patch
deleted file mode 100644
index e526e5a346..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8363.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From cd7da8dbf6ee4310d21d9e44b385d6797160d9e8 Mon Sep 17 00:00:00 2001
2From: Erik de Castro Lopo <erikd@mega-nerd.com>
3Date: Wed, 12 Apr 2017 20:19:34 +1000
4Subject: [PATCH] src/flac.c: Fix another memory leak
5
6When the FLAC decoder was passed a malformed file, the associated
7`FLAC__StreamDecoder` object was not getting released.
8
9Closes: https://github.com/erikd/libsndfile/issues/233
10
11CVE: CVE-2017-8363
12
13Upstream-Status: Backport [https://github.com/erikd/libsndfile/commit/cd7da8dbf6ee4310d21d9e44b385d6797160d9e8]
14
15Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
16---
17 src/flac.c | 4 +++-
18 1 file changed, 3 insertions(+), 1 deletion(-)
19
20diff --git a/src/flac.c b/src/flac.c
21index 986a7b8..5a4f8c2 100644
22--- a/src/flac.c
23+++ b/src/flac.c
24@@ -841,7 +841,9 @@ flac_read_header (SF_PRIVATE *psf)
25
26 psf_log_printf (psf, "End\n") ;
27
28- if (psf->error == 0)
29+ if (psf->error != 0)
30+ FLAC__stream_decoder_delete (pflac->fsd) ;
31+ else
32 { FLAC__uint64 position ;
33
34 FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ;
35--
362.7.4
37
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-13139.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-13139.patch
deleted file mode 100644
index 707373d414..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-13139.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1CVE: CVE-2018-13139
2Upstream-Status: Backport [9dc989eb89cd697e19897afa616d6ab0debe4822]
3Signed-off-by: Ross Burton <ross.burton@intel.com>
4
5From 9dc989eb89cd697e19897afa616d6ab0debe4822 Mon Sep 17 00:00:00 2001
6From: "Brett T. Warden" <brett.t.warden@intel.com>
7Date: Tue, 28 Aug 2018 12:01:17 -0700
8Subject: [PATCH] Check MAX_CHANNELS in sndfile-deinterleave
9
10Allocated buffer has space for only 16 channels. Verify that input file
11meets this limit.
12
13Fixes #397
14---
15 programs/sndfile-deinterleave.c | 7 +++++++
16 1 file changed, 7 insertions(+)
17
18diff --git a/programs/sndfile-deinterleave.c b/programs/sndfile-deinterleave.c
19index e27593e2..cb497e1f 100644
20--- a/programs/sndfile-deinterleave.c
21+++ b/programs/sndfile-deinterleave.c
22@@ -89,6 +89,13 @@ main (int argc, char **argv)
23 exit (1) ;
24 } ;
25
26+ if (sfinfo.channels > MAX_CHANNELS)
27+ { printf ("\nError : Input file '%s' has too many (%d) channels. Limit is %d.\n",
28+ argv [1], sfinfo.channels, MAX_CHANNELS) ;
29+ exit (1) ;
30+ } ;
31+
32+
33 state.channels = sfinfo.channels ;
34 sfinfo.channels = 1 ;
35
36--
372.11.0
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19432.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19432.patch
deleted file mode 100644
index 8ded2c0f85..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19432.patch
+++ /dev/null
@@ -1,115 +0,0 @@
1From 6f3266277bed16525f0ac2f0f03ff4626f1923e5 Mon Sep 17 00:00:00 2001
2From: Erik de Castro Lopo <erikd@mega-nerd.com>
3Date: Thu, 8 Mar 2018 18:00:21 +1100
4Subject: [PATCH] Fix max channel count bug
5
6The code was allowing files to be written with a channel count of exactly
7`SF_MAX_CHANNELS` but was failing to read some file formats with the same
8channel count.
9
10Upstream-Status: Backport [https://github.com/erikd/libsndfile/
11commit/6f3266277bed16525f0ac2f0f03ff4626f1923e5]
12
13CVE: CVE-2018-19432
14
15Signed-off-by: Changqing Li <changqing.li@windriver.com>
16
17---
18 src/aiff.c | 6 +++---
19 src/rf64.c | 4 ++--
20 src/w64.c | 4 ++--
21 src/wav.c | 4 ++--
22 4 files changed, 9 insertions(+), 9 deletions(-)
23
24diff --git a/src/aiff.c b/src/aiff.c
25index fbd43cb..6386bce 100644
26--- a/src/aiff.c
27+++ b/src/aiff.c
28@@ -1,5 +1,5 @@
29 /*
30-** Copyright (C) 1999-2016 Erik de Castro Lopo <erikd@mega-nerd.com>
31+** Copyright (C) 1999-2018 Erik de Castro Lopo <erikd@mega-nerd.com>
32 ** Copyright (C) 2005 David Viens <davidv@plogue.com>
33 **
34 ** This program is free software; you can redistribute it and/or modify
35@@ -950,7 +950,7 @@ aiff_read_header (SF_PRIVATE *psf, COMM_
36 if (psf->sf.channels < 1)
37 return SFE_CHANNEL_COUNT_ZERO ;
38
39- if (psf->sf.channels >= SF_MAX_CHANNELS)
40+ if (psf->sf.channels > SF_MAX_CHANNELS)
41 return SFE_CHANNEL_COUNT ;
42
43 if (! (found_chunk & HAVE_FORM))
44@@ -1030,7 +1030,7 @@ aiff_read_comm_chunk (SF_PRIVATE *psf, C
45 psf_log_printf (psf, " Sample Rate : %d\n", samplerate) ;
46 psf_log_printf (psf, " Frames : %u%s\n", comm_fmt->numSampleFrames, (comm_fmt->numSampleFrames == 0 && psf->filelength > 104) ? " (Should not be 0)" : "") ;
47
48- if (comm_fmt->numChannels < 1 || comm_fmt->numChannels >= SF_MAX_CHANNELS)
49+ if (comm_fmt->numChannels < 1 || comm_fmt->numChannels > SF_MAX_CHANNELS)
50 { psf_log_printf (psf, " Channels : %d (should be >= 1 and < %d)\n", comm_fmt->numChannels, SF_MAX_CHANNELS) ;
51 return SFE_CHANNEL_COUNT_BAD ;
52 } ;
53diff --git a/src/rf64.c b/src/rf64.c
54index d57f0f3..876cd45 100644
55--- a/src/rf64.c
56+++ b/src/rf64.c
57@@ -1,5 +1,5 @@
58 /*
59-** Copyright (C) 2008-2017 Erik de Castro Lopo <erikd@mega-nerd.com>
60+** Copyright (C) 2008-2018 Erik de Castro Lopo <erikd@mega-nerd.com>
61 ** Copyright (C) 2009 Uli Franke <cls@nebadje.org>
62 **
63 ** This program is free software; you can redistribute it and/or modify
64@@ -382,7 +382,7 @@ rf64_read_header (SF_PRIVATE *psf, int *
65 if (psf->sf.channels < 1)
66 return SFE_CHANNEL_COUNT_ZERO ;
67
68- if (psf->sf.channels >= SF_MAX_CHANNELS)
69+ if (psf->sf.channels > SF_MAX_CHANNELS)
70 return SFE_CHANNEL_COUNT ;
71
72 /* WAVs can be little or big endian */
73diff --git a/src/w64.c b/src/w64.c
74index 939b716..a37d2c5 100644
75--- a/src/w64.c
76+++ b/src/w64.c
77@@ -1,5 +1,5 @@
78 /*
79-** Copyright (C) 1999-2016 Erik de Castro Lopo <erikd@mega-nerd.com>
80+** Copyright (C) 1999-2018 Erik de Castro Lopo <erikd@mega-nerd.com>
81 **
82 ** This program is free software; you can redistribute it and/or modify
83 ** it under the terms of the GNU Lesser General Public License as published by
84@@ -383,7 +383,7 @@ w64_read_header (SF_PRIVATE *psf, int *b
85 if (psf->sf.channels < 1)
86 return SFE_CHANNEL_COUNT_ZERO ;
87
88- if (psf->sf.channels >= SF_MAX_CHANNELS)
89+ if (psf->sf.channels > SF_MAX_CHANNELS)
90 return SFE_CHANNEL_COUNT ;
91
92 psf->endian = SF_ENDIAN_LITTLE ; /* All W64 files are little endian. */
93diff --git a/src/wav.c b/src/wav.c
94index 7bd97bc..dc97545 100644
95--- a/src/wav.c
96+++ b/src/wav.c
97@@ -1,5 +1,5 @@
98 /*
99-** Copyright (C) 1999-2016 Erik de Castro Lopo <erikd@mega-nerd.com>
100+** Copyright (C) 1999-2018 Erik de Castro Lopo <erikd@mega-nerd.com>
101 ** Copyright (C) 2004-2005 David Viens <davidv@plogue.com>
102 **
103 ** This program is free software; you can redistribute it and/or modify
104@@ -627,7 +627,7 @@ wav_read_header (SF_PRIVATE *psf, int *b
105 if (psf->sf.channels < 1)
106 return SFE_CHANNEL_COUNT_ZERO ;
107
108- if (psf->sf.channels >= SF_MAX_CHANNELS)
109+ if (psf->sf.channels > SF_MAX_CHANNELS)
110 return SFE_CHANNEL_COUNT ;
111
112 if (format != WAVE_FORMAT_PCM && (parsestage & HAVE_fact) == 0)
113--
1141.7.9.5
115
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19758.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19758.patch
deleted file mode 100644
index c3586f9dfc..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19758.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1There is a heap-based buffer over-read at wav.c in wav_write_header in
2libsndfile 1.0.28 that will cause a denial of service.
3
4CVE: CVE-2018-19758
5Upstream-Status: Backport [42132c543358cee9f7c3e9e9b15bb6c1063a608e]
6Signed-off-by: Ross Burton <ross.burton@intel.com>
7
8From c12173b0197dd0c5cfa2cd27977e982d2ae59486 Mon Sep 17 00:00:00 2001
9From: Erik de Castro Lopo <erikd@mega-nerd.com>
10Date: Tue, 1 Jan 2019 20:11:46 +1100
11Subject: [PATCH] src/wav.c: Fix heap read overflow
12
13This is CVE-2018-19758.
14
15Closes: https://github.com/erikd/libsndfile/issues/435
16---
17 src/wav.c | 2 ++
18 1 file changed, 2 insertions(+)
19
20diff --git a/src/wav.c b/src/wav.c
21index e8405b55..6fb94ae8 100644
22--- a/src/wav.c
23+++ b/src/wav.c
24@@ -1094,6 +1094,8 @@ wav_write_header (SF_PRIVATE *psf, int calc_length)
25 psf_binheader_writef (psf, "44", 0, 0) ; /* SMTPE format */
26 psf_binheader_writef (psf, "44", psf->instrument->loop_count, 0) ;
27
28+ /* Loop count is signed 16 bit number so we limit it range to something sensible. */
29+ psf->instrument->loop_count &= 0x7fff ;
30 for (tmp = 0 ; tmp < psf->instrument->loop_count ; tmp++)
31 { int type ;
32
33--
342.11.0
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2019-3832.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2019-3832.patch
deleted file mode 100644
index ab37211399..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2019-3832.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 43886efc408c21e1e329086ef70c88860310f25b Mon Sep 17 00:00:00 2001
2From: Emilio Pozuelo Monfort <pochu27@gmail.com>
3Date: Tue, 5 Mar 2019 11:27:17 +0100
4Subject: [PATCH] wav_write_header: don't read past the array end
5
6CVE-2018-19758 wasn't entirely fixed in the fix, so fix it harder.
7
8CVE: CVE-2019-3832
9Upstream-Status: Backport [7408c4c788ce047d4e652b60a04e7796bcd7267e]
10Signed-off-by: Ross Burton <ross.burton@intel.com>
11
12If loop_count is bigger than the array, truncate it to the array
13length (and not to 32k).
14
15CVE-2019-3832
16
17---
18 src/wav.c | 6 ++++--
19 1 file changed, 4 insertions(+), 2 deletions(-)
20
21diff --git a/src/wav.c b/src/wav.c
22index daae3cc..8851549 100644
23--- a/src/wav.c
24+++ b/src/wav.c
25@@ -1094,8 +1094,10 @@ wav_write_header (SF_PRIVATE *psf, int calc_length)
26 psf_binheader_writef (psf, "44", 0, 0) ; /* SMTPE format */
27 psf_binheader_writef (psf, "44", psf->instrument->loop_count, 0) ;
28
29- /* Loop count is signed 16 bit number so we limit it range to something sensible. */
30- psf->instrument->loop_count &= 0x7fff ;
31+ /* Make sure we don't read past the loops array end. */
32+ if (psf->instrument->loop_count > ARRAY_LEN (psf->instrument->loops))
33+ psf->instrument->loop_count = ARRAY_LEN (psf->instrument->loops) ;
34+
35 for (tmp = 0 ; tmp < psf->instrument->loop_count ; tmp++)
36 { int type ;
37
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/cve-2022-33065.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/cve-2022-33065.patch
new file mode 100644
index 0000000000..fa4b2fc08b
--- /dev/null
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1/cve-2022-33065.patch
@@ -0,0 +1,739 @@
1From c7ce5b0ebeeb58934825077d1324960aa0747718 Mon Sep 17 00:00:00 2001
2From: Alex Stewart <alex.stewart@ni.com>
3Date: Tue, 10 Oct 2023 16:10:34 -0400
4Subject: [PATCH] mat4/mat5: fix int overflow in dataend calculation
5
6The clang sanitizer warns of a possible signed integer overflow when
7calculating the `dataend` value in `mat4_read_header()`.
8
9```
10src/mat4.c:323:41: runtime error: signed integer overflow: 205 * -100663296 cannot be represented in type 'int'
11SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/mat4.c:323:41 in
12src/mat4.c:323:48: runtime error: signed integer overflow: 838860800 * 4 cannot be represented in type 'int'
13SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/mat4.c:323:48 in
14```
15
16Cast the offending `rows` and `cols` ints to `sf_count_t` (the type of
17`dataend` before performing the calculation, to avoid the issue.
18
19CVE: CVE-2022-33065
20Fixes: https://github.com/libsndfile/libsndfile/issues/789
21Fixes: https://github.com/libsndfile/libsndfile/issues/833
22
23Upstream-Status: Backport [9a829113c88a51e57c1e46473e90609e4b7df151]
24
25Signed-off-by: Alex Stewart <alex.stewart@ni.com>
26---
27 src/mat4.c | 2 +-
28 1 file changed, 1 insertion(+), 1 deletion(-)
29
30diff --git a/src/mat4.c b/src/mat4.c
31index 0b1b414b..575683ba 100644
32--- a/src/mat4.c
33+++ b/src/mat4.c
34@@ -320,7 +320,7 @@ mat4_read_header (SF_PRIVATE *psf)
35 psf->filelength - psf->dataoffset, psf->sf.channels * psf->sf.frames * psf->bytewidth) ;
36 }
37 else if ((psf->filelength - psf->dataoffset) > psf->sf.channels * psf->sf.frames * psf->bytewidth)
38- psf->dataend = psf->dataoffset + rows * cols * psf->bytewidth ;
39+ psf->dataend = psf->dataoffset + (sf_count_t) rows * (sf_count_t) cols * psf->bytewidth ;
40
41 psf->datalength = psf->filelength - psf->dataoffset - psf->dataend ;
42
43From 842303f984b2081481e74cb84a9a24ecbe3dec1a Mon Sep 17 00:00:00 2001
44From: Alex Stewart <alex.stewart@ni.com>
45Date: Wed, 11 Oct 2023 16:36:02 -0400
46Subject: [PATCH] au: avoid int overflow while calculating data_end
47
48At several points in au_read_header(), we calculate the functional end
49of the data segment by adding the (int)au_fmt.dataoffset and the
50(int)au_fmt.datasize. This can overflow the implicit int_32 return value
51and cause undefined behavior.
52
53Instead, precalculate the value and assign it to a 64-bit
54(sf_count_t)data_end variable.
55
56CVE: CVE-2022-33065
57Fixes: https://github.com/libsndfile/libsndfile/issues/833
58
59Signed-off-by: Alex Stewart <alex.stewart@ni.com>
60---
61 src/au.c | 10 ++++++----
62 1 file changed, 6 insertions(+), 4 deletions(-)
63
64diff --git a/src/au.c b/src/au.c
65index 62bd691d..f68f2587 100644
66--- a/src/au.c
67+++ b/src/au.c
68@@ -291,6 +291,7 @@ static int
69 au_read_header (SF_PRIVATE *psf)
70 { AU_FMT au_fmt ;
71 int marker, dword ;
72+ sf_count_t data_end ;
73
74 memset (&au_fmt, 0, sizeof (au_fmt)) ;
75 psf_binheader_readf (psf, "pm", 0, &marker) ;
76@@ -317,14 +318,15 @@ au_read_header (SF_PRIVATE *psf)
77 return SFE_AU_EMBED_BAD_LEN ;
78 } ;
79
80+ data_end = (sf_count_t) au_fmt.dataoffset + (sf_count_t) au_fmt.datasize ;
81 if (psf->fileoffset > 0)
82- { psf->filelength = au_fmt.dataoffset + au_fmt.datasize ;
83+ { psf->filelength = data_end ;
84 psf_log_printf (psf, " Data Size : %d\n", au_fmt.datasize) ;
85 }
86- else if (au_fmt.datasize == -1 || au_fmt.dataoffset + au_fmt.datasize == psf->filelength)
87+ else if (au_fmt.datasize == -1 || data_end == psf->filelength)
88 psf_log_printf (psf, " Data Size : %d\n", au_fmt.datasize) ;
89- else if (au_fmt.dataoffset + au_fmt.datasize < psf->filelength)
90- { psf->filelength = au_fmt.dataoffset + au_fmt.datasize ;
91+ else if (data_end < psf->filelength)
92+ { psf->filelength = data_end ;
93 psf_log_printf (psf, " Data Size : %d\n", au_fmt.datasize) ;
94 }
95 else
96From 0754d3380a54e3fbdde0f684b88955c80c79f58f Mon Sep 17 00:00:00 2001
97From: Alex Stewart <alex.stewart@ni.com>
98Date: Wed, 11 Oct 2023 16:46:29 -0400
99Subject: [PATCH] avr: fix int overflow in avr_read_header()
100
101Pre-cast hdr.frames to sf_count_t, to provide the calculation with
102enough numeric space to avoid an int-overflow.
103
104CVE: CVE-2022-33065
105Fixes: https://github.com/libsndfile/libsndfile/issues/833
106
107Signed-off-by: Alex Stewart <alex.stewart@ni.com>
108---
109 src/avr.c | 2 +-
110 1 file changed, 1 insertion(+), 1 deletion(-)
111
112diff --git a/src/avr.c b/src/avr.c
113index 6c78ff69..1bc1ffc9 100644
114--- a/src/avr.c
115+++ b/src/avr.c
116@@ -162,7 +162,7 @@ avr_read_header (SF_PRIVATE *psf)
117 psf->endian = SF_ENDIAN_BIG ;
118
119 psf->dataoffset = AVR_HDR_SIZE ;
120- psf->datalength = hdr.frames * (hdr.rez / 8) ;
121+ psf->datalength = (sf_count_t) hdr.frames * (hdr.rez / 8) ;
122
123 if (psf->fileoffset > 0)
124 psf->filelength = AVR_HDR_SIZE + psf->datalength ;
125From 6ac31a68a614e2bba4a05b54e5558d6270c98376 Mon Sep 17 00:00:00 2001
126From: Alex Stewart <alex.stewart@ni.com>
127Date: Wed, 11 Oct 2023 16:54:21 -0400
128Subject: [PATCH] sds: fix int overflow warning in sample calculations
129
130The sds_*byte_read() functions compose their uint_32 sample buffers by
131shifting 7bit samples into a 32bit wide buffer, and adding them
132together. Because the 7bit samples are stored in 32bit ints, code
133fuzzers become concerned that the addition operation can overflow and
134cause undefined behavior.
135
136Instead, bitwise-OR the bytes together - which should accomplish the
137same arithmetic operation, without risking an int-overflow.
138
139CVE: CVE-2022-33065
140Fixes: https://github.com/libsndfile/libsndfile/issues/833
141
142Signed-off-by: Alex Stewart <alex.stewart@ni.com>
143
144Do the same for the 3byte and 4byte read functions.
145---
146 src/sds.c | 6 +++---
147 1 file changed, 3 insertions(+), 3 deletions(-)
148
149diff --git a/src/sds.c b/src/sds.c
150index 6bc76171..2a0f164c 100644
151--- a/src/sds.c
152+++ b/src/sds.c
153@@ -454,7 +454,7 @@ sds_2byte_read (SF_PRIVATE *psf, SDS_PRIVATE *psds)
154
155 ucptr = psds->read_data + 5 ;
156 for (k = 0 ; k < 120 ; k += 2)
157- { sample = arith_shift_left (ucptr [k], 25) + arith_shift_left (ucptr [k + 1], 18) ;
158+ { sample = arith_shift_left (ucptr [k], 25) | arith_shift_left (ucptr [k + 1], 18) ;
159 psds->read_samples [k / 2] = (int) (sample - 0x80000000) ;
160 } ;
161
162@@ -498,7 +498,7 @@ sds_3byte_read (SF_PRIVATE *psf, SDS_PRIVATE *psds)
163
164 ucptr = psds->read_data + 5 ;
165 for (k = 0 ; k < 120 ; k += 3)
166- { sample = (((uint32_t) ucptr [k]) << 25) + (ucptr [k + 1] << 18) + (ucptr [k + 2] << 11) ;
167+ { sample = (((uint32_t) ucptr [k]) << 25) | (ucptr [k + 1] << 18) | (ucptr [k + 2] << 11) ;
168 psds->read_samples [k / 3] = (int) (sample - 0x80000000) ;
169 } ;
170
171@@ -542,7 +542,7 @@ sds_4byte_read (SF_PRIVATE *psf, SDS_PRIVATE *psds)
172
173 ucptr = psds->read_data + 5 ;
174 for (k = 0 ; k < 120 ; k += 4)
175- { sample = (((uint32_t) ucptr [k]) << 25) + (ucptr [k + 1] << 18) + (ucptr [k + 2] << 11) + (ucptr [k + 3] << 4) ;
176+ { sample = (((uint32_t) ucptr [k]) << 25) | (ucptr [k + 1] << 18) | (ucptr [k + 2] << 11) | (ucptr [k + 3] << 4) ;
177 psds->read_samples [k / 4] = (int) (sample - 0x80000000) ;
178 } ;
179
180From 96428e1dd4998f1cd47df24f8fe9b0da35d7b947 Mon Sep 17 00:00:00 2001
181From: Alex Stewart <alex.stewart@ni.com>
182Date: Wed, 11 Oct 2023 17:26:51 -0400
183Subject: [PATCH] aiff: fix int overflow when counting header elements
184
185aiff_read_basc_chunk() tries to count the AIFF header size by keeping
186track of the bytes returned by psf_binheader_readf(). Though improbable,
187it is technically possible for these added bytes to exceed the int-sized
188`count` accumulator.
189
190Use a 64-bit sf_count_t type for `count`, to ensure that it always has
191enough numeric space.
192
193CVE: CVE-2022-33065
194Fixes: https://github.com/libsndfile/libsndfile/issues/833
195
196Signed-off-by: Alex Stewart <alex.stewart@ni.com>
197---
198 src/aiff.c | 2 +-
199 1 file changed, 1 insertion(+), 1 deletion(-)
200
201diff --git a/src/aiff.c b/src/aiff.c
202index a2bda8f4..6b244302 100644
203--- a/src/aiff.c
204+++ b/src/aiff.c
205@@ -1702,7 +1702,7 @@ static int
206 aiff_read_basc_chunk (SF_PRIVATE * psf, int datasize)
207 { const char * type_str ;
208 basc_CHUNK bc ;
209- int count ;
210+ sf_count_t count ;
211
212 count = psf_binheader_readf (psf, "E442", &bc.version, &bc.numBeats, &bc.rootNote) ;
213 count += psf_binheader_readf (psf, "E222", &bc.scaleType, &bc.sigNumerator, &bc.sigDenominator) ;
214From b352c350d35bf978e4d3a32e5d9df1f2284445f4 Mon Sep 17 00:00:00 2001
215From: Alex Stewart <alex.stewart@ni.com>
216Date: Wed, 11 Oct 2023 17:43:02 -0400
217Subject: [PATCH] ircam: fix int overflow in ircam_read_header()
218
219When reading the IRCAM header, it is possible for the calculated
220blockwidth to exceed the bounds of a signed int32.
221
222Use a 64bit sf_count_t to store the blockwidth.
223
224CVE: CVE-2022-33065
225Fixes: https://github.com/libsndfile/libsndfile/issues/833
226
227Signed-off-by: Alex Stewart <alex.stewart@ni.com>
228---
229 src/common.h | 2 +-
230 src/ircam.c | 10 +++++-----
231 2 files changed, 6 insertions(+), 6 deletions(-)
232
233diff --git a/src/common.h b/src/common.h
234index d92eabde..5369cb67 100644
235--- a/src/common.h
236+++ b/src/common.h
237@@ -439,7 +439,7 @@ typedef struct sf_private_tag
238 sf_count_t datalength ; /* Length in bytes of the audio data. */
239 sf_count_t dataend ; /* Offset to file tailer. */
240
241- int blockwidth ; /* Size in bytes of one set of interleaved samples. */
242+ sf_count_t blockwidth ; /* Size in bytes of one set of interleaved samples. */
243 int bytewidth ; /* Size in bytes of one sample (one channel). */
244
245 void *dither ;
246diff --git a/src/ircam.c b/src/ircam.c
247index 8e7cdba8..3d73ba44 100644
248--- a/src/ircam.c
249+++ b/src/ircam.c
250@@ -171,35 +171,35 @@ ircam_read_header (SF_PRIVATE *psf)
251 switch (encoding)
252 { case IRCAM_PCM_16 :
253 psf->bytewidth = 2 ;
254- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
255+ psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ;
256
257 psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_PCM_16 ;
258 break ;
259
260 case IRCAM_PCM_32 :
261 psf->bytewidth = 4 ;
262- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
263+ psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ;
264
265 psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_PCM_32 ;
266 break ;
267
268 case IRCAM_FLOAT :
269 psf->bytewidth = 4 ;
270- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
271+ psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ;
272
273 psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_FLOAT ;
274 break ;
275
276 case IRCAM_ALAW :
277 psf->bytewidth = 1 ;
278- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
279+ psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ;
280
281 psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_ALAW ;
282 break ;
283
284 case IRCAM_ULAW :
285 psf->bytewidth = 1 ;
286- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
287+ psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ;
288
289 psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_ULAW ;
290 break ;
291From 3bcd291e57867f88f558fa6f80990e84311df78c Mon Sep 17 00:00:00 2001
292From: Alex Stewart <alex.stewart@ni.com>
293Date: Wed, 11 Oct 2023 16:12:22 -0400
294Subject: [PATCH] mat4/mat5: fix int overflow when calculating blockwidth
295
296Pre-cast the components of the blockwidth calculation to sf_count_t to
297avoid overflowing integers during calculation.
298
299CVE: CVE-2022-33065
300Fixes: https://github.com/libsndfile/libsndfile/issues/833
301
302Signed-off-by: Alex Stewart <alex.stewart@ni.com>
303---
304 src/mat4.c | 2 +-
305 src/mat5.c | 2 +-
306 2 files changed, 2 insertions(+), 2 deletions(-)
307
308diff --git a/src/mat4.c b/src/mat4.c
309index 575683ba..9f046f0c 100644
310--- a/src/mat4.c
311+++ b/src/mat4.c
312@@ -104,7 +104,7 @@ mat4_open (SF_PRIVATE *psf)
313
314 psf->container_close = mat4_close ;
315
316- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
317+ psf->blockwidth = (sf_count_t) psf->bytewidth * psf->sf.channels ;
318
319 switch (subformat)
320 { case SF_FORMAT_PCM_16 :
321diff --git a/src/mat5.c b/src/mat5.c
322index da5a6eca..20f0ea64 100644
323--- a/src/mat5.c
324+++ b/src/mat5.c
325@@ -114,7 +114,7 @@ mat5_open (SF_PRIVATE *psf)
326
327 psf->container_close = mat5_close ;
328
329- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
330+ psf->blockwidth = (sf_count_t) psf->bytewidth * psf->sf.channels ;
331
332 switch (subformat)
333 { case SF_FORMAT_PCM_U8 :
334From c177e292d47ef73b1d3c1bb391320299a0ed2ff9 Mon Sep 17 00:00:00 2001
335From: Alex Stewart <alex.stewart@ni.com>
336Date: Mon, 16 Oct 2023 12:37:47 -0400
337Subject: [PATCH] common: fix int overflow in psf_binheader_readf()
338
339The psf_binheader_readf() function attempts to count and return the
340number of bytes traversed in the header. During this accumulation, it is
341possible to overflow the int-sized byte_count variable.
342
343Avoid this overflow by checking that the accumulated bytes do not exceed
344INT_MAX and throwing an error if they do. This implies that files with
345multi-gigabyte headers threaten to produce this error, but I imagine
346those files don't really exist - and this error is better than the
347undefined behavior which would have resulted previously.
348
349CVE: CVE-2022-33065
350Fixes: https://github.com/libsndfile/libsndfile/issues/833
351
352Signed-off-by: Alex Stewart <alex.stewart@ni.com>
353---
354 src/common.c | 36 ++++++++++++++++++++++++------------
355 1 file changed, 24 insertions(+), 12 deletions(-)
356
357diff --git a/src/common.c b/src/common.c
358index 1c3d951d..7f6cceca 100644
359--- a/src/common.c
360+++ b/src/common.c
361@@ -18,6 +18,7 @@
362
363 #include <config.h>
364
365+#include <limits.h>
366 #include <stdarg.h>
367 #include <string.h>
368 #if HAVE_UNISTD_H
369@@ -990,6 +991,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
370 double *doubleptr ;
371 char c ;
372 int byte_count = 0, count = 0 ;
373+ int read_bytes = 0 ;
374
375 if (! format)
376 return psf_ftell (psf) ;
377@@ -998,6 +1000,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
378
379 while ((c = *format++))
380 {
381+ read_bytes = 0 ;
382 if (psf->header.indx + 16 >= psf->header.len && psf_bump_header_allocation (psf, 16))
383 break ;
384
385@@ -1014,7 +1017,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
386 intptr = va_arg (argptr, unsigned int*) ;
387 *intptr = 0 ;
388 ucptr = (unsigned char*) intptr ;
389- byte_count += header_read (psf, ucptr, sizeof (int)) ;
390+ read_bytes = header_read (psf, ucptr, sizeof (int)) ;
391 *intptr = GET_MARKER (ucptr) ;
392 break ;
393
394@@ -1022,7 +1025,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
395 intptr = va_arg (argptr, unsigned int*) ;
396 *intptr = 0 ;
397 ucptr = (unsigned char*) intptr ;
398- byte_count += header_read (psf, sixteen_bytes, sizeof (sixteen_bytes)) ;
399+ read_bytes = header_read (psf, sixteen_bytes, sizeof (sixteen_bytes)) ;
400 { int k ;
401 intdata = 0 ;
402 for (k = 0 ; k < 16 ; k++)
403@@ -1034,14 +1037,14 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
404 case '1' :
405 charptr = va_arg (argptr, char*) ;
406 *charptr = 0 ;
407- byte_count += header_read (psf, charptr, sizeof (char)) ;
408+ read_bytes = header_read (psf, charptr, sizeof (char)) ;
409 break ;
410
411 case '2' : /* 2 byte value with the current endian-ness */
412 shortptr = va_arg (argptr, unsigned short*) ;
413 *shortptr = 0 ;
414 ucptr = (unsigned char*) shortptr ;
415- byte_count += header_read (psf, ucptr, sizeof (short)) ;
416+ read_bytes = header_read (psf, ucptr, sizeof (short)) ;
417 if (psf->rwf_endian == SF_ENDIAN_BIG)
418 *shortptr = GET_BE_SHORT (ucptr) ;
419 else
420@@ -1051,7 +1054,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
421 case '3' : /* 3 byte value with the current endian-ness */
422 intptr = va_arg (argptr, unsigned int*) ;
423 *intptr = 0 ;
424- byte_count += header_read (psf, sixteen_bytes, 3) ;
425+ read_bytes = header_read (psf, sixteen_bytes, 3) ;
426 if (psf->rwf_endian == SF_ENDIAN_BIG)
427 *intptr = GET_BE_3BYTE (sixteen_bytes) ;
428 else
429@@ -1062,7 +1065,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
430 intptr = va_arg (argptr, unsigned int*) ;
431 *intptr = 0 ;
432 ucptr = (unsigned char*) intptr ;
433- byte_count += header_read (psf, ucptr, sizeof (int)) ;
434+ read_bytes = header_read (psf, ucptr, sizeof (int)) ;
435 if (psf->rwf_endian == SF_ENDIAN_BIG)
436 *intptr = psf_get_be32 (ucptr, 0) ;
437 else
438@@ -1072,7 +1075,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
439 case '8' : /* 8 byte value with the current endian-ness */
440 countptr = va_arg (argptr, sf_count_t *) ;
441 *countptr = 0 ;
442- byte_count += header_read (psf, sixteen_bytes, 8) ;
443+ read_bytes = header_read (psf, sixteen_bytes, 8) ;
444 if (psf->rwf_endian == SF_ENDIAN_BIG)
445 countdata = psf_get_be64 (sixteen_bytes, 0) ;
446 else
447@@ -1083,7 +1086,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
448 case 'f' : /* Float conversion */
449 floatptr = va_arg (argptr, float *) ;
450 *floatptr = 0.0 ;
451- byte_count += header_read (psf, floatptr, sizeof (float)) ;
452+ read_bytes = header_read (psf, floatptr, sizeof (float)) ;
453 if (psf->rwf_endian == SF_ENDIAN_BIG)
454 *floatptr = float32_be_read ((unsigned char*) floatptr) ;
455 else
456@@ -1093,7 +1096,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
457 case 'd' : /* double conversion */
458 doubleptr = va_arg (argptr, double *) ;
459 *doubleptr = 0.0 ;
460- byte_count += header_read (psf, doubleptr, sizeof (double)) ;
461+ read_bytes = header_read (psf, doubleptr, sizeof (double)) ;
462 if (psf->rwf_endian == SF_ENDIAN_BIG)
463 *doubleptr = double64_be_read ((unsigned char*) doubleptr) ;
464 else
465@@ -1117,7 +1120,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
466 charptr = va_arg (argptr, char*) ;
467 count = va_arg (argptr, size_t) ;
468 memset (charptr, 0, count) ;
469- byte_count += header_read (psf, charptr, count) ;
470+ read_bytes = header_read (psf, charptr, count) ;
471 break ;
472
473 case 'G' :
474@@ -1128,7 +1131,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
475 if (psf->header.indx + count >= psf->header.len && psf_bump_header_allocation (psf, count))
476 break ;
477
478- byte_count += header_gets (psf, charptr, count) ;
479+ read_bytes = header_gets (psf, charptr, count) ;
480 break ;
481
482 case 'z' :
483@@ -1152,7 +1155,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
484 case 'j' : /* Seek to position from current position. */
485 count = va_arg (argptr, size_t) ;
486 header_seek (psf, count, SEEK_CUR) ;
487- byte_count += count ;
488+ read_bytes = count ;
489 break ;
490
491 case '!' : /* Clear buffer, forcing re-read. */
492@@ -1164,8 +1167,17 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
493 psf->error = SFE_INTERNAL ;
494 break ;
495 } ;
496+
497+ if (read_bytes > 0 && byte_count > (INT_MAX - read_bytes))
498+ { psf_log_printf (psf, "Header size exceeds INT_MAX. Aborting.", c) ;
499+ psf->error = SFE_INTERNAL ;
500+ break ;
501+ } else
502+ { byte_count += read_bytes ;
503 } ;
504
505+ } ; /*end while*/
506+
507 va_end (argptr) ;
508
509 return byte_count ;
510From a23d563386e7c8d93dcdbe7d5b1d63cad6009116 Mon Sep 17 00:00:00 2001
511From: Alex Stewart <alex.stewart@ni.com>
512Date: Thu, 19 Oct 2023 14:07:19 -0400
513Subject: [PATCH] nms_adpcm: fix int overflow in signal estimate
514
515It is possible (though functionally incorrect) for the signal estimate
516calculation in nms_adpcm_update() to overflow the int value of s_e,
517resulting in undefined behavior.
518
519Since adpcm state signal values are never practically larger than
52016 bits, use smaller numeric sizes throughout the file to avoid the
521overflow.
522
523CVE: CVE-2022-33065
524Fixes: https://github.com/libsndfile/libsndfile/issues/833
525
526Authored-by: Arthur Taylor <art@ified.ca>
527Signed-off-by: Alex Stewart <alex.stewart@ni.com>
528Rebased-by: Alex Stewart <alex.stewart@ni.com>
529---
530 src/nms_adpcm.c | 85 ++++++++++++++++++++++++-------------------------
531 1 file changed, 42 insertions(+), 43 deletions(-)
532
533diff --git a/src/nms_adpcm.c b/src/nms_adpcm.c
534index 96d6ad26..460ea077 100644
535--- a/src/nms_adpcm.c
536+++ b/src/nms_adpcm.c
537@@ -48,36 +48,36 @@
538 /* Variable names from ITU G.726 spec */
539 struct nms_adpcm_state
540 { /* Log of the step size multiplier. Operated on by codewords. */
541- int yl ;
542+ short yl ;
543
544 /* Quantizer step size multiplier. Generated from yl. */
545- int y ;
546+ short y ;
547
548- /* Coefficents of the pole predictor */
549- int a [2] ;
550+ /* Coefficients of the pole predictor */
551+ short a [2] ;
552
553- /* Coefficents of the zero predictor */
554- int b [6] ;
555+ /* Coefficients of the zero predictor */
556+ short b [6] ;
557
558 /* Previous quantized deltas (multiplied by 2^14) */
559- int d_q [7] ;
560+ short d_q [7] ;
561
562 /* d_q [x] + s_ez [x], used by the pole-predictor for signs only. */
563- int p [3] ;
564+ short p [3] ;
565
566 /* Previous reconstructed signal values. */
567- int s_r [2] ;
568+ short s_r [2] ;
569
570 /* Zero predictor components of the signal estimate. */
571- int s_ez ;
572+ short s_ez ;
573
574 /* Signal estimate, (including s_ez). */
575- int s_e ;
576+ short s_e ;
577
578 /* The most recent codeword (enc:generated, dec:inputted) */
579- int Ik ;
580+ char Ik ;
581
582- int parity ;
583+ char parity ;
584
585 /*
586 ** Offset into code tables for the bitrate.
587@@ -109,7 +109,7 @@ typedef struct
588 } NMS_ADPCM_PRIVATE ;
589
590 /* Pre-computed exponential interval used in the antilog approximation. */
591-static unsigned int table_expn [] =
592+static unsigned short table_expn [] =
593 { 0x4000, 0x4167, 0x42d5, 0x444c, 0x45cb, 0x4752, 0x48e2, 0x4a7a,
594 0x4c1b, 0x4dc7, 0x4f7a, 0x5138, 0x52ff, 0x54d1, 0x56ac, 0x5892,
595 0x5a82, 0x5c7e, 0x5e84, 0x6096, 0x62b4, 0x64dd, 0x6712, 0x6954,
596@@ -117,21 +117,21 @@ static unsigned int table_expn [] =
597 } ;
598
599 /* Table mapping codewords to scale factor deltas. */
600-static int table_scale_factor_step [] =
601+static short table_scale_factor_step [] =
602 { 0x0, 0x0, 0x0, 0x0, 0x4b0, 0x0, 0x0, 0x0, /* 2-bit */
603 -0x3c, 0x0, 0x90, 0x0, 0x2ee, 0x0, 0x898, 0x0, /* 3-bit */
604 -0x30, 0x12, 0x6b, 0xc8, 0x188, 0x2e0, 0x551, 0x1150, /* 4-bit */
605 } ;
606
607 /* Table mapping codewords to quantized delta interval steps. */
608-static unsigned int table_step [] =
609+static unsigned short table_step [] =
610 { 0x73F, 0, 0, 0, 0x1829, 0, 0, 0, /* 2-bit */
611 0x3EB, 0, 0xC18, 0, 0x1581, 0, 0x226E, 0, /* 3-bit */
612 0x20C, 0x635, 0xA83, 0xF12, 0x1418, 0x19E3, 0x211A, 0x2BBA, /* 4-bit */
613 } ;
614
615 /* Binary search lookup table for quantizing using table_step. */
616-static int table_step_search [] =
617+static short table_step_search [] =
618 { 0, 0x1F6D, 0, -0x1F6D, 0, 0, 0, 0, /* 2-bit */
619 0x1008, 0x1192, 0, -0x219A, 0x1656, -0x1656, 0, 0, /* 3-bit */
620 0x872, 0x1277, -0x8E6, -0x232B, 0xD06, -0x17D7, -0x11D3, 0, /* 4-bit */
621@@ -179,23 +179,23 @@ static sf_count_t nms_adpcm_seek (SF_PRIVATE *psf, int mode, sf_count_t offset)
622 ** Maps [1,20480] to [1,1024] in an exponential relationship. This is
623 ** approximately ret = b^exp where b = e^(ln(1024)/ln(20480)) ~= 1.0003385
624 */
625-static inline int
626-nms_adpcm_antilog (int exp)
627-{ int ret ;
628+static inline short
629+nms_adpcm_antilog (short exp)
630+{ int_fast32_t r ;
631
632- ret = 0x1000 ;
633- ret += (((exp & 0x3f) * 0x166b) >> 12) ;
634- ret *= table_expn [(exp & 0x7c0) >> 6] ;
635- ret >>= (26 - (exp >> 11)) ;
636+ r = 0x1000 ;
637+ r += (((int_fast32_t) (exp & 0x3f) * 0x166b) >> 12) ;
638+ r *= table_expn [(exp & 0x7c0) >> 6] ;
639+ r >>= (26 - (exp >> 11)) ;
640
641- return ret ;
642+ return (short) r ;
643 } /* nms_adpcm_antilog */
644
645 static void
646 nms_adpcm_update (struct nms_adpcm_state *s)
647 { /* Variable names from ITU G.726 spec */
648- int a1ul ;
649- int fa1 ;
650+ short a1ul, fa1 ;
651+ int_fast32_t se ;
652 int i ;
653
654 /* Decay and Modify the scale factor in the log domain based on the codeword. */
655@@ -222,7 +222,7 @@ nms_adpcm_update (struct nms_adpcm_state *s)
656 else if (fa1 > 256)
657 fa1 = 256 ;
658
659- s->a [0] = (0xff * s->a [0]) >> 8 ;
660+ s->a [0] = (s->a [0] * 0xff) >> 8 ;
661 if (s->p [0] != 0 && s->p [1] != 0 && ((s->p [0] ^ s->p [1]) < 0))
662 s->a [0] -= 192 ;
663 else
664@@ -230,7 +230,7 @@ nms_adpcm_update (struct nms_adpcm_state *s)
665 fa1 = -fa1 ;
666 }
667
668- s->a [1] = fa1 + ((0xfe * s->a [1]) >> 8) ;
669+ s->a [1] = fa1 + ((s->a [1] * 0xfe) >> 8) ;
670 if (s->p [0] != 0 && s->p [2] != 0 && ((s->p [0] ^ s->p [2]) < 0))
671 s->a [1] -= 128 ;
672 else
673@@ -250,19 +250,18 @@ nms_adpcm_update (struct nms_adpcm_state *s)
674 s->a [0] = a1ul ;
675 } ;
676
677- /* Compute the zero predictor estimate. Rotate past deltas too. */
678- s->s_ez = 0 ;
679+ /* Compute the zero predictor estimate and rotate past deltas. */
680+ se = 0 ;
681 for (i = 5 ; i >= 0 ; i--)
682- { s->s_ez += s->d_q [i] * s->b [i] ;
683+ { se += (int_fast32_t) s->d_q [i] * s->b [i] ;
684 s->d_q [i + 1] = s->d_q [i] ;
685 } ;
686+ s->s_ez = se >> 14 ;
687
688- /* Compute the signal estimate. */
689- s->s_e = s->a [0] * s->s_r [0] + s->a [1] * s->s_r [1] + s->s_ez ;
690-
691- /* Return to scale */
692- s->s_ez >>= 14 ;
693- s->s_e >>= 14 ;
694+ /* Complete the signal estimate. */
695+ se += (int_fast32_t) s->a [0] * s->s_r [0] ;
696+ se += (int_fast32_t) s->a [1] * s->s_r [1] ;
697+ s->s_e = se >> 14 ;
698
699 /* Rotate members to prepare for next iteration. */
700 s->s_r [1] = s->s_r [0] ;
701@@ -274,7 +273,7 @@ nms_adpcm_update (struct nms_adpcm_state *s)
702 static int16_t
703 nms_adpcm_reconstruct_sample (struct nms_adpcm_state *s, uint8_t I)
704 { /* Variable names from ITU G.726 spec */
705- int dqx ;
706+ int_fast32_t dqx ;
707
708 /*
709 ** The ordering of the 12-bit right-shift is a precision loss. It agrees
710@@ -308,17 +307,17 @@ nms_adpcm_codec_init (struct nms_adpcm_state *s, enum nms_enc_type type)
711 /*
712 ** nms_adpcm_encode_sample()
713 **
714-** Encode a linear 16-bit pcm sample into a 2,3, or 4 bit NMS-ADPCM codeword
715+** Encode a linear 16-bit pcm sample into a 2, 3, or 4 bit NMS-ADPCM codeword
716 ** using and updating the predictor state.
717 */
718 static uint8_t
719 nms_adpcm_encode_sample (struct nms_adpcm_state *s, int16_t sl)
720 { /* Variable names from ITU G.726 spec */
721- int d ;
722+ int_fast32_t d ;
723 uint8_t I ;
724
725 /* Down scale the sample from 16 => ~14 bits. */
726- sl = (sl * 0x1fdf) / 0x7fff ;
727+ sl = ((int_fast32_t) sl * 0x1fdf) / 0x7fff ;
728
729 /* Compute estimate, and delta from actual value */
730 nms_adpcm_update (s) ;
731@@ -407,7 +406,7 @@ nms_adpcm_encode_sample (struct nms_adpcm_state *s, int16_t sl)
732 */
733 static int16_t
734 nms_adpcm_decode_sample (struct nms_adpcm_state *s, uint8_t I)
735-{ int sl ;
736+{ int_fast32_t sl ;
737
738 nms_adpcm_update (s) ;
739 sl = nms_adpcm_reconstruct_sample (s, I) ;
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch
new file mode 100644
index 0000000000..cb1778bede
--- /dev/null
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch
@@ -0,0 +1,68 @@
1From 593256a3e386a4e17fe26cfbfb813cf4996447d7 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de>
3Date: Mon, 4 Apr 2022 19:46:44 +0200
4Subject: [PATCH] Disable opus library
5
6We don't have opus in OE-Core which causes all the external libs to be disabled
7silently. The silent issue is discussed in the link below and hints a patch
8to make things configurable may be accepted.
9
10This patch removing the opus piece at least gets most of the functionality
11we previously used back whilst the issue is discussed.
12
13Upstream-Status: Denied [https://github.com/libsndfile/libsndfile/pull/812]
14
15Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
16Signed-off-by: Alexander Kanavin <alex@linutronix.de>
17---
18 configure.ac | 10 +++++-----
19 src/ogg_opus.c | 2 +-
20 2 files changed, 6 insertions(+), 6 deletions(-)
21
22diff --git a/configure.ac b/configure.ac
23index 727b67bc..f9d2e447 100644
24--- a/configure.ac
25+++ b/configure.ac
26@@ -373,13 +373,13 @@ AS_IF([test -n "$PKG_CONFIG"], [
27 enable_external_libs=yes
28 ])
29
30- AS_IF([test "x$ac_cv_flac$ac_cv_ogg$ac_cv_vorbis$ac_cv_vorbisenc$ac_cv_opus" = "xyesyesyesyesyes"], [
31+ AS_IF([test "x$ac_cv_flac$ac_cv_ogg$ac_cv_vorbis$ac_cv_vorbisenc" = "xyesyesyesyes"], [
32 HAVE_EXTERNAL_XIPH_LIBS=1
33 enable_external_libs=yes
34
35- EXTERNAL_XIPH_CFLAGS="$FLAC_CFLAGS $VORBIS_CFLAGS $VORBISENC_CFLAGS $SPEEX_CFLAGS $OPUS_CFLAGS $OGG_CFLAGS "
36- EXTERNAL_XIPH_LIBS="$FLAC_LIBS $VORBIS_LIBS $VORBISENC_LIBS $SPEEX_LIBS $OPUS_LIBS $OGG_LIBS "
37- EXTERNAL_XIPH_REQUIRE="flac ogg vorbis vorbisenc opus"
38+ EXTERNAL_XIPH_CFLAGS="$FLAC_CFLAGS $VORBIS_CFLAGS $VORBISENC_CFLAGS $SPEEX_CFLAGS $OGG_CFLAGS "
39+ EXTERNAL_XIPH_LIBS="$FLAC_LIBS $VORBIS_LIBS $VORBISENC_LIBS $SPEEX_LIBS $OGG_LIBS "
40+ EXTERNAL_XIPH_REQUIRE="flac ogg vorbis vorbisenc"
41
42 if test x$ac_cv_speex = "xyes" ; then
43 EXTERNAL_XIPH_REQUIRE="$EXTERNAL_XIPH_REQUIRE speex"
44@@ -788,7 +788,7 @@ AC_MSG_RESULT([
45
46 Experimental code : ................... ${enable_experimental:-no}
47 Using ALSA in example programs : ...... ${enable_alsa:-no}
48- External FLAC/Ogg/Vorbis/Opus : ....... ${enable_external_libs:-no}
49+ External FLAC/Ogg/Vorbis : ....... ${enable_external_libs:-no}
50 External MPEG Lame/MPG123 : ........... ${enable_mpeg:-no}
51 Building Octave interface : ........... ${OCTAVE_BUILD}
52
53diff --git a/src/ogg_opus.c b/src/ogg_opus.c
54index dfa446ee..0d4fe57b 100644
55--- a/src/ogg_opus.c
56+++ b/src/ogg_opus.c
57@@ -159,7 +159,7 @@
58 #include "sfendian.h"
59 #include "common.h"
60
61-#if HAVE_EXTERNAL_XIPH_LIBS
62+#if 0
63
64 #include <ogg/ogg.h>
65 #include <opus/opus.h>
66--
672.30.2
68
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb b/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb
deleted file mode 100644
index 044881a859..0000000000
--- a/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb
+++ /dev/null
@@ -1,46 +0,0 @@
1SUMMARY = "Audio format Conversion library"
2DESCRIPTION = "Library for reading and writing files containing sampled \
3sound (such as MS Windows WAV and the Apple/SGI AIFF format) through \
4one standard library interface."
5HOMEPAGE = "http://www.mega-nerd.com/libsndfile"
6AUTHOR = "Erik de Castro Lopo"
7DEPENDS = "flac libogg libvorbis"
8SECTION = "libs/multimedia"
9LICENSE = "LGPLv2.1"
10
11SRC_URI = "http://www.mega-nerd.com/libsndfile/files/libsndfile-${PV}.tar.gz \
12 file://CVE-2017-6892.patch \
13 file://CVE-2017-8361-8365.patch \
14 file://CVE-2017-8362.patch \
15 file://CVE-2017-8363.patch \
16 file://CVE-2017-14634.patch \
17 file://CVE-2018-13139.patch \
18 file://0001-a-ulaw-fix-multiple-buffer-overflows-432.patch \
19 file://CVE-2018-19432.patch \
20 file://CVE-2017-12562.patch \
21 file://CVE-2018-19758.patch \
22 file://CVE-2019-3832.patch \
23 "
24
25SRC_URI[md5sum] = "646b5f98ce89ac60cdb060fcd398247c"
26SRC_URI[sha256sum] = "1ff33929f042fa333aed1e8923aa628c3ee9e1eb85512686c55092d1e5a9dfa9"
27
28LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a"
29
30CVE_PRODUCT = "libsndfile"
31
32S = "${WORKDIR}/libsndfile-${PV}"
33
34PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}"
35PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
36PACKAGECONFIG[regtest] = "--enable-sqlite,--disable-sqlite,sqlite3"
37
38inherit autotools lib_package pkgconfig multilib_header
39
40do_install_append() {
41 oe_multilib_header sndfile.h
42}
43
44# This can't be replicated and is just a memory leak.
45# https://github.com/erikd/libsndfile/issues/398
46CVE_CHECK_WHITELIST += "CVE-2018-13419"
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb b/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb
new file mode 100644
index 0000000000..a9ee7c3575
--- /dev/null
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb
@@ -0,0 +1,32 @@
1SUMMARY = "Audio format Conversion library"
2DESCRIPTION = "Library for reading and writing files containing sampled \
3sound (such as MS Windows WAV and the Apple/SGI AIFF format) through \
4one standard library interface."
5HOMEPAGE = "https://libsndfile.github.io/libsndfile/"
6DEPENDS = "flac libogg libvorbis"
7SECTION = "libs/multimedia"
8LICENSE = "LGPL-2.1-only"
9
10SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libsndfile-${PV}.tar.xz \
11 file://noopus.patch \
12 file://cve-2022-33065.patch \
13 "
14GITHUB_BASE_URI = "https://github.com/libsndfile/libsndfile/releases/"
15
16SRC_URI[sha256sum] = "3799ca9924d3125038880367bf1468e53a1b7e3686a934f098b7e1d286cdb80e"
17
18LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a"
19
20CVE_PRODUCT = "libsndfile"
21
22S = "${WORKDIR}/libsndfile-${PV}"
23
24PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}"
25PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
26PACKAGECONFIG[regtest] = "--enable-sqlite,--disable-sqlite,sqlite3"
27
28inherit autotools lib_package pkgconfig multilib_header github-releases
29
30do_install:append() {
31 oe_multilib_header sndfile.h
32}
diff --git a/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb b/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
index 178e1a9240..11674af379 100644
--- a/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
+++ b/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
@@ -7,7 +7,6 @@ LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132" 7LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132"
8DEPENDS = "libogg" 8DEPENDS = "libogg"
9 9
10PR = "r1"
11 10
12SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \ 11SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
13 file://no-docs.patch" 12 file://no-docs.patch"
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch
new file mode 100644
index 0000000000..f5520fcafd
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch
@@ -0,0 +1,238 @@
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
new file mode 100644
index 0000000000..19a1ef727a
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0002.patch
@@ -0,0 +1,28 @@
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
new file mode 100644
index 0000000000..75f5d8946a
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52356.patch
@@ -0,0 +1,49 @@
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
new file mode 100644
index 0000000000..2020508fdf
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6228.patch
@@ -0,0 +1,31 @@
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
new file mode 100644
index 0000000000..5d15dff1d9
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch
@@ -0,0 +1,27 @@
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
new file mode 100644
index 0000000000..9fc8182fef
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch
@@ -0,0 +1,36 @@
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
new file mode 100644
index 0000000000..d5854a9059
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch
@@ -0,0 +1,162 @@
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.2.0.bb b/meta/recipes-multimedia/libtiff/tiff_4.6.0.bb
index ea8580a25e..d42ea6a6e5 100644
--- a/meta/recipes-multimedia/libtiff/tiff_4.2.0.bb
+++ b/meta/recipes-multimedia/libtiff/tiff_4.6.0.bb
@@ -4,17 +4,28 @@ DESCRIPTION = "Library provides support for the Tag Image File Format \
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 = "BSD-2-Clause"
7LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf" 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 " 12 file://CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch \
13SRC_URI[sha256sum] = "eb0484e568ead8fa23b513e9b0041df7e327f4ee2d22db5a533929dfc19633cb" 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
21SRC_URI[sha256sum] = "88b3979e6d5c7e32b50d7ec72fb15af724f6ab2cbf7e10880c360a77e4b5d99a"
14 22
15# exclude betas 23# exclude betas
16UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar" 24UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar"
17 25
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"
27CVE_STATUS[CVE-2023-3164] = "cpe-incorrect: Issue only affects the tiffcrop tool not compiled by default since 4.6.0"
28
18inherit autotools multilib_header 29inherit autotools multilib_header
19 30
20CACHED_CONFIGUREVARS = "ax_cv_check_gl_libgl=no" 31CACHED_CONFIGUREVARS = "ax_cv_check_gl_libgl=no"
@@ -23,9 +34,13 @@ PACKAGECONFIG ?= "cxx jpeg zlib lzma \
23 strip-chopping extrasample-as-alpha check-ycbcr-subsampling" 34 strip-chopping extrasample-as-alpha check-ycbcr-subsampling"
24 35
25PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx,," 36PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx,,"
37PACKAGECONFIG[jbig] = "--enable-jbig,--disable-jbig,jbig,"
26PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg," 38PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg,"
27PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib," 39PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib,"
28PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz," 40PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz,"
41PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp,"
42PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd,"
43PACKAGECONFIG[libdeflate] = "--enable-libdeflate,--disable-libdeflate,libdeflate,"
29 44
30# Convert single-strip uncompressed images to multiple strips of specified 45# Convert single-strip uncompressed images to multiple strips of specified
31# size (default: 8192) to reduce memory usage 46# size (default: 8192) to reduce memory usage
@@ -43,10 +58,10 @@ PACKAGECONFIG[check-ycbcr-subsampling] = "--enable-check-ycbcr-subsampling,--dis
43PACKAGECONFIG[chunky-strip-read] = "--enable-chunky-strip-read,--disable-chunky-strip-read,," 58PACKAGECONFIG[chunky-strip-read] = "--enable-chunky-strip-read,--disable-chunky-strip-read,,"
44 59
45PACKAGES =+ "tiffxx tiff-utils" 60PACKAGES =+ "tiffxx tiff-utils"
46FILES_tiffxx = "${libdir}/libtiffxx.so.*" 61FILES:tiffxx = "${libdir}/libtiffxx.so.*"
47FILES_tiff-utils = "${bindir}/*" 62FILES:tiff-utils = "${bindir}/*"
48 63
49do_install_append() { 64do_install:append() {
50 oe_multilib_header tiffconf.h 65 oe_multilib_header tiffconf.h
51} 66}
52 67
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch b/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch
deleted file mode 100644
index b2544cb44d..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch
+++ /dev/null
@@ -1,156 +0,0 @@
1From 0cafb99b57f43cf6ac2c6208718e49ad2dbe462d Mon Sep 17 00:00:00 2001
2From: Jan Schmidt <thaytan@noraisin.net>
3Date: Sun, 10 Nov 2013 00:49:52 +1100
4Subject: [PATCH] Import revision 1206 from upstream to fix PIE build.
5
6Functions MC_put_o_16_arm, MC_put_o_8_arm, MC_put_x_16_arm, MC_put_x_8_arm
7in libmpeg2/motion_comp_arm_s.S have addresses in .text, which is bad
8for shared libraries. Some environments demand that .text actually be
9read-only all the time, yet MC_put_o_16_arm etc require that the addresses
10be modified by the dynamic linking mechanism (dlopen, LoadLibrary, etc.)
11Even in those environments which permit the dynamic linker to modify the
12.text segment, the runtime cost of doing the relocation can be noticeable.
13
14This commit rewrites the linkage, discarding the tables of addresses
15in favor of tables of offsets. All transfers are local within each individual
16function, so there can be no interference by processing that occurs
17after assembly, such as link-time re-ordering (even of individual functions.)
18
19Patch by John Reiser <jreiser@bitwagon.com>
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
21Upstream-Status: Backport [https://code.videolan.org/videolan/libmpeg2/commit/946bf4b518aacc224f845e73708f99e394744499]
22---
23 libmpeg2/motion_comp_arm_s.S | 70 +++++++++++++++++-------------------
24 1 file changed, 33 insertions(+), 37 deletions(-)
25
26diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S
27index c921f7c..82143f8 100644
28--- a/libmpeg2/motion_comp_arm_s.S
29+++ b/libmpeg2/motion_comp_arm_s.S
30@@ -30,9 +30,13 @@ MC_put_o_16_arm:
31 pld [r1]
32 stmfd sp!, {r4-r11, lr} @ R14 is also called LR
33 and r4, r1, #3
34- adr r5, MC_put_o_16_arm_align_jt
35- add r5, r5, r4, lsl #2
36- ldr pc, [r5]
37+ ldrb r4, [pc, r4]
38+ add pc, pc, r4, lsl #2
39+ .byte (MC_put_o_16_arm_align0 - 0f)>>2
40+ .byte (MC_put_o_16_arm_align1 - 0f)>>2
41+ .byte (MC_put_o_16_arm_align2 - 0f)>>2
42+ .byte (MC_put_o_16_arm_align3 - 0f)>>2
43+0:
44
45 MC_put_o_16_arm_align0:
46 ldmia r1, {r4-r7}
47@@ -76,11 +80,6 @@ MC_put_o_16_arm_align3:
48 1: PROC(24)
49 bne 1b
50 ldmfd sp!, {r4-r11, pc} @@ update PC with LR content.
51-MC_put_o_16_arm_align_jt:
52- .word MC_put_o_16_arm_align0
53- .word MC_put_o_16_arm_align1
54- .word MC_put_o_16_arm_align2
55- .word MC_put_o_16_arm_align3
56
57 @ ----------------------------------------------------------------
58 .align
59@@ -91,9 +90,14 @@ MC_put_o_8_arm:
60 pld [r1]
61 stmfd sp!, {r4-r10, lr} @ R14 is also called LR
62 and r4, r1, #3
63- adr r5, MC_put_o_8_arm_align_jt
64- add r5, r5, r4, lsl #2
65- ldr pc, [r5]
66+ ldrb r4, [pc, r4]
67+ add pc, pc, r4, lsl #2
68+ .byte (MC_put_o_8_arm_align0 - 0f)>>2
69+ .byte (MC_put_o_8_arm_align1 - 0f)>>2
70+ .byte (MC_put_o_8_arm_align2 - 0f)>>2
71+ .byte (MC_put_o_8_arm_align3 - 0f)>>2
72+0:
73+
74 MC_put_o_8_arm_align0:
75 ldmia r1, {r4-r5}
76 add r1, r1, r2
77@@ -135,12 +139,6 @@ MC_put_o_8_arm_align3:
78 bne 1b
79 ldmfd sp!, {r4-r10, pc} @@ update PC with LR content.
80
81-MC_put_o_8_arm_align_jt:
82- .word MC_put_o_8_arm_align0
83- .word MC_put_o_8_arm_align1
84- .word MC_put_o_8_arm_align2
85- .word MC_put_o_8_arm_align3
86-
87 @ ----------------------------------------------------------------
88 .macro AVG_PW rW1, rW2
89 mov \rW2, \rW2, lsl #24
90@@ -160,12 +158,17 @@ MC_put_x_16_arm:
91 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
92 pld [r1]
93 stmfd sp!, {r4-r11,lr} @ R14 is also called LR
94+ ldr r11, 0f
95 and r4, r1, #3
96- adr r5, MC_put_x_16_arm_align_jt
97- ldr r11, [r5]
98 mvn r12, r11
99- add r5, r5, r4, lsl #2
100- ldr pc, [r5, #4]
101+ ldrb r4, [pc, r4]
102+ add pc, pc, r4, lsl #2
103+ .byte (MC_put_x_16_arm_align0 - 0f)>>2
104+ .byte (MC_put_x_16_arm_align1 - 0f)>>2
105+ .byte (MC_put_x_16_arm_align2 - 0f)>>2
106+ .byte (MC_put_x_16_arm_align3 - 0f)>>2
107+0:
108+ .word 0x01010101
109
110 .macro ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4
111 mov \R0, \R0, lsr #(\shift)
112@@ -238,12 +241,6 @@ MC_put_x_16_arm_align3:
113 add r0, r0, r2
114 bne 1b
115 ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.
116-MC_put_x_16_arm_align_jt:
117- .word 0x01010101
118- .word MC_put_x_16_arm_align0
119- .word MC_put_x_16_arm_align1
120- .word MC_put_x_16_arm_align2
121- .word MC_put_x_16_arm_align3
122
123 @ ----------------------------------------------------------------
124 .align
125@@ -253,12 +250,17 @@ MC_put_x_8_arm:
126 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
127 pld [r1]
128 stmfd sp!, {r4-r11,lr} @ R14 is also called LR
129+ ldr r11, 0f
130 and r4, r1, #3
131- adr r5, MC_put_x_8_arm_align_jt
132- ldr r11, [r5]
133 mvn r12, r11
134- add r5, r5, r4, lsl #2
135- ldr pc, [r5, #4]
136+ ldrb r4, [pc, r4]
137+ add pc, pc, r4, lsl #2
138+ .byte (MC_put_x_8_arm_align0 - 0f)>>2
139+ .byte (MC_put_x_8_arm_align1 - 0f)>>2
140+ .byte (MC_put_x_8_arm_align2 - 0f)>>2
141+ .byte (MC_put_x_8_arm_align3 - 0f)>>2
142+0:
143+ .word 0x01010101
144
145 .macro ADJ_ALIGN_DW shift, R0, R1, R2
146 mov \R0, \R0, lsr #(\shift)
147@@ -319,9 +321,3 @@ MC_put_x_8_arm_align3:
148 add r0, r0, r2
149 bne 1b
150 ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.
151-MC_put_x_8_arm_align_jt:
152- .word 0x01010101
153- .word MC_put_x_8_arm_align0
154- .word MC_put_x_8_arm_align1
155- .word MC_put_x_8_arm_align2
156- .word MC_put_x_8_arm_align3
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch b/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch
deleted file mode 100644
index 5bf68b39ee..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch
+++ /dev/null
@@ -1,55 +0,0 @@
1From cbcff58ed670c8edc0be1004384cbe0fd07d8d26 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 5 Jul 2017 18:49:21 -0700
4Subject: [PATCH 1/2] check for available arm optimizations
5
6Taken From
7http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/65_arm-test-with-compiler.patch/
8
9Upstream-Status: Pending
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 configure.ac | 12 ++++++++----
14 1 file changed, 8 insertions(+), 4 deletions(-)
15
16diff --git a/configure.ac b/configure.ac
17index acdcb1e..2c0a721 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -59,7 +59,7 @@ elif test x"$GCC" = x"yes"; then
21 AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"])
22
23 dnl arch-specific flags
24- arm_conditional=false
25+ build_arm_opt=false
26 case "$host" in
27 i?86-* | k?-* | x86_64-* | amd64-*)
28 AC_DEFINE([ARCH_X86],,[x86 architecture])
29@@ -102,8 +102,12 @@ elif test x"$GCC" = x"yes"; then
30 alpha*)
31 AC_DEFINE([ARCH_ALPHA],,[alpha architecture]);;
32 arm*)
33- arm_conditional=:
34- AC_DEFINE([ARCH_ARM],,[ARM architecture]);;
35+ AC_LANG(C)
36+ AC_COMPILE_IFELSE(
37+ [AC_LANG_SOURCE([[
38+ void foo(void) { __asm__ volatile("pld [r1]"); }]])],
39+ build_arm_opt=true; AC_DEFINE([ARCH_ARM],,[ARM architecture]),
40+ build_arm_opt=false);;
41 esac
42 elif test x"$CC" = x"tendracc"; then
43 dnl TenDRA portability checking compiler
44@@ -123,7 +127,7 @@ else
45 esac
46 fi
47
48-AM_CONDITIONAL(ARCH_ARM, ${arm_conditional})
49+AM_CONDITIONAL(ARCH_ARM, test x$build_arm_opt = xtrue)
50
51 dnl Checks for libtool - this must be done after we set cflags
52 AC_LIBTOOL_WIN32_DLL
53--
542.13.2
55
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch b/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch
deleted file mode 100644
index 8301692368..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch
+++ /dev/null
@@ -1,63 +0,0 @@
1From f9d9dc92d75f8910e3cd5fdcbea72e505cdf3493 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 5 Jul 2017 19:03:36 -0700
4Subject: [PATCH 2/2] Set visibility of global symbols used in ARM specific
5 assembly file to internal
6
7Taken from
8http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/60_arm-private-symbols.patch/
9
10Upstream-Status: Pending
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 libmpeg2/motion_comp_arm_s.S | 12 ++++++++----
15 1 file changed, 8 insertions(+), 4 deletions(-)
16
17diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S
18index f6c3d7d..c921f7c 100644
19--- a/libmpeg2/motion_comp_arm_s.S
20+++ b/libmpeg2/motion_comp_arm_s.S
21@@ -23,7 +23,8 @@
22
23 @ ----------------------------------------------------------------
24 .align
25- .global MC_put_o_16_arm
26+ .global MC_put_o_16_arm
27+ .internal MC_put_o_16_arm
28 MC_put_o_16_arm:
29 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
30 pld [r1]
31@@ -83,7 +84,8 @@ MC_put_o_16_arm_align_jt:
32
33 @ ----------------------------------------------------------------
34 .align
35- .global MC_put_o_8_arm
36+ .global MC_put_o_8_arm
37+ .internal MC_put_o_8_arm
38 MC_put_o_8_arm:
39 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
40 pld [r1]
41@@ -152,7 +154,8 @@ MC_put_o_8_arm_align_jt:
42 .endm
43
44 .align
45- .global MC_put_x_16_arm
46+ .global MC_put_x_16_arm
47+ .internal MC_put_x_16_arm
48 MC_put_x_16_arm:
49 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
50 pld [r1]
51@@ -244,7 +247,8 @@ MC_put_x_16_arm_align_jt:
52
53 @ ----------------------------------------------------------------
54 .align
55- .global MC_put_x_8_arm
56+ .global MC_put_x_8_arm
57+ .internal MC_put_x_8_arm
58 MC_put_x_8_arm:
59 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
60 pld [r1]
61--
622.13.2
63
diff --git a/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch b/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch
deleted file mode 100644
index 00b667d336..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch
+++ /dev/null
@@ -1,70 +0,0 @@
1Rewrite the public symbol check to verify the shared libraries, to check for
2more things, and to avoid duplication; fixes make check on ARM
3
4Taken From
5https://sources.debian.org/src/mpeg2dec/0.5.1-8/debian/patches/61_global-symbol-test.patch/
6
7Upstream-Status: Pending
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 test/globals | 42 +++++++++++++++++++++++++++---------------
12 1 file changed, 27 insertions(+), 15 deletions(-)
13
14--- mpeg2dec.orig/test/globals
15+++ mpeg2dec/test/globals
16@@ -1,4 +1,8 @@
17 #!/bin/sh
18+# TODO
19+# - fix checking of .a libs; problem is that "nm -g --defined-only" lists
20+# internal symbols; this can be solved by using objdump, but it's probably
21+# good enough to just run the tests on the shared lib
22
23 if test x"$srcdir" != x""; then
24 builddir="." # running from make check, but it does not define that
25@@ -14,22 +18,30 @@ builddir=`cd $builddir;pwd`
26
27 error=0
28
29-bad_globals=`nm -g --defined-only $builddir/../libmpeg2/*.o |\
30- awk '{if ($3) print $3}' | grep -v '^_\?mpeg2_'`
31-
32-if test x"$bad_globals" != x""; then
33- echo BAD GLOBAL SYMBOLS:
34- for s in $bad_globals; do echo $s; done
35+# check_bad_public_symbols <symbol prefix> <lib file> [<lib file>...]
36+#
37+# checks public symbols in shared libs:
38+# - allow prefix_anything
39+# - reject _prefixanything
40+# - allow _anything
41+# - reject anything else
42+#
43+# NB: skips missing files
44+check_bad_public_symbols() {
45+ symbols_prefix="$1"
46+ shift
47+ lib_files=`ls "$@" 2>/dev/null`
48+ [ -z "$lib_files" ] && return
49+ bad_globals=`nm -g --defined-only $lib_files |
50+ awk '{if ($3) print $3}' |
51+ sed -n "/^${symbols_prefix}_/ d; /^_${symbols_prefix}/ { p; d }; /^_/ d; p"`
52+ [ -z "$bad_globals" ] && return
53 error=1
54-fi
55-
56-bad_globals=`nm -g --defined-only $builddir/../libmpeg2/convert/*.o |\
57- awk '{if ($3) print $3}' | grep -v '^_\?mpeg2convert_'`
58+ echo BAD GLOBAL SYMBOLS in $lib_files:
59+ echo "$bad_globals"
60+}
61
62-if test x"$bad_globals" != x""; then
63- echo BAD GLOBAL SYMBOLS:
64- for s in $bad_globals; do echo $s; done
65- error=1
66-fi
67+check_bad_public_symbols mpeg2 $builddir/../libmpeg2/.libs/libmpeg2.so
68+check_bad_public_symbols mpeg2convert $builddir/../libmpeg2/convert/.libs/libmpeg2convert.so
69
70 exit $error
diff --git a/meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch b/meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch
deleted file mode 100644
index 5113ad44fe..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1Add new method to judge whether <altivec.h> is needed
2
3The original logic will use "typedef vector int t;" to judge
4whether <altivec.h> is needed. altivec.h contains the following
5statement:
6
7 #if !defined(__APPLE_ALTIVEC__)
8 #define vector __vector
9 #define pixel __pixel
10 #define bool
11 #endif
12
13In gcc-4.3.3, __APPLE_ALTIVEC__ is not defined by compiler, neither
14as vector, pixel, and bool. In order to make "typedef vector int t;"
15pass the compilation, we need to include altivec.h.
16
17However in gcc-4.5.0, __APPLE_ALTIVEC__ is defined by compiler,
18so as vector, pixel, and bool. We could not judge whether
19altivec.h is needed by "typedef vector int t;".
20Here we include another statement "int tmp = __CR6_EQ;", in
21which __CR6_EQ is defined in altivec.h.
22
23Upstream-Status: Pending
24
25Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
26
27diff -ruN a/configure.in b/configure.in
28--- a/configure.ac 2010-09-14 20:55:42.399687663 +0800
29+++ b/configure.ac 2010-09-14 20:56:43.403204648 +0800
30@@ -79,11 +79,11 @@
31 CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS"
32 AC_MSG_CHECKING([if <altivec.h> is needed])
33 AC_TRY_COMPILE([],
34- [typedef vector int t;
35+ [typedef vector int t; int tmp = __CR6_EQ;
36 vec_ld(0, (unsigned char *)0);],
37 [have_altivec=yes; AC_MSG_RESULT(no)],
38 [AC_TRY_COMPILE([#include <altivec.h>],
39- [typedef vector int t; vec_ld(0, (unsigned char *)0);],
40+ [typedef vector int t; int tmp = __CR6_EQ; vec_ld(0, (unsigned char *)0);],
41 [AC_DEFINE([HAVE_ALTIVEC_H],,
42 [Define to 1 if you have the <altivec.h> header.])
43 have_altivec=yes; AC_MSG_RESULT(yes)],
diff --git a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb
deleted file mode 100644
index d603602584..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb
+++ /dev/null
@@ -1,51 +0,0 @@
1SUMMARY = "Library and test program for decoding MPEG-2 and MPEG-1 video streams"
2DESCRIPTION = "mpeg2dec is a test program for libmpeg2. It decodes \
3mpeg-1 and mpeg-2 video streams, and also includes a demultiplexer \
4for mpeg-1 and mpeg-2 program streams. The main purpose of mpeg2dec \
5is to have a simple test bed for libmpeg2."
6HOMEPAGE = "https://libmpeg2.sourceforge.io/"
7SECTION = "libs"
8LICENSE = "GPLv2+"
9LICENSE_FLAGS = "commercial"
10LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
11 file://include/mpeg2.h;beginline=1;endline=22;md5=7766f4fcb58f0f8413c49a746f2ab89b"
12
13SRC_URI = "http://libmpeg2.sourceforge.net/files/libmpeg2-${PV}.tar.gz \
14 file://altivec_h_needed.patch \
15 file://0001-check-for-available-arm-optimizations.patch \
16 file://0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch \
17 file://61_global-symbol-test.patch \
18 file://0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch \
19 "
20
21S = "${WORKDIR}/libmpeg2-${PV}"
22
23SRC_URI[md5sum] = "0f92c7454e58379b4a5a378485bbd8ef"
24SRC_URI[sha256sum] = "dee22e893cb5fc2b2b6ebd60b88478ab8556cb3b93f9a0d7ce8f3b61851871d4"
25
26UPSTREAM_CHECK_URI = "http://libmpeg2.sourceforge.net/downloads.html"
27
28inherit autotools pkgconfig
29
30EXTRA_OECONF = "--enable-shared --disable-sdl"
31
32PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
33PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxv"
34
35PACKAGES = "mpeg2dec-dbg mpeg2dec mpeg2dec-doc libmpeg2 libmpeg2-dev libmpeg2convert libmpeg2convert-dev libmpeg2-staticdev libmpeg2convert-staticdev"
36
37FILES_${PN} = "${bindir}/*"
38FILES_libmpeg2 = "${libdir}/libmpeg2.so.*"
39FILES_libmpeg2convert = "${libdir}/libmpeg2convert.so.*"
40FILES_libmpeg2-dev = "${libdir}/libmpeg2.so \
41 ${libdir}/libmpeg2.la \
42 ${libdir}/libmpeg2arch.la \
43 ${libdir}/pkgconfig/libmpeg2.pc \
44 ${includedir}/mpeg2dec/mpeg2.h"
45FILES_libmpeg2-staticdev = "${libdir}/libmpeg2.a"
46FILES_libmpeg2convert-dev = "${libdir}/libmpeg2convert.so \
47 ${libdir}/libmpeg2convert.la \
48 ${libdir}/libmpeg2convertarch.la \
49 ${libdir}/pkgconfig/libmpeg2convert.pc \
50 ${includedir}/mpeg2dec/mpeg2convert.h"
51FILES_libmpeg2convert-staticdev = "${libdir}/libmpeg2convert.a"
diff --git a/meta/recipes-multimedia/mpg123/mpg123_1.26.4.bb b/meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb
index 35cad6ffc4..f7786e8588 100644
--- a/meta/recipes-multimedia/mpg123/mpg123_1.26.4.bb
+++ b/meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb
@@ -6,11 +6,11 @@ HOMEPAGE = "http://mpg123.de/"
6BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" 6BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/"
7SECTION = "multimedia" 7SECTION = "multimedia"
8 8
9LICENSE = "LGPLv2.1" 9LICENSE = "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] = "081991540df7a666b29049ad870f293cfa28863b36488ab4d58ceaa7b5846454" 13SRC_URI[sha256sum] = "ccdd1d0abc31d73d8b435fc658c79049d0a905b30669b6a42a03ad169dc609e6"
14 14
15UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar" 15UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
16 16
@@ -35,8 +35,11 @@ PACKAGECONFIG[sdl] = ",,libsdl2"
35AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" 35AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}"
36AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" 36AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}"
37 37
38CACHED_CONFIGUREVARS:libc-musl = "ac_cv_sys_file_offset_bits=no"
39
38EXTRA_OECONF = " \ 40EXTRA_OECONF = " \
39 --enable-shared \ 41 --enable-shared \
42 --enable-largefile \
40 --with-audio='${AUDIOMODS}' \ 43 --with-audio='${AUDIOMODS}' \
41 ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ 44 ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \
42 ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ 45 ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \
@@ -48,5 +51,5 @@ EXTRA_OECONF = " \
48#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' 51#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24'
49#... 52#...
50#| make[3]: *** [equalizer.lo] Error 1 53#| make[3]: *** [equalizer.lo] Error 1
51ARM_INSTRUCTION_SET_armv4 = "arm" 54ARM_INSTRUCTION_SET:armv4 = "arm"
52ARM_INSTRUCTION_SET_armv5 = "arm" 55ARM_INSTRUCTION_SET:armv5 = "arm"
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index 005cb36b8e..ae16056d24 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -2,10 +2,10 @@ SUMMARY = "Sound server for Linux and Unix-like operating systems"
2DESCRIPTION = "A general purpose sound server intended to run as a middleware \ 2DESCRIPTION = "A general purpose sound server intended to run as a middleware \
3between your applications and your hardware devices, either using ALSA or OSS." 3between your applications and your hardware devices, either using ALSA or OSS."
4HOMEPAGE = "http://www.pulseaudio.org" 4HOMEPAGE = "http://www.pulseaudio.org"
5AUTHOR = "Lennart Poettering"
6SECTION = "libs/multimedia" 5SECTION = "libs/multimedia"
7 6
8# Most of PulseAudio code is under LGPLv2.1+. There are a few exceptions: 7# Most of PulseAudio code is under LGPL-2.1-or-later. There are a few
8# exceptions:
9# 9#
10# The "adrian" echo canceller variant has code under a non-standard permissive 10# The "adrian" echo canceller variant has code under a non-standard permissive
11# license. See src/modules/echo-cancel/adrian-license.txt for details. This 11# license. See src/modules/echo-cancel/adrian-license.txt for details. This
@@ -39,12 +39,13 @@ SECTION = "libs/multimedia"
39# The dependency with the most complicated licensing considerations is libdbus. 39# The dependency with the most complicated licensing considerations is libdbus.
40# When PACKAGECONFIG[dbus] is enabled (like it is by default), libdbus will be 40# When PACKAGECONFIG[dbus] is enabled (like it is by default), libdbus will be
41# used by both the server and the client library (libpulse). Does this affect 41# used by both the server and the client library (libpulse). Does this affect
42# applications that use libpulse? It should be also noted that libdbus is 42# applications that use libpulse? It should also be noted that libdbus is
43# dual-licensed: either GPLv2+ or AFL-2 terms apply. Whose decision is it which 43# dual-licensed: either GPL-2.0-or-later or AFL-2.0 terms apply. Whose decision
44# of the licenses apply? What a mess. Some people hold the view that libdbus is 44# is it which of the licenses apply? What a mess. Some people hold the view that
45# a system library that is covered by the "special exception" in GPLv2's 45# libdbus is a system library that is covered by the "special exception" in
46# section 3, and therefore libdbus's GPL license doesn't affect PulseAudio. 46# GPLv2's section 3, and therefore libdbus's GPL license doesn't affect
47LICENSE = "LGPLv2.1+ & MIT & BSD-3-Clause" 47# PulseAudio.
48LICENSE = "LGPL-2.1-or-later & MIT & BSD-3-Clause"
48 49
49LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5cd938de1a7a53ea5adac38cc10c39 \ 50LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5cd938de1a7a53ea5adac38cc10c39 \
50 file://GPL;md5=4325afd396febcb659c36b49533135d4 \ 51 file://GPL;md5=4325afd396febcb659c36b49533135d4 \
@@ -59,7 +60,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5cd938de1a7a53ea5adac38cc10c39 \
59" 60"
60 61
61# libtool is needed for libltdl, used in module loading. 62# libtool is needed for libltdl, used in module loading.
62DEPENDS = "libatomic-ops libsndfile1 libtool" 63DEPENDS = "m4-native libatomic-ops libsndfile1 libtool"
63# optional 64# optional
64DEPENDS += "udev alsa-lib glib-2.0" 65DEPENDS += "udev alsa-lib glib-2.0"
65DEPENDS += "speexdsp libxml-parser-perl-native libcap" 66DEPENDS += "speexdsp libxml-parser-perl-native libcap"
@@ -108,7 +109,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5'
108 " 109 "
109 110
110PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus" 111PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus"
111PACKAGECONFIG[bluez5] = "-Dbluez5=true,-Dbluez5=false,bluez5 sbc" 112PACKAGECONFIG[bluez5] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc"
112PACKAGECONFIG[gsettings] = "-Dgsettings=enabled,-Dgsettings=disabled,glib-2.0-native glib-2.0" 113PACKAGECONFIG[gsettings] = "-Dgsettings=enabled,-Dgsettings=disabled,glib-2.0-native glib-2.0"
113PACKAGECONFIG[ofono] = "-Dbluez5-ofono-headset=true,-Dbluez5-ofono-headset=false,ofono" 114PACKAGECONFIG[ofono] = "-Dbluez5-ofono-headset=true,-Dbluez5-ofono-headset=false,ofono"
114PACKAGECONFIG[gtk] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3" 115PACKAGECONFIG[gtk] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
@@ -133,20 +134,20 @@ set_cfg_value () {
133 fi 134 fi
134} 135}
135 136
136do_compile_append () { 137do_compile:append () {
137 if ${@bb.utils.contains('PACKAGECONFIG', 'autospawn-for-root', 'true', 'false', d)}; then 138 if ${@bb.utils.contains('PACKAGECONFIG', 'autospawn-for-root', 'true', 'false', d)}; then
138 set_cfg_value src/pulse/client.conf allow-autospawn-for-root yes 139 set_cfg_value src/pulse/client.conf allow-autospawn-for-root yes
139 fi 140 fi
140} 141}
141 142
142do_install_append() { 143do_install:append() {
143 install -d ${D}${sysconfdir}/default/volatiles 144 install -d ${D}${sysconfdir}/default/volatiles
144 install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse 145 install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse
145} 146}
146 147
147USERADD_PACKAGES = "pulseaudio-server" 148USERADD_PACKAGES = "pulseaudio-server"
148GROUPADD_PARAM_pulseaudio-server = "--system pulse" 149GROUPADD_PARAM:pulseaudio-server = "--system pulse"
149USERADD_PARAM_pulseaudio-server = "--system --home /var/run/pulse \ 150USERADD_PARAM:pulseaudio-server = "--system --home /var/run/pulse \
150 --no-create-home --shell /bin/false \ 151 --no-create-home --shell /bin/false \
151 --groups audio,pulse --gid pulse pulse" 152 --groups audio,pulse --gid pulse pulse"
152 153
@@ -168,58 +169,58 @@ PACKAGES =+ "\
168PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'pulseaudio-module-console-kit', '', d)}" 169PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'pulseaudio-module-console-kit', '', d)}"
169 170
170#upgrade path: 171#upgrade path:
171RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf" 172RREPLACES:pulseaudio-server = "libpulse-bin libpulse-conf"
172 173
173PACKAGES_DYNAMIC += "^pulseaudio-lib-.* ^pulseaudio-module-.*" 174PACKAGES_DYNAMIC += "^pulseaudio-lib-.* ^pulseaudio-module-.*"
174 175
175FILES_libpulsecore = "${libdir}/pulseaudio/libpulsecore*.so" 176FILES:libpulsecore = "${libdir}/pulseaudio/libpulsecore*.so"
176FILES_libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so" 177FILES:libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so"
177 178
178# client.conf configures the behaviour of libpulse, so it belongs in the same 179# client.conf configures the behaviour of libpulse, so it belongs in the same
179# package. 180# package.
180FILES_libpulse = "${libdir}/libpulse.so.* ${sysconfdir}/pulse/client.conf" 181FILES:libpulse = "${libdir}/libpulse.so.* ${sysconfdir}/pulse/client.conf"
181 182
182FILES_libpulse-simple = "${libdir}/libpulse-simple.so.*" 183FILES:libpulse-simple = "${libdir}/libpulse-simple.so.*"
183FILES_libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*" 184FILES:libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*"
184 185
185FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir}/cmake" 186FILES:${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala"
186FILES_${PN}-conf = "${sysconfdir}" 187FILES:${PN}-bin += "${sysconfdir}/default/volatiles/04_pulse"
187FILES_${PN}-bin += "${sysconfdir}/default/volatiles/04_pulse" 188FILES:${PN}-pa-info = "${bindir}/pa-info"
188FILES_${PN}-pa-info = "${bindir}/pa-info" 189FILES:${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules */*/udev/rules.d/*.rules ${systemd_user_unitdir}/*"
189FILES_${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules */*/udev/rules.d/*.rules ${systemd_user_unitdir}/*" 190FILES:${PN}-server += "${datadir}/dbus-1/system.d/pulseaudio-system.conf"
190 191
191#SYSTEMD_PACKAGES = "${PN}-server" 192#SYSTEMD_PACKAGES = "${PN}-server"
192SYSTEMD_SERVICE_${PN}-server = "pulseaudio.service" 193SYSTEMD_SERVICE:${PN}-server = "pulseaudio.service"
193 194
194FILES_${PN}-misc = "${bindir}/* ${libdir}/pulseaudio/libpulsedsp.so" 195FILES:${PN}-misc = "${bindir}/* ${libdir}/pulseaudio/libpulsedsp.so"
195 196
196# Allow the pulseaudio package to be created empty as a placeholder (-dbg and -dev depend on it) 197# Allow the pulseaudio package to be created empty as a placeholder (-dbg and -dev depend on it)
197FILES_${PN} = "" 198FILES:${PN} = ""
198ALLOW_EMPTY_${PN} = "1" 199ALLOW_EMPTY:${PN} = "1"
199 200
200CONFFILES_libpulse = "${sysconfdir}/pulse/client.conf" 201CONFFILES:libpulse = "${sysconfdir}/pulse/client.conf"
201 202
202CONFFILES_pulseaudio-server = "\ 203CONFFILES:pulseaudio-server = "\
203 ${sysconfdir}/pulse/default.pa \ 204 ${sysconfdir}/pulse/default.pa \
204 ${sysconfdir}/pulse/daemon.conf \ 205 ${sysconfdir}/pulse/daemon.conf \
205 ${sysconfdir}/pulse/system.pa \ 206 ${sysconfdir}/pulse/system.pa \
206 " 207 "
207 208
208pkg_postinst_${PN}-server() { 209pkg_postinst:${PN}-server() {
209 if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then 210 if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then
210 ${sysconfdir}/init.d/populate-volatile.sh update 211 ${sysconfdir}/init.d/populate-volatile.sh update
211 fi 212 fi
212} 213}
213 214
214python populate_packages_prepend() { 215python populate_packages:prepend() {
215 plugindir = d.expand('${libdir}/pulse-${PV}/modules/') 216 plugindir = d.expand('${libdir}/pulseaudio/modules/')
216 do_split_packages(d, plugindir, r'^module-(.*)\.so$', '${PN}-module-%s', 'PulseAudio module for %s', extra_depends='', prepend=True) 217 do_split_packages(d, plugindir, r'^module-(.*)\.so$', '${PN}-module-%s', 'PulseAudio module for %s', extra_depends='', prepend=True)
217 do_split_packages(d, plugindir, r'^lib(.*)\.so$', '${PN}-lib-%s', 'PulseAudio library for %s', extra_depends='', prepend=True) 218 do_split_packages(d, plugindir, r'^lib(.*)\.so$', '${PN}-lib-%s', 'PulseAudio library for %s', extra_depends='', prepend=True)
218} 219}
219 220
220# pa-info is a bash script that collects information about the audio setup. 221# pa-info is a bash script that collects information about the audio setup.
221# It's primarily useful for attaching an information dump when reporting bugs. 222# It's primarily useful for attaching an information dump when reporting bugs.
222RDEPENDS_${PN}-pa-info = "\ 223RDEPENDS:${PN}-pa-info = "\
223 alsa-utils-amixer \ 224 alsa-utils-amixer \
224 alsa-utils-aplay \ 225 alsa-utils-aplay \
225 alsa-utils-scripts \ 226 alsa-utils-scripts \
@@ -227,7 +228,7 @@ RDEPENDS_${PN}-pa-info = "\
227 ${PN}-server \ 228 ${PN}-server \
228 " 229 "
229 230
230RDEPENDS_pulseaudio-server = " \ 231RDEPENDS:pulseaudio-server = " \
231 pulseaudio-module-filter-apply \ 232 pulseaudio-module-filter-apply \
232 pulseaudio-module-filter-heuristics \ 233 pulseaudio-module-filter-heuristics \
233 pulseaudio-module-udev-detect \ 234 pulseaudio-module-udev-detect \
@@ -253,23 +254,23 @@ RDEPENDS_pulseaudio-server = " \
253# If the server is installed, it's usually desirable to make ALSA applications 254# If the server is installed, it's usually desirable to make ALSA applications
254# use PulseAudio. alsa-plugins-pulseaudio-conf will install the configuration 255# use PulseAudio. alsa-plugins-pulseaudio-conf will install the configuration
255# that makes the PulseAudio plugin the default ALSA device. 256# that makes the PulseAudio plugin the default ALSA device.
256RDEPENDS_pulseaudio-server += "alsa-plugins-pulseaudio-conf" 257RDEPENDS:pulseaudio-server += "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}"
257 258
258# pulseaudio-module-console-kit is built whenever dbus is enabled by PACKAGECONFIG 259# pulseaudio-module-console-kit is built whenever dbus is enabled by PACKAGECONFIG
259# but consolekit depends on libx11 and is available only for DISTRO with x11 in DISTRO_FEATURES 260# but consolekit depends on libx11 and is available only for DISTRO with x11 in DISTRO_FEATURES
260RDEPENDS_pulseaudio-module-console-kit =+ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}" 261RDEPENDS:pulseaudio-module-console-kit =+ "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit x11', 'consolekit', '', d)}"
261RDEPENDS_pulseaudio-misc += "pulseaudio-module-cli-protocol-unix" 262RDEPENDS:pulseaudio-misc += "pulseaudio-module-cli-protocol-unix"
262 263
263FILES_${PN}-module-alsa-card += "${datadir}/pulseaudio/alsa-mixer" 264FILES:${PN}-module-alsa-card += "${datadir}/pulseaudio/alsa-mixer"
264 265
265GSETTINGS_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'gsettings', '${PN}-module-gsettings', '', d)}" 266GSETTINGS_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'gsettings', '${PN}-module-gsettings', '', d)}"
266FILES_${PN}-module-gsettings += "${libexecdir}/pulse/gsettings-helper ${datadir}/GConf/gsettings ${datadir}/glib-2.0/schemas" 267FILES:${PN}-module-gsettings += "${libexecdir}/pulse/gsettings-helper ${datadir}/GConf/gsettings ${datadir}/glib-2.0/schemas"
267 268
268# The console-kit module is good to have on X11 systems (it keeps PulseAudio 269# The console-kit module is good to have on X11 systems (it keeps PulseAudio
269# running for the duration of the user login session). The device-manager and 270# running for the duration of the user login session). The device-manager and
270# x11-* modules are referenced from the start-pulseaudio-x11 script, so those 271# x11-* modules are referenced from the start-pulseaudio-x11 script, so those
271# modules must be installed when X11 is enabled. 272# modules must be installed when X11 is enabled.
272RDEPENDS_pulseaudio-server += "\ 273RDEPENDS:pulseaudio-server += "\
273 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '\ 274 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '\
274 pulseaudio-module-device-manager \ 275 pulseaudio-module-device-manager \
275 pulseaudio-module-x11-cork-request \ 276 pulseaudio-module-x11-cork-request \
@@ -277,6 +278,6 @@ RDEPENDS_pulseaudio-server += "\
277 pulseaudio-module-x11-xsmp \ 278 pulseaudio-module-x11-xsmp \
278 ', '', d)}" 279 ', '', d)}"
279 280
280RDEPENDS_pulseaudio-server += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', \ 281RDEPENDS:pulseaudio-server += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', \
281 bb.utils.contains('DISTRO_FEATURES', 'systemd', 'pulseaudio-module-systemd-login', 'pulseaudio-module-console-kit', d), \ 282 bb.utils.contains('DISTRO_FEATURES', 'systemd', 'pulseaudio-module-systemd-login', 'pulseaudio-module-console-kit', d), \
282 '', d)}" 283 '', d)}"
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch
deleted file mode 100644
index d60a9a211f..0000000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch
+++ /dev/null
@@ -1,67 +0,0 @@
1From 6d202833a5ae241eeb648631cf95090c452198f9 Mon Sep 17 00:00:00 2001
2From: Tanu Kaskinen <tanuk@iki.fi>
3Date: Fri, 14 Feb 2020 07:29:33 +0200
4Subject: [PATCH] build-sys: Add an option for enabling/disabling Valgrind
5
6In OpenEmbedded the PulseAudio recipe currently disables Valgrind
7support by passing "ac_cv_header_valgrind_memcheck_h=no" to the
8configure script (this was added to make it deterministic whether
9Valgrdind support gets enabled or not). I'm converting the PulseAudio
10recipe to use Meson, and I needed an option to disable Valgrind.
11
12Upstream-Status: Backport
13
14Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
15---
16 meson.build | 6 +++++-
17 meson_options.txt | 3 +++
18 2 files changed, 8 insertions(+), 1 deletion(-)
19
20diff --git a/meson.build b/meson.build
21index 658eeee57..258962724 100644
22--- a/meson.build
23+++ b/meson.build
24@@ -220,7 +220,6 @@ check_headers = [
25 'sys/un.h',
26 'sys/wait.h',
27 'syslog.h',
28- 'valgrind/memcheck.h',
29 'xlocale.h',
30 ]
31
32@@ -231,6 +230,10 @@ foreach h : check_headers
33 endif
34 endforeach
35
36+if cc.has_header('valgrind/memcheck.h', required: get_option('valgrind'))
37+ cdata.set('HAVE_VALGRIND_MEMCHECK_H', 1)
38+endif
39+
40 # FIXME: move this to the above set
41 if cc.has_header('pthread.h')
42 cdata.set('HAVE_PTHREAD', 1)
43@@ -841,6 +844,7 @@ summary = [
44 'Enable SoXR (resampler): @0@'.format(soxr_dep.found()),
45 'Enable WebRTC echo canceller: @0@'.format(webrtc_dep.found()),
46 'Enable Gcov coverage: @0@'.format(get_option('gcov')),
47+ 'Enable Valgrind: @0@'.format(cdata.has('HAVE_VALGRIND_MEMCHECK_H')),
48 'Enable man pages: @0@'.format(get_option('man')),
49 'Enable unit tests: @0@'.format(get_option('tests')),
50 '',
51diff --git a/meson_options.txt b/meson_options.txt
52index 824f24e08..115cc84af 100644
53--- a/meson_options.txt
54+++ b/meson_options.txt
55@@ -138,6 +138,9 @@ option('systemd',
56 option('udev',
57 type : 'feature', value : 'auto',
58 description : 'Optional udev support')
59+option('valgrind',
60+ type : 'feature', value : 'auto',
61+ description : 'Optional Valgrind support')
62 option('x11',
63 type : 'feature', value : 'auto',
64 description : 'Optional X11 support')
65--
662.20.1
67
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch
new file mode 100644
index 0000000000..b1a43bd7f0
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch
@@ -0,0 +1,26 @@
1From 4ee244d0824e772ab35abb0f9df5e8088e16fc5d Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Mon, 26 Apr 2021 19:30:40 +0200
4Subject: [PATCH] doxygen/meson.build: remove dependency on doxygen binary
5
6New meson refuses to complete confuguration if doxygen is absent
7even if this target is never actually run. As we never run it,
8let's remove it, until upstream and/or meson figure out that it's
9optional and should be treated as such.
10
11Upstream-Status: Inappropriate [needs proper upstream fix]
12Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
13---
14 doxygen/meson.build | 2 --
15 1 file changed, 2 deletions(-)
16
17diff --git a/doxygen/meson.build b/doxygen/meson.build
18index afc0e49..df55c83 100644
19--- a/doxygen/meson.build
20+++ b/doxygen/meson.build
21@@ -6,5 +6,3 @@ doxygen_conf = configure_file(
22 configuration : cdata,
23 )
24
25-run_target('doxygen',
26- command : ['doxygen', doxygen_conf])
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson-Check-for-__get_cpuid.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson-Check-for-__get_cpuid.patch
deleted file mode 100644
index c9d8abcbf2..0000000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson-Check-for-__get_cpuid.patch
+++ /dev/null
@@ -1,82 +0,0 @@
1From 9d0dc8aedd08d77797f90fa6075a59613f18bf0d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 20 Dec 2020 07:56:07 -0800
4Subject: [PATCH] meson: Check for __get_cpuid
5
6checking for presence of cpuid.h header alone is not sufficient in some case to use
7cpuid related functions. e.g. when using clang which is built for
8multiple targets will have cpuid.h header as part of compiler headers in
9distribution but one maybe compiling pulseaudion for non-x86 target. The
10current check in meson succeeds and then compile fails later because
11cpuid.h is x86-specific header. Therefore checking for symbol that is
12needed makes this robust, so even if header exist it will try to ensure
13the given symbol can be used
14
15Fixes
16src/pulsecore/core-util.c:113:
17| /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/pulseaudio/14.0-r0/recipe-sysroot-native/usr/lib/clang/11.0.1/include/cpuid.h:11:2: error: this header is for x86 only
18| #error this header is for x86 only
19| ^
20
21Upstream-Status: Pending
22
23Signed-off-by: Khem Raj <raj.khem@gmail.com>
24Cc: Tanu Kaskinen <tanuk@iki.fi>
25---
26 meson.build | 5 ++++-
27 src/pulsecore/core-util.c | 2 +-
28 src/pulsecore/cpu-x86.c | 2 +-
29 3 files changed, 6 insertions(+), 3 deletions(-)
30
31diff --git a/meson.build b/meson.build
32index 2589627..5f5127e 100644
33--- a/meson.build
34+++ b/meson.build
35@@ -185,7 +185,6 @@ endif
36 check_headers = [
37 'arpa/inet.h',
38 'byteswap.h',
39- 'cpuid.h',
40 'dlfcn.h',
41 'execinfo.h',
42 'grp.h',
43@@ -243,6 +242,10 @@ if cc.has_header_symbol('pthread.h', 'PTHREAD_PRIO_INHERIT')
44 cdata.set('HAVE_PTHREAD_PRIO_INHERIT', 1)
45 endif
46
47+if cc.has_header_symbol('cpuid.h', '__get_cpuid')
48+ cdata.set('HAVE_GET_CPUID', 1)
49+endif
50+
51 # Functions
52
53 check_functions = [
54diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
55index 601b1d1..6f34e7c 100644
56--- a/src/pulsecore/core-util.c
57+++ b/src/pulsecore/core-util.c
58@@ -109,7 +109,7 @@
59 #include <sys/personality.h>
60 #endif
61
62-#ifdef HAVE_CPUID_H
63+#ifdef HAVE_GET_CPUID
64 #include <cpuid.h>
65 #endif
66
67diff --git a/src/pulsecore/cpu-x86.c b/src/pulsecore/cpu-x86.c
68index 4e59e14..86595d4 100644
69--- a/src/pulsecore/cpu-x86.c
70+++ b/src/pulsecore/cpu-x86.c
71@@ -24,7 +24,7 @@
72
73 #include <stdint.h>
74
75-#ifdef HAVE_CPUID_H
76+#ifdef HAVE_GET_CPUID
77 #include <cpuid.h>
78 #endif
79
80--
812.29.2
82
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_14.2.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb
index 03b99306b3..54c79b4097 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio_14.2.bb
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb
@@ -3,10 +3,8 @@ require pulseaudio.inc
3SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ 3SRC_URI = "http://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://0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch \
7 file://0001-meson-Check-for-__get_cpuid.patch \
8 file://volatiles.04_pulse \ 6 file://volatiles.04_pulse \
7 file://0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch \
9 " 8 "
10SRC_URI[md5sum] = "1efc916251910f1e9d4df7810e3e69f8" 9SRC_URI[sha256sum] = "053794d6671a3e397d849e478a80b82a63cb9d8ca296bd35b73317bb5ceb87b5"
11SRC_URI[sha256sum] = "75d3f7742c1ae449049a4c88900e454b8b350ecaa8c544f3488a2562a9ff66f1"
12UPSTREAM_CHECK_REGEX = "pulseaudio-(?P<pver>\d+(\.(?!99)\d+)+)\.tar" 10UPSTREAM_CHECK_REGEX = "pulseaudio-(?P<pver>\d+(\.(?!99)\d+)+)\.tar"
diff --git a/meta/recipes-multimedia/sbc/sbc/0001-sbc_primitives-Fix-build-on-non-x86.patch b/meta/recipes-multimedia/sbc/sbc/0001-sbc_primitives-Fix-build-on-non-x86.patch
deleted file mode 100644
index 11cec74fbb..0000000000
--- a/meta/recipes-multimedia/sbc/sbc/0001-sbc_primitives-Fix-build-on-non-x86.patch
+++ /dev/null
@@ -1,45 +0,0 @@
1From f4a1224323e386090a44bf70ee0ac9877ba7fb0d Mon Sep 17 00:00:00 2001
2From: Marius Bakke <marius@gnu.org>
3Date: Tue, 22 Dec 2020 11:04:26 +0000
4Subject: [PATCH] sbc_primitives: Fix build on non-x86.
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Don't call __builtin_cpu_init unless targeting i386 or x86_64.
10Otherwise we get an error at link time:
11
12 CC sbc/sbc_primitives.lo
13sbc/sbc_primitives.c: In function ‘sbc_init_primitives_x86’:
14sbc/sbc_primitives.c:596:2: warning: implicit declaration of function ‘__builtin_cpu_init’; did you mean ‘__builtin_irint’? [-Wimplicit-function-declaration]
15[...]
16 CCLD src/sbcdec
17ld: sbc/.libs/libsbc-private.a(sbc_primitives.o): in function `sbc_init_primitives':
18sbc_primitives.c:(.text+0x3a30): undefined reference to `__builtin_cpu_init'
19
20Upstream-Status: Backport
21Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
22---
23 sbc/sbc_primitives.c | 2 ++
24 1 file changed, 2 insertions(+)
25
26diff --git a/sbc/sbc_primitives.c b/sbc/sbc_primitives.c
27index 97a75be..09c214a 100644
28--- a/sbc/sbc_primitives.c
29+++ b/sbc/sbc_primitives.c
30@@ -593,6 +593,7 @@ static int sbc_calc_scalefactors_j(
31
32 static void sbc_init_primitives_x86(struct sbc_encoder_state *state)
33 {
34+#if defined(__x86_64__) || defined(__i386__)
35 __builtin_cpu_init();
36
37 #ifdef SBC_BUILD_WITH_MMX_SUPPORT
38@@ -604,6 +605,7 @@ static void sbc_init_primitives_x86(struct sbc_encoder_state *state)
39 if (__builtin_cpu_supports("sse4.2"))
40 sbc_init_primitives_sse(state);
41 #endif
42+#endif
43 }
44
45 /*
diff --git a/meta/recipes-multimedia/sbc/sbc_1.5.bb b/meta/recipes-multimedia/sbc/sbc_2.0.bb
index 04d82320c9..d25be9e80c 100644
--- a/meta/recipes-multimedia/sbc/sbc_1.5.bb
+++ b/meta/recipes-multimedia/sbc/sbc_2.0.bb
@@ -2,9 +2,9 @@ SUMMARY = "SBC Audio Codec"
2DESCRIPTION = "Bluetooth low-complexity, subband codec (SBC) library." 2DESCRIPTION = "Bluetooth low-complexity, subband codec (SBC) library."
3HOMEPAGE = "https://www.bluez.org" 3HOMEPAGE = "https://www.bluez.org"
4SECTION = "libs" 4SECTION = "libs"
5LICENSE = "GPLv2+ & LGPLv2.1+" 5LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
6LICENSE_${PN} = "LGPLv2.1+" 6LICENSE:${PN} = "LGPL-2.1-or-later"
7LICENSE_${PN}-examples = "GPLv2+" 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=24;md5=08e7a70b127f4100ff2cd7d629147d8d \
@@ -12,13 +12,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
12 12
13DEPENDS = "libsndfile1" 13DEPENDS = "libsndfile1"
14 14
15SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/${BP}.tar.xz \ 15SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/${BP}.tar.xz"
16 file://0001-sbc_primitives-Fix-build-on-non-x86.patch \
17 "
18 16
19SRC_URI[sha256sum] = "0cbad69823a99e8421fe0700e8cf9eeb8fa0c1ad28e8dbc2182b3353507931d2" 17SRC_URI[sha256sum] = "8f12368e1dbbf55e14536520473cfb338c84b392939cc9b64298360fd4a07992"
20 18
21inherit autotools pkgconfig 19inherit autotools pkgconfig
22 20
23PACKAGES =+ "${PN}-examples" 21PACKAGES =+ "${PN}-examples"
24FILES_${PN}-examples += "${bindir}/*" 22FILES:${PN}-examples += "${bindir}/*"
diff --git a/meta/recipes-multimedia/speex/speex_1.2.0.bb b/meta/recipes-multimedia/speex/speex_1.2.1.bb
index 3a0911d6f8..c40198fa8f 100644
--- a/meta/recipes-multimedia/speex/speex_1.2.0.bb
+++ b/meta/recipes-multimedia/speex/speex_1.2.1.bb
@@ -3,15 +3,15 @@ DESCRIPTION = "Speex is an Open Source/Free Software patent-free audio compressi
3HOMEPAGE = "http://www.speex.org" 3HOMEPAGE = "http://www.speex.org"
4SECTION = "libs" 4SECTION = "libs"
5LICENSE = "BSD-3-Clause" 5LICENSE = "BSD-3-Clause"
6LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8 \ 6LIC_FILES_CHKSUM = "file://COPYING;md5=eff3f76350f52a99a3df5eec6b79c02a \
7 file://include/speex/speex.h;beginline=1;endline=34;md5=ef8c8ea4f7198d71cf3509c6ed05ea50" 7 file://include/speex/speex.h;beginline=1;endline=34;md5=ef8c8ea4f7198d71cf3509c6ed05ea50 \
8 "
8DEPENDS = "libogg speexdsp" 9DEPENDS = "libogg speexdsp"
9 10
10SRC_URI = "http://downloads.xiph.org/releases/speex/speex-${PV}.tar.gz" 11SRC_URI = "http://downloads.xiph.org/releases/speex/speex-${PV}.tar.gz"
11UPSTREAM_CHECK_REGEX = "speex-(?P<pver>\d+(\.\d+)+)\.tar" 12UPSTREAM_CHECK_REGEX = "speex-(?P<pver>\d+(\.\d+)+)\.tar"
12 13
13SRC_URI[md5sum] = "8ab7bb2589110dfaf0ed7fa7757dc49c" 14SRC_URI[sha256sum] = "4b44d4f2b38a370a2d98a78329fefc56a0cf93d1c1be70029217baae6628feea"
14SRC_URI[sha256sum] = "eaae8af0ac742dc7d542c9439ac72f1f385ce838392dc849cae4536af9210094"
15 15
16inherit autotools pkgconfig lib_package 16inherit autotools pkgconfig lib_package
17 17
diff --git a/meta/recipes-multimedia/speex/speexdsp_1.2.0.bb b/meta/recipes-multimedia/speex/speexdsp_1.2.1.bb
index 6369646761..435b56bbb8 100644
--- a/meta/recipes-multimedia/speex/speexdsp_1.2.0.bb
+++ b/meta/recipes-multimedia/speex/speexdsp_1.2.1.bb
@@ -3,14 +3,13 @@ DESCRIPTION = "SpeexDSP is a patent-free, Open Source/Free Software DSP library.
3HOMEPAGE = "http://www.speex.org" 3HOMEPAGE = "http://www.speex.org"
4SECTION = "libs" 4SECTION = "libs"
5LICENSE = "BSD-3-Clause" 5LICENSE = "BSD-3-Clause"
6LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8" 6LIC_FILES_CHKSUM = "file://COPYING;md5=eff3f76350f52a99a3df5eec6b79c02a"
7 7
8SRC_URI = "http://downloads.xiph.org/releases/speex/speexdsp-${PV}.tar.gz" 8SRC_URI = "http://downloads.xiph.org/releases/speex/speexdsp-${PV}.tar.gz"
9 9
10UPSTREAM_CHECK_REGEX = "speexdsp-(?P<pver>\d+(\.\d+)+)\.tar" 10UPSTREAM_CHECK_REGEX = "speexdsp-(?P<pver>\d+(\.\d+)+)\.tar"
11 11
12SRC_URI[md5sum] = "b722df341576dc185d897131321008fc" 12SRC_URI[sha256sum] = "8c777343e4a6399569c72abc38a95b24db56882c83dbdb6c6424a5f4aeb54d3d"
13SRC_URI[sha256sum] = "682042fc6f9bee6294ec453f470dadc26c6ff29b9c9e9ad2ffc1f4312fd64771"
14 13
15inherit autotools pkgconfig 14inherit autotools pkgconfig
16 15
@@ -21,7 +20,9 @@ EXTRA_OECONF = "\
21 20
22# speexdsp was split off from speex in 1.2rc2. Older versions of speex can't 21# speexdsp was split off from speex in 1.2rc2. Older versions of speex can't
23# be installed together with speexdsp, since they contain overlapping files. 22# be installed together with speexdsp, since they contain overlapping files.
24RCONFLICTS_${PN} = "speex (< 1.2rc2)" 23RCONFLICTS:${PN} = "speex (< 1.2rc2)"
25RCONFLICTS_${PN}-dbg = "speex-dbg (< 1.2rc2)" 24RCONFLICTS:${PN}-dbg = "speex-dbg (< 1.2rc2)"
26RCONFLICTS_${PN}-dev = "speex-dev (< 1.2rc2)" 25RCONFLICTS:${PN}-dev = "speex-dev (< 1.2rc2)"
27RCONFLICTS_${PN}-staticdev = "speex-staticdev (< 1.2rc2)" 26RCONFLICTS:${PN}-staticdev = "speex-staticdev (< 1.2rc2)"
27
28BBCLASSEXTEND = "native"
diff --git a/meta/recipes-multimedia/webp/libwebp_1.2.0.bb b/meta/recipes-multimedia/webp/libwebp_1.4.0.bb
index 33bec2fe70..d922970479 100644
--- a/meta/recipes-multimedia/webp/libwebp_1.2.0.bb
+++ b/meta/recipes-multimedia/webp/libwebp_1.4.0.bb
@@ -14,7 +14,7 @@ LIC_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 = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz"
17SRC_URI[sha256sum] = "2fc8bbde9f97f2ab403c0224fb9ca62b2e6852cbc519e91ceaa7c153ffd88a0c" 17SRC_URI[sha256sum] = "61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5"
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
@@ -30,8 +30,8 @@ EXTRA_OECONF = " \
30EXTRA_OECONF_ARM = " \ 30EXTRA_OECONF_ARM = " \
31 ${@bb.utils.contains("TUNE_FEATURES","neon","--enable-neon","--disable-neon",d)} \ 31 ${@bb.utils.contains("TUNE_FEATURES","neon","--enable-neon","--disable-neon",d)} \
32" 32"
33EXTRA_OECONF_append_arm = " ${EXTRA_OECONF_ARM}" 33EXTRA_OECONF:append:arm = " ${EXTRA_OECONF_ARM}"
34EXTRA_OECONF_append_armeb = " ${EXTRA_OECONF_ARM}" 34EXTRA_OECONF:append:armeb = " ${EXTRA_OECONF_ARM}"
35 35
36inherit autotools lib_package 36inherit autotools lib_package
37 37
@@ -51,5 +51,7 @@ PACKAGECONFIG[gl] = "--enable-gl,--disable-gl,mesa-glut"
51 51
52PACKAGES =+ "${PN}-gif2webp" 52PACKAGES =+ "${PN}-gif2webp"
53 53
54DESCRIPTION_${PN}-gif2webp = "Simple tool to convert animated GIFs to WebP" 54DESCRIPTION:${PN}-gif2webp = "Simple tool to convert animated GIFs to WebP"
55FILES_${PN}-gif2webp = "${bindir}/gif2webp" 55FILES:${PN}-gif2webp = "${bindir}/gif2webp"
56
57BBCLASSEXTEND += "native nativesdk"
diff --git a/meta/recipes-multimedia/x264/x264_git.bb b/meta/recipes-multimedia/x264/x264_git.bb
index f95fb0c41e..e7d9e75e8d 100644
--- a/meta/recipes-multimedia/x264/x264_git.bb
+++ b/meta/recipes-multimedia/x264/x264_git.bb
@@ -2,32 +2,32 @@ SUMMARY = "H.264/MPEG-4 AVC video encoder"
2DESCRIPTION = "A free software library and application for encoding video streams into the H.264/MPEG-4 AVC format." 2DESCRIPTION = "A free software library and application for encoding video streams into the H.264/MPEG-4 AVC format."
3HOMEPAGE = "http://www.videolan.org/developers/x264.html" 3HOMEPAGE = "http://www.videolan.org/developers/x264.html"
4 4
5LICENSE = "GPLv2" 5LICENSE = "GPL-2.0-only"
6LICENSE_FLAGS = "commercial" 6LICENSE_FLAGS = "commercial"
7LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" 7LIC_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 \ 11SRC_URI = "git://github.com/mirror/x264;branch=stable;protocol=https \
12 file://don-t-default-to-cortex-a9-with-neon.patch \ 12 file://don-t-default-to-cortex-a9-with-neon.patch \
13 file://Fix-X32-build-by-disabling-asm.patch \ 13 file://Fix-X32-build-by-disabling-asm.patch \
14 " 14 "
15UPSTREAM_CHECK_COMMITS = "1" 15UPSTREAM_CHECK_COMMITS = "1"
16 16
17SRCREV = "544c61f082194728d0391fb280a6e138ba320a96" 17SRCREV = "baee400fa9ced6f5481a728138fed6e867b0ff7f"
18 18
19PV = "r3039+git${SRCPV}" 19PV = "r3039+git"
20 20
21S = "${WORKDIR}/git" 21S = "${WORKDIR}/git"
22 22
23inherit lib_package pkgconfig 23inherit lib_package pkgconfig
24 24
25X264_DISABLE_ASM = "" 25X264_DISABLE_ASM = ""
26X264_DISABLE_ASM_x86 = "--disable-asm" 26X264_DISABLE_ASM:x86 = "--disable-asm"
27X264_DISABLE_ASM_armv4 = "--disable-asm" 27X264_DISABLE_ASM:armv4 = "--disable-asm"
28X264_DISABLE_ASM_armv5 = "--disable-asm" 28X264_DISABLE_ASM:armv5 = "--disable-asm"
29X264_DISABLE_ASM_powerpc = "${@bb.utils.contains("TUNE_FEATURES", "spe", "--disable-asm", "", d)}" 29X264_DISABLE_ASM:powerpc = "${@bb.utils.contains("TUNE_FEATURES", "spe", "--disable-asm", "", d)}"
30X264_DISABLE_ASM_mipsarch = "${@bb.utils.contains("TUNE_FEATURES", "r6", "", "--disable-asm", d)}" 30X264_DISABLE_ASM:mipsarch = "${@bb.utils.contains("TUNE_FEATURES", "r6", "", "--disable-asm", d)}"
31 31
32EXTRA_OECONF = '--prefix=${prefix} \ 32EXTRA_OECONF = '--prefix=${prefix} \
33 --host=${HOST_SYS} \ 33 --host=${HOST_SYS} \