summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia/gstreamer
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2025-11-07 13:31:53 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-11-07 13:31:53 +0000
commit8c22ff0d8b70d9b12f0487ef696a7e915b9e3173 (patch)
treeefdc32587159d0050a69009bdf2330a531727d95 /meta/recipes-multimedia/gstreamer
parentd412d2747595c1cc4a5e3ca975e3adc31b2f7891 (diff)
downloadpoky-8c22ff0d8b70d9b12f0487ef696a7e915b9e3173.tar.gz
The poky repository master branch is no longer being updated.
You can either: a) switch to individual clones of bitbake, openembedded-core, meta-yocto and yocto-docs b) use the new bitbake-setup You can find information about either approach in our documentation: https://docs.yoctoproject.org/ Note that "poky" the distro setting is still available in meta-yocto as before and we continue to use and maintain that. Long live Poky! Some further information on the background of this change can be found in: https://lists.openembedded.org/g/openembedded-architecture/message/2179 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-multimedia/gstreamer')
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch38
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools_1.26.5.bb53
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples/0001-Make-player-examples-installable.patch37
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop10
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.26.5.bb38
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.5.bb29
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb67
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch25
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch27
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch32
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.5.bb178
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch41
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch226
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch29
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.5.bb96
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc47
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.5.bb81
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc19
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc73
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.5.bb44
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.5.bb30
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.5.bb31
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.5.bb53
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch33
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch106
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch47
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch71
-rwxr-xr-xmeta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest26
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.5.bb74
29 files changed, 0 insertions, 1661 deletions
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
deleted file mode 100644
index 34fcf6a30a..0000000000
--- a/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From 13b0d8e55ad490c8e867c740da2a00eb49319f8e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 9 Sep 2018 17:38:10 -0700
4Subject: [PATCH] connect has a different signature on musl
5
6On linux when not using glibc and using musl for C library, connect
7API has a different signature, this patch fixes this so it can compile
8on musl, the functionality should remain same as it is immediately
9typcasted to struct sockaddr_in* type inside the function before use
10
11Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8767]
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 validate/plugins/fault_injection/socket_interposer.c | 7 ++++++-
16 1 file changed, 6 insertions(+), 1 deletion(-)
17
18diff --git a/validate/plugins/fault_injection/socket_interposer.c b/validate/plugins/fault_injection/socket_interposer.c
19index 53c1ebb..ad7adf8 100644
20--- a/validate/plugins/fault_injection/socket_interposer.c
21+++ b/validate/plugins/fault_injection/socket_interposer.c
22@@ -100,10 +100,15 @@ socket_interposer_set_callback (struct sockaddr_in *addrin,
23 }
24
25 int
26-connect (int socket, const struct sockaddr_in *addrin, socklen_t address_len)
27+#if defined(__linux__) && !defined(__GLIBC__)
28+connect (int socket, const struct sockaddr *addr, socklen_t address_len)
29+#else
30+connect (int socket, const struct sockaddr_in *addr, socklen_t address_len)
31+#endif
32 {
33 size_t i;
34 int override_errno = 0;
35+ struct sockaddr_in* addrin = (struct sockaddr_in*)addr;
36 typedef ssize_t (*real_connect_fn) (int, const struct sockaddr_in *,
37 socklen_t);
38 static real_connect_fn real_connect = 0;
diff --git a/meta/recipes-multimedia/gstreamer/gst-devtools_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gst-devtools_1.26.5.bb
deleted file mode 100644
index b0de19c10d..0000000000
--- a/meta/recipes-multimedia/gstreamer/gst-devtools_1.26.5.bb
+++ /dev/null
@@ -1,53 +0,0 @@
1SUMMARY = "Gstreamer validation tool"
2DESCRIPTION = "A Tool to test GStreamer components"
3HOMEPAGE = "https://gstreamer.freedesktop.org/documentation/gst-devtools/index.html"
4SECTION = "multimedia"
5
6LICENSE = "LGPL-2.1-or-later"
7LIC_FILES_CHKSUM = "file://validate/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
8
9#S = "${WORKDIR}/gst-devtools-${PV}"
10
11SRC_URI = "https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-${PV}.tar.xz \
12 file://0001-connect-has-a-different-signature-on-musl.patch \
13 "
14
15SRC_URI[sha256sum] = "63d46a8effa8a225e25a464ba7538ace853fe0dc1e70366b27c208135e5401ce"
16
17DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base"
18RRECOMMENDS:${PN} = "git"
19
20FILES:${PN} += "${datadir}/gstreamer-1.0/* ${libdir}/gst-validate-launcher/* ${libdir}/gstreamer-1.0/*"
21
22inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection
23
24# TODO: put this in a gettext.bbclass patch
25def gettext_oemeson(d):
26 if d.getVar('USE_NLS') == 'no':
27 return '-Dnls=disabled'
28 # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set
29 if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'):
30 return '-Dnls=disabled'
31 return '-Dnls=enabled'
32
33# Build GstValidateVideo
34PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
35
36EXTRA_OEMESON += " \
37 -Ddoc=disabled \
38 -Ddebug_viewer=disabled \
39 -Dtests=disabled \
40 -Ddots_viewer=disabled \
41 -Dvalidate=enabled \
42 ${@gettext_oemeson(d)} \
43"
44
45do_install:append () {
46 for fn in ${bindir}/gst-validate-launcher \
47 ${libdir}/gst-validate-launcher/python/launcher/config.py; do
48 sed -i -e 's,${B},/usr/src/debug/${PN},g' -e 's,${S},/usr/src/debug/${PN},g' ${D}$fn
49 done
50}
51
52GIR_MESON_ENABLE_FLAG = "enabled"
53GIR_MESON_DISABLE_FLAG = "disabled"
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples/0001-Make-player-examples-installable.patch b/meta/recipes-multimedia/gstreamer/gst-examples/0001-Make-player-examples-installable.patch
deleted file mode 100644
index 828c87dc9a..0000000000
--- a/meta/recipes-multimedia/gstreamer/gst-examples/0001-Make-player-examples-installable.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 7924016fce2d0b435891a335cdae52fc939c7e3b Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Thu, 17 Aug 2017 11:07:02 +0300
4Subject: [PATCH] Make player examples installable
5
6Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
7Upstream-Status: Denied [Upstream considers these code examples, for now a least]
8
9https://bugzilla.gnome.org/show_bug.cgi?id=777827
10
11---
12 playback/player/gst-play/meson.build | 1 +
13 playback/player/gtk/meson.build | 1 +
14 2 files changed, 2 insertions(+)
15
16Index: gst-examples/playback/player/gst-play/meson.build
17===================================================================
18--- gst-examples.orig/playback/player/gst-play/meson.build
19+++ gst-examples/playback/player/gst-play/meson.build
20@@ -2,5 +2,6 @@ executable('gst-play',
21 ['gst-play.c',
22 'gst-play-kb.c',
23 'gst-play-kb.h'],
24+ install: true,
25 dependencies : [gst_dep, dependency('gstreamer-play-1.0'), m_dep])
26
27Index: gst-examples/playback/player/gtk/meson.build
28===================================================================
29--- gst-examples.orig/playback/player/gtk/meson.build
30+++ gst-examples/playback/player/gtk/meson.build
31@@ -20,5 +20,6 @@ if gtk_dep.found()
32 'gtk-video-renderer.h',
33 'gtk-video-renderer.c'],
34 c_args : extra_c_args,
35+ install: true,
36 dependencies : [gst_dep, gsttag_dep, gstplay_dep, gtk_dep, x11_dep])
37 endif
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop b/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop
deleted file mode 100644
index d165e5d910..0000000000
--- a/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
1[Desktop Entry]
2Name=Media Player
3Comment=Basic media player
4Icon=video-player
5TryExec=gtk-play
6Exec=gtk-play
7StartupNotify=true
8Terminal=false
9Type=Application
10Categories=GTK;AudioVideo;
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gst-examples_1.26.5.bb
deleted file mode 100644
index 2fa4ef11fe..0000000000
--- a/meta/recipes-multimedia/gstreamer/gst-examples_1.26.5.bb
+++ /dev/null
@@ -1,38 +0,0 @@
1SUMMARY = "GStreamer examples (including gtk-play, gst-play)"
2DESCRIPTION = "GStreamer example applications"
3HOMEPAGE = "https://gitlab.freedesktop.org/gstreamer/gst-examples"
4BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues"
5LICENSE = "LGPL-2.0-or-later"
6LIC_FILES_CHKSUM = "file://playback/player/gtk/gtk-play.c;beginline=1;endline=20;md5=f8c72dae3d36823ec716a9ebcae593b9"
7
8DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gtk+3 json-glib glib-2.0-native"
9
10SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gstreamer.git;protocol=https;branch=1.26;tag=${PV} \
11 file://0001-Make-player-examples-installable.patch \
12 file://gst-player.desktop \
13 "
14
15SRCREV = "82cbccedf7946a32d28a5aaec8ebbcb627770c19"
16
17S = "${UNPACKDIR}/${BP}/subprojects/gst-examples"
18
19inherit meson pkgconfig features_check
20
21# gtk-play has runtime errors otherwise
22TARGET_LDFLAGS += "-rdynamic"
23
24UPSTREAM_CHECK_GITTAGREGEX = "^(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
25
26ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
27
28do_install:append() {
29 install -m 0644 -D ${UNPACKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop
30}
31
32RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback"
33RRECOMMENDS:${PN} = "gstreamer1.0-plugins-base-meta \
34 gstreamer1.0-plugins-good-meta \
35 gstreamer1.0-plugins-bad-meta \
36 ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "gstreamer1.0-libav", "", d)} \
37 ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}"
38RPROVIDES:${PN} += "gst-player gst-player-bin"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.5.bb
deleted file mode 100644
index c3ee529497..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.5.bb
+++ /dev/null
@@ -1,29 +0,0 @@
1SUMMARY = "Libav-based GStreamer 1.x plugin"
2DESCRIPTION = "Contains a GStreamer plugin for using the encoders, decoders, \
3muxers, and demuxers provided by FFmpeg."
4HOMEPAGE = "http://gstreamer.freedesktop.org/"
5SECTION = "multimedia"
6
7# ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency
8LICENSE_FLAGS = "commercial"
9LICENSE = "LGPL-2.1-or-later"
10LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
11 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
12 "
13
14SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
15SRC_URI[sha256sum] = "d6de05884ef42376dd8cde89940f7b50ced96f4f6f52888e764cd8233e74f052"
16
17S = "${UNPACKDIR}/gst-libav-${PV}"
18
19DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg"
20
21inherit meson pkgconfig upstream-version-is-even
22
23EXTRA_OEMESON += " \
24 -Dtests=disabled \
25 -Ddoc=disabled \
26"
27
28FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
29FILES:${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
deleted file mode 100644
index dcb5c0e6b5..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
+++ /dev/null
@@ -1,67 +0,0 @@
1SUMMARY = "Gstreamer1.0 package groups"
2LICENSE = "MIT"
3
4# Due to use of COMBINED_FEATURES
5PACKAGE_ARCH = "${MACHINE_ARCH}"
6
7inherit packagegroup
8
9COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}"
10DEPENDS_UGLY = "${@'gstreamer1.0-plugins-ugly' if 'ugly' in COMMERCIAL_PLUGINS.split('-') else ''}"
11DEPENDS_BAD = "${@'gstreamer1.0-plugins-bad' if 'bad' in COMMERCIAL_PLUGINS.split('-') else ''}"
12DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good ${DEPENDS_UGLY} ${DEPENDS_BAD}"
13
14PACKAGES = "\
15 gstreamer1.0-meta-base \
16 gstreamer1.0-meta-x11-base \
17 gstreamer1.0-meta-audio \
18 gstreamer1.0-meta-debug \
19 gstreamer1.0-meta-video"
20
21ALLOW_EMPTY:gstreamer1.0-meta-base = "1"
22ALLOW_EMPTY:gstreamer1.0-meta-x11-base = "1"
23ALLOW_EMPTY:gstreamer1.0-meta-audio = "1"
24ALLOW_EMPTY:gstreamer1.0-meta-debug = "1"
25ALLOW_EMPTY:gstreamer1.0-meta-video = "1"
26
27RDEPENDS:gstreamer1.0-meta-base = "\
28 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gstreamer1.0-meta-x11-base', '', d)} \
29 gstreamer1.0 \
30 gstreamer1.0-plugins-base-playback \
31 gstreamer1.0-plugins-base-gio \
32 ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', 'gstreamer1.0-plugins-base-alsa', '',d)} \
33 gstreamer1.0-plugins-base-volume \
34 gstreamer1.0-plugins-base-audioconvert \
35 gstreamer1.0-plugins-base-audioresample \
36 gstreamer1.0-plugins-base-typefindfunctions \
37 gstreamer1.0-plugins-base-videoconvertscale \
38 gstreamer1.0-plugins-good-autodetect \
39 gstreamer1.0-plugins-good-soup"
40
41RRECOMMENDS:gstreamer1.0-meta-x11-base = "\
42 gstreamer1.0-plugins-base-ximagesink \
43 gstreamer1.0-plugins-base-xvimagesink"
44
45RDEPENDS:gstreamer1.0-meta-audio = "\
46 gstreamer1.0-meta-base \
47 gstreamer1.0-plugins-base-vorbis \
48 gstreamer1.0-plugins-base-ogg \
49 gstreamer1.0-plugins-good-wavparse \
50 gstreamer1.0-plugins-good-flac \
51 ${COMMERCIAL_AUDIO_PLUGINS}"
52
53RDEPENDS:gstreamer1.0-meta-debug = "\
54 gstreamer1.0-meta-base \
55 gstreamer1.0-plugins-good-debug \
56 gstreamer1.0-plugins-base-audiotestsrc \
57 gstreamer1.0-plugins-base-videotestsrc"
58
59RDEPENDS:gstreamer1.0-meta-video = "\
60 gstreamer1.0-meta-base \
61 gstreamer1.0-plugins-good-avi \
62 gstreamer1.0-plugins-good-matroska \
63 gstreamer1.0-plugins-base-theora \
64 ${COMMERCIAL_VIDEO_PLUGINS}"
65
66RRECOMMENDS:gstreamer1.0-meta-video = "\
67 gstreamer1.0-meta-audio"
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
deleted file mode 100644
index 307d669645..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch
+++ /dev/null
@@ -1,25 +0,0 @@
1From d24bb949e547a0ad69f3f47e4cf262a75bb9fe73 Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Tue, 26 Jan 2016 15:16:01 -0800
4Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os
5
6Upstream-Status: Pending
7
8Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
9---
10 gst-libs/gst/codecparsers/gstvc1parser.c | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c
14index ac8c378..3fc5298 100644
15--- a/gst-libs/gst/codecparsers/gstvc1parser.c
16+++ b/gst-libs/gst/codecparsers/gstvc1parser.c
17@@ -1732,7 +1732,7 @@ gst_vc1_parse_sequence_layer (const guint8 * data, gsize size,
18 GstVC1SeqLayer * seqlayer)
19 {
20 guint32 tmp;
21- guint8 tmp8;
22+ guint8 tmp8 = 0;
23 guint8 structA[8] = { 0, };
24 guint8 structB[12] = { 0, };
25 GstBitReader br;
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
deleted file mode 100644
index 7da8994e3d..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 728238129a8a91cad857023d2e7131591321409d Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Wed, 3 Feb 2016 18:05:41 -0800
4Subject: [PATCH] avoid including <sys/poll.h> directly
5
6musl libc generates warnings if <sys/poll.h> is included directly.
7
8Upstream-Status: Pending
9
10Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
11---
12 sys/dvb/gstdvbsrc.c | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c
16index ef565f7..6254420 100644
17--- a/sys/dvb/gstdvbsrc.c
18+++ b/sys/dvb/gstdvbsrc.c
19@@ -98,7 +98,7 @@
20 #include <gst/gst.h>
21 #include <gst/glib-compat-private.h>
22 #include <sys/ioctl.h>
23-#include <sys/poll.h>
24+#include <poll.h>
25 #include <fcntl.h>
26 #include <errno.h>
27 #include <stdio.h>
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
deleted file mode 100644
index 1edcf07c14..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 8f7a1c5591e27681f294ae5edf0f32689198abff Mon Sep 17 00:00:00 2001
2From: Andrey Zhizhikin <andrey.z@gmail.com>
3Date: Mon, 27 Jan 2020 10:22:35 +0000
4Subject: [PATCH] opencv: resolve missing opencv data dir in yocto build
5
6When Yocto build is performed, opencv searches for data dir using simple
7'test' command, this fails because pkg-config provides an absolute
8path on the target which needs to be prepended by PKG_CONFIG_SYSROOT_DIR
9in order for the 'test' utility to pick up the absolute path.
10
11Upstream-Status: Inappropriate [OE-specific]
12
13Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
14Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
15---
16 gst-libs/gst/opencv/meson.build | 3 +++
17 1 file changed, 3 insertions(+)
18
19diff --git a/gst-libs/gst/opencv/meson.build b/gst-libs/gst/opencv/meson.build
20index 64e913e..42a0958 100644
21--- a/gst-libs/gst/opencv/meson.build
22+++ b/gst-libs/gst/opencv/meson.build
23@@ -61,6 +61,9 @@ gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"']
24 # /usr/include/opencv4/opencv2/flann/logger.h:83:36: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
25 gstopencv_cargs += cxx.get_supported_arguments(['-Wno-missing-include-dirs', '-Wno-format-nonliteral'])
26
27+pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip()
28+opencv_prefix = pkgconf_sysroot + opencv_prefix
29+
30 # 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 fsmod = import('fs')
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.5.bb
deleted file mode 100644
index c1d416c2bc..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.5.bb
+++ /dev/null
@@ -1,178 +0,0 @@
1require gstreamer1.0-plugins-common.inc
2require gstreamer1.0-plugins-license.inc
3
4SUMMARY = "'Bad' GStreamer plugins and helper libraries "
5HOMEPAGE = "https://gstreamer.freedesktop.org/"
6BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues"
7
8SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
9 file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \
10 file://0002-avoid-including-sys-poll.h-directly.patch \
11 file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
12 "
13SRC_URI[sha256sum] = "9890f262f3b2a9564dcb629e9eb697d77b93d1f71897eda1a8170b7dcfe73294"
14
15S = "${UNPACKDIR}/gst-plugins-bad-${PV}"
16
17LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
18LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
19
20DEPENDS += "gstreamer1.0-plugins-base"
21
22inherit gobject-introspection
23
24PACKAGECONFIG ??= " \
25 ${GSTREAMER_ORC} \
26 ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
27 ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \
28 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
29 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
30 bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \
31 sndfile ttml uvch264 webp analytics \
32 ${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'rsvg', d)} \
33"
34
35PACKAGECONFIG[analytics] = "-Danalyticsoverlay=enabled,-Danalyticsoverlay=disabled,"
36PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom"
37PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass"
38PACKAGECONFIG[avtp] = "-Davtp=enabled,-Davtp=disabled,libavtp"
39PACKAGECONFIG[bluez] = "-Dbluez=enabled,-Dbluez=disabled,bluez5"
40PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2"
41PACKAGECONFIG[closedcaption] = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo"
42PACKAGECONFIG[curl] = "-Dcurl=enabled,-Dcurl=disabled,curl"
43PACKAGECONFIG[dash] = "-Ddash=enabled,-Ddash=disabled,libxml2"
44PACKAGECONFIG[dc1394] = "-Ddc1394=enabled,-Ddc1394=disabled,libdc1394"
45PACKAGECONFIG[directfb] = "-Ddirectfb=enabled,-Ddirectfb=disabled,directfb"
46PACKAGECONFIG[dtls] = "-Ddtls=enabled,-Ddtls=disabled,openssl"
47PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac"
48PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2"
49PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth"
50PACKAGECONFIG[gtk3] = "-Dgtk3=enabled,-Dgtk3=disabled,gtk3+"
51PACKAGECONFIG[hls] = "-Dhls=enabled,-Dhls=disabled,"
52# Pick atleast one crypto backend below when enabling hls
53PACKAGECONFIG[nettle] = "-Dhls-crypto=nettle,,nettle"
54PACKAGECONFIG[openssl] = "-Dhls-crypto=openssl,,openssl"
55PACKAGECONFIG[gcrypt] = "-Dhls-crypto=libgcrypt,,libgcrypt"
56# the gl packageconfig enables OpenGL elements that haven't been ported
57# to -base yet. They depend on the gstgl library in -base, so we do
58# not add GL dependencies here, since these are taken care of in -base.
59PACKAGECONFIG[gl] = "-Dgl=enabled,-Dgl=disabled,"
60PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm"
61PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265"
62PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2"
63PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms"
64PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug"
65PACKAGECONFIG[msdk] = "-Dmsdk=enabled -Dmfx_api=oneVPL,-Dmsdk=disabled,vpl-gpu-rt"
66PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon"
67PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft"
68PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv"
69PACKAGECONFIG[openh264] = "-Dopenh264=enabled,-Dopenh264=disabled,openh264"
70PACKAGECONFIG[openjpeg] = "-Dopenjpeg=enabled,-Dopenjpeg=disabled,openjpeg"
71PACKAGECONFIG[openmpt] = "-Dopenmpt=enabled,-Dopenmpt=disabled,libopenmpt"
72# the opus encoder/decoder elements are now in the -base package,
73# but the opus parser remains in -bad
74PACKAGECONFIG[opusparse] = "-Dopus=enabled,-Dopus=disabled,libopus"
75PACKAGECONFIG[resindvd] = "-Dresindvd=enabled,-Dresindvd=disabled,libdvdread libdvdnav"
76PACKAGECONFIG[rsvg] = "-Drsvg=enabled,-Drsvg=disabled,librsvg"
77PACKAGECONFIG[rtmp] = "-Drtmp=enabled,-Drtmp=disabled,rtmpdump"
78PACKAGECONFIG[sbc] = "-Dsbc=enabled,-Dsbc=disabled,sbc"
79PACKAGECONFIG[sctp] = "-Dsctp=enabled,-Dsctp=disabled"
80PACKAGECONFIG[smoothstreaming] = "-Dsmoothstreaming=enabled,-Dsmoothstreaming=disabled,libxml2"
81PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
82PACKAGECONFIG[srt] = "-Dsrt=enabled,-Dsrt=disabled,srt"
83PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp"
84PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa"
85PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo"
86PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev"
87# this enables support for stateless V4L2 mem2mem codecs, which is a newer form of
88# V4L2 codec; the V4L2 code in -base supports the older stateful V4L2 mem2mem codecs
89PACKAGECONFIG[v4l2codecs] = "-Dv4l2codecs=enabled,-Dv4l2codecs=disabled,libgudev"
90PACKAGECONFIG[va] = "-Dva=enabled,-Dva=disabled,libva"
91PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc"
92PACKAGECONFIG[voamrwbenc] = "-Dvoamrwbenc=enabled,-Dvoamrwbenc=disabled,vo-amrwbenc"
93PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader shaderc-native"
94PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols libdrm"
95PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp"
96PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice"
97PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing-1"
98PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar"
99PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libxcb libxkbcommon"
100PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265"
101
102GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'faad resindvd x265', d)}"
103
104EXTRA_OEMESON += " \
105 -Ddoc=disabled \
106 -Daes=enabled \
107 -Dcodecalpha=enabled \
108 -Ddecklink=enabled \
109 -Ddvb=enabled \
110 -Dfbdev=enabled \
111 -Dipcpipeline=enabled \
112 -Dshm=enabled \
113 -Dtranscode=enabled \
114 -Dandroidmedia=disabled \
115 -Dapplemedia=disabled \
116 -Dasio=disabled \
117 -Dbs2b=disabled \
118 -Dchromaprint=disabled \
119 -Dd3dvideosink=disabled \
120 -Dd3d11=disabled \
121 -Ddirectsound=disabled \
122 -Ddts=disabled \
123 -Dfdkaac=disabled \
124 -Dflite=disabled \
125 -Dgme=disabled \
126 -Dgs=disabled \
127 -Dgsm=disabled \
128 -Diqa=disabled \
129 -Dladspa=disabled \
130 -Dldac=disabled \
131 -Dlv2=disabled \
132 -Dmagicleap=disabled \
133 -Dmediafoundation=disabled \
134 -Dmicrodns=disabled \
135 -Dmpeg2enc=disabled \
136 -Dmplex=disabled \
137 -Dmusepack=disabled \
138 -Dnvcodec=disabled \
139 -Dopenexr=disabled \
140 -Dopenni2=disabled \
141 -Dopenaptx=disabled \
142 -Dopensles=disabled \
143 -Donnx=disabled \
144 -Dqroverlay=disabled \
145 -Dsoundtouch=disabled \
146 -Dspandsp=disabled \
147 -Dsvthevcenc=disabled \
148 -Dteletext=disabled \
149 -Dwasapi=disabled \
150 -Dwasapi2=disabled \
151 -Dwildmidi=disabled \
152 -Dwinks=disabled \
153 -Dwinscreencap=disabled \
154 -Dwpe=disabled \
155 -Dzxing=disabled \
156 -Dlcevcdecoder=disabled \
157 -Dlcevcencoder=disabled \
158 -Dtensordecoders=disabled \
159 -Dnvcomp=disabled \
160 -Dnvdswrapper=disabled \
161 -Dsvtjpegxs=disabled \
162 -Dwebview2=disabled \
163 -Daja=disabled \
164 -Dcuda-nvmm=disabled \
165 -Dd3d12=disabled \
166"
167
168export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}"
169
170ARM_INSTRUCTION_SET:armv4 = "arm"
171ARM_INSTRUCTION_SET:armv5 = "arm"
172
173CVE_PRODUCT = "gst-plugins-bad"
174
175FILES:${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs"
176FILES:${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
177FILES:${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles"
178FILES:${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
deleted file mode 100644
index 719c73d3e3..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From a37f0063103e98f5109132ea302b919b92e26a38 Mon Sep 17 00:00:00 2001
2From: zhouming <b42586@freescale.com>
3Date: Wed, 14 May 2014 10:16:20 +0800
4Subject: [PATCH] ENGR00312515: get caps from src pad when query caps
5
6https://bugzilla.gnome.org/show_bug.cgi?id=728312
7
8Upstream-Status: Pending
9
10Signed-off-by: zhouming <b42586@freescale.com>
11---
12 gst-libs/gst/tag/gsttagdemux.c | 13 +++++++++++++
13 1 file changed, 13 insertions(+)
14 mode change 100644 => 100755 gst-libs/gst/tag/gsttagdemux.c
15
16diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
17old mode 100644
18new mode 100755
19index 975fe83..df82840
20--- a/gst-libs/gst/tag/gsttagdemux.c
21+++ b/gst-libs/gst/tag/gsttagdemux.c
22@@ -1796,6 +1796,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
23 }
24 break;
25 }
26+ case GST_QUERY_CAPS:
27+ {
28+
29+ /* We can hijack caps query if we typefind already */
30+ if (demux->priv->src_caps) {
31+ gst_query_set_caps_result (query, demux->priv->src_caps);
32+ res = TRUE;
33+ } else {
34+ res = gst_pad_query_default (pad, parent, query);
35+ }
36+ break;
37+ }
38+
39 default:
40 res = gst_pad_query_default (pad, parent, query);
41 break;
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
deleted file mode 100644
index bf1e2a89e3..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
+++ /dev/null
@@ -1,226 +0,0 @@
1From f892f0be8ae88acc6482f4b9a9a4db5f03b7adf8 Mon Sep 17 00:00:00 2001
2From: Mingke Wang <mingke.wang@freescale.com>
3Date: Thu, 19 Mar 2015 14:17:10 +0800
4Subject: [PATCH] ssaparse: enhance SSA text lines parsing.
5
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.
8
9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/178]
10
11Signed-off-by: Mingke Wang <mingke.wang@freescale.com>
12---
13 gst/subparse/gstssaparse.c | 150 +++++++++++++++++++++++++++++++++----
14 1 file changed, 134 insertions(+), 16 deletions(-)
15 mode change 100644 => 100755 gst/subparse/gstssaparse.c
16
17diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c
18old mode 100644
19new mode 100755
20index c162a54..bd8afd9
21--- a/gst/subparse/gstssaparse.c
22+++ b/gst/subparse/gstssaparse.c
23@@ -304,6 +304,7 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt)
24 * gst_ssa_parse_push_line:
25 * @parse: caller element
26 * @txt: text to push
27+ * @size: text size need to be parse
28 * @start: timestamp for the buffer
29 * @duration: duration for the buffer
30 *
31@@ -313,27 +314,133 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt)
32 * Returns: result of the push of the created buffer
33 */
34 static GstFlowReturn
35-gst_ssa_parse_push_line (GstSsaParse * parse, gchar * txt,
36+gst_ssa_parse_push_line (GstSsaParse * parse, gchar * txt, gint size,
37 GstClockTime start, GstClockTime duration)
38 {
39 GstFlowReturn ret;
40 GstBuffer *buf;
41- gchar *t, *escaped;
42+ gchar *t, *text, *p, *escaped, *p_start, *p_end;
43 gint num, i, len;
44+ GstClockTime start_time = G_MAXUINT64, end_time = 0;
45
46- num = atoi (txt);
47- GST_LOG_OBJECT (parse, "Parsing line #%d at %" GST_TIME_FORMAT,
48- num, GST_TIME_ARGS (start));
49-
50- /* skip all non-text fields before the actual text */
51+ p = text = g_malloc(size + 1);
52+ *p = '\0';
53 t = txt;
54- for (i = 0; i < 8; ++i) {
55- t = strchr (t, ',');
56+
57+ /* there are may have multiple dialogue lines at a time */
58+ while (*t) {
59+ /* ignore leading white space characters */
60+ while (isspace(*t))
61+ t++;
62+
63+ /* ignore Format: and Style: lines */
64+ if (strncmp(t, "Format:", 7) == 0 || strncmp(t, "Style:", 6) == 0) {
65+ while (*t != '\0' && *t != '\n') {
66+ t++;
67+ }
68+ }
69+
70+ if (*t == '\0')
71+ break;
72+
73+ /* continue with next line */
74+ if (*t == '\n') {
75+ t++;
76+ continue;
77+ }
78+
79+ if(strncmp(t, "Dialogue:", 9) != 0) {
80+ /* not started with "Dialogue:", it must be a line trimmed by demuxer */
81+ num = atoi (t);
82+ GST_LOG_OBJECT (parse, "Parsing line #%d at %" GST_TIME_FORMAT,
83+ num, GST_TIME_ARGS (start));
84+
85+ /* skip all non-text fields before the actual text */
86+ for (i = 0; i < 8; ++i) {
87+ t = strchr (t, ',');
88+ if (t == NULL)
89+ break;
90+ ++t;
91+ }
92+ } else {
93+ /* started with "Dialogue:", update timestamp and duration */
94+ /* time format are like Dialog:Mark,0:00:01.02,0:00:03.04,xx,xxx,... */
95+ guint hour, min, sec, msec, len;
96+ GstClockTime tmp;
97+ gchar t_str[12] = {0};
98+
99+ /* find the first ',' */
100+ p_start = strchr (t, ',');
101+ if (p_start)
102+ p_end = strchr (++p_start, ',');
103+
104+ if (p_start && p_end) {
105+ /* copy text between first ',' and second ',' */
106+ strncpy(t_str, p_start, p_end - p_start);
107+ if (sscanf (t_str, "%u:%u:%u.%u", &hour, &min, &sec, &msec) == 4) {
108+ tmp = ((hour*3600) + (min*60) + sec) * GST_SECOND + msec*GST_MSECOND;
109+ GST_DEBUG_OBJECT (parse, "Get start time:%02d:%02d:%02d:%03d\n",
110+ hour, min, sec, msec);
111+ if (start_time > tmp)
112+ start_time = tmp;
113+ } else {
114+ GST_WARNING_OBJECT (parse,
115+ "failed to parse ssa start timestamp string :%s", t_str);
116+ }
117+
118+ p_start = p_end;
119+ p_end = strchr (++p_start, ',');
120+ if (p_end) {
121+ /* copy text between second ',' and third ',' */
122+ strncpy(t_str, p_start, p_end - p_start);
123+ if (sscanf (t_str, "%u:%u:%u.%u", &hour, &min, &sec, &msec) == 4) {
124+ tmp = ((hour*3600) + (min*60) + sec)*GST_SECOND + msec*GST_MSECOND;
125+ GST_DEBUG_OBJECT(parse, "Get end time:%02d:%02d:%02d:%03d\n",
126+ hour, min, sec, msec);
127+ if (end_time < tmp)
128+ end_time = tmp;
129+ } else {
130+ GST_WARNING_OBJECT (parse,
131+ "failed to parse ssa end timestamp string :%s", t_str);
132+ }
133+ }
134+ }
135+
136+ /* now skip all non-text fields before the actual text */
137+ for (i = 0; i <= 8; ++i) {
138+ t = strchr (t, ',');
139+ if (t == NULL)
140+ break;
141+ ++t;
142+ }
143+ }
144+
145+ /* line end before expected number of ',', not a Dialogue line */
146 if (t == NULL)
147- return GST_FLOW_ERROR;
148- ++t;
149+ break;
150+
151+ /* if not the first line, and the last character of previous line is '\0',
152+ * then replace it with '\N' */
153+ if (p != text && *p == '\0') {
154+ *p++ = '\\';
155+ *p++ = 'N';
156+ }
157+
158+ /* copy all actual text of this line */
159+ while ((*t != '\0') && (*t != '\n'))
160+ *p++ = *t++;
161+
162+ /* add a terminator at the end */
163+ *p = '\0';
164+ }
165+
166+ /* not valid text found in this buffer return OK to let caller unref buffer */
167+ if (strlen(text) <= 0) {
168+ GST_WARNING_OBJECT (parse, "Not valid text found in this buffer\n");
169+ return GST_FLOW_ERROR;
170 }
171
172+ t = text;
173 GST_LOG_OBJECT (parse, "Text : %s", t);
174
175 if (gst_ssa_parse_remove_override_codes (parse, t)) {
176@@ -351,13 +458,22 @@ gst_ssa_parse_push_line (GstSsaParse * parse, gchar * txt,
177 gst_buffer_fill (buf, 0, escaped, len + 1);
178 gst_buffer_set_size (buf, len);
179 g_free (escaped);
180+ g_free(t);
181+
182+ if (start_time != G_MAXUINT64)
183+ GST_BUFFER_TIMESTAMP (buf) = start_time;
184+ else
185+ GST_BUFFER_TIMESTAMP (buf) = start;
186
187- GST_BUFFER_TIMESTAMP (buf) = start;
188- GST_BUFFER_DURATION (buf) = duration;
189+ if (end_time > start_time)
190+ GST_BUFFER_DURATION (buf) = end_time - start_time;
191+ else
192+ GST_BUFFER_DURATION (buf) = duration;
193
194 GST_LOG_OBJECT (parse, "Pushing buffer with timestamp %" GST_TIME_FORMAT
195- " and duration %" GST_TIME_FORMAT, GST_TIME_ARGS (start),
196- GST_TIME_ARGS (duration));
197+ " and duration %" GST_TIME_FORMAT,
198+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
199+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
200
201 ret = gst_pad_push (parse->srcpad, buf);
202
203@@ -377,6 +493,7 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf)
204 GstClockTime ts;
205 gchar *txt;
206 GstMapInfo map;
207+ gint size;
208
209 if (G_UNLIKELY (!parse->framed))
210 goto not_framed;
211@@ -394,13 +511,14 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf)
212 /* make double-sure it's 0-terminated and all */
213 gst_buffer_map (buf, &map, GST_MAP_READ);
214 txt = g_strndup ((gchar *) map.data, map.size);
215+ size = map.size;
216 gst_buffer_unmap (buf, &map);
217
218 if (txt == NULL)
219 goto empty_text;
220
221 ts = GST_BUFFER_TIMESTAMP (buf);
222- ret = gst_ssa_parse_push_line (parse, txt, ts, GST_BUFFER_DURATION (buf));
223+ ret = gst_ssa_parse_push_line (parse, txt, size, ts, GST_BUFFER_DURATION (buf));
224
225 if (ret != GST_FLOW_OK && GST_CLOCK_TIME_IS_VALID (ts)) {
226 GstSegment segment;
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
deleted file mode 100644
index 1a988b99de..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 6f06f4b2f13f028250189225a46a39f402428930 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Tue, 21 May 2019 14:01:11 +0200
4Subject: [PATCH] viv-fb: Make sure config.h is included
5
6This prevents build errors due to missing GST_API_* symbols
7
8Upstream-Status: Pending
9
10Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
11---
12 gst-libs/gst/gl/gl-prelude.h | 4 ++++
13 1 file changed, 4 insertions(+)
14
15diff --git a/gst-libs/gst/gl/gl-prelude.h b/gst-libs/gst/gl/gl-prelude.h
16index 85fca5a..946c729 100644
17--- a/gst-libs/gst/gl/gl-prelude.h
18+++ b/gst-libs/gst/gl/gl-prelude.h
19@@ -22,6 +22,10 @@
20 #ifndef __GST_GL_PRELUDE_H__
21 #define __GST_GL_PRELUDE_H__
22
23+#ifdef HAVE_CONFIG_H
24+#include "config.h"
25+#endif
26+
27 #include <gst/gst.h>
28
29 #ifdef BUILDING_GST_GL
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.5.bb
deleted file mode 100644
index f12d81cda9..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.5.bb
+++ /dev/null
@@ -1,96 +0,0 @@
1require gstreamer1.0-plugins-common.inc
2
3SUMMARY = "'Base' GStreamer plugins and helper libraries"
4HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues"
6LICENSE = "LGPL-2.1-or-later"
7LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770"
8
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 \
11 file://0003-viv-fb-Make-sure-config.h-is-included.patch \
12 file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \
13 "
14SRC_URI[sha256sum] = "f0c0e26cbedaa57732cb6a578e8cc13a1164bf18d737d55c333061c52f0c48d7"
15
16S = "${UNPACKDIR}/gst-plugins-base-${PV}"
17
18DEPENDS += "iso-codes util-linux zlib"
19
20inherit gobject-introspection
21
22# opengl packageconfig factored out to make it easy for distros
23# and BSP layers to choose OpenGL APIs/platforms/window systems
24PACKAGECONFIG_X11 = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl glx', '', d)}"
25PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl ${PACKAGECONFIG_X11}', '', d)}"
26
27PACKAGECONFIG ??= " \
28 ${GSTREAMER_ORC} \
29 ${PACKAGECONFIG_GL} \
30 ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \
31 jpeg ogg pango png theora vorbis \
32 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
33"
34
35OPENGL_APIS = 'opengl gles2'
36OPENGL_PLATFORMS = 'egl glx'
37
38X11DEPENDS = "virtual/libx11 libsm libxrender libxv"
39X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled"
40X11DISABLEOPTS = "-Dx11=disabled -Dxvideo=disabled -Dxshm=disabled"
41
42PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib"
43PACKAGECONFIG[cdparanoia] = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia"
44PACKAGECONFIG[graphene] = "-Dgl-graphene=enabled,-Dgl-graphene=disabled,graphene"
45PACKAGECONFIG[jpeg] = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg"
46PACKAGECONFIG[ogg] = "-Dogg=enabled,-Dogg=disabled,libogg"
47PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus"
48PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango"
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"
53PACKAGECONFIG[theora] = "-Dtheora=enabled,-Dtheora=disabled,libtheora"
54PACKAGECONFIG[tremor] = "-Dtremor=enabled,-Dtremor=disabled,tremor"
55PACKAGECONFIG[visual] = "-Dlibvisual=enabled,-Dlibvisual=disabled,libvisual"
56PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis"
57PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
58
59# OpenGL API packageconfigs
60PACKAGECONFIG[opengl] = ",,virtual/libgl libglu"
61PACKAGECONFIG[gles2] = ",,virtual/libgles2"
62
63# OpenGL platform packageconfigs
64PACKAGECONFIG[egl] = ",,virtual/egl"
65PACKAGECONFIG[glx] = ",,virtual/libgl"
66
67# OpenGL window systems (except for X11)
68PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm"
69PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm"
70PACKAGECONFIG[dispmanx] = ",,virtual/libomxil"
71PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d"
72
73OPENGL_WINSYS = "${@bb.utils.filter('PACKAGECONFIG', 'x11 gbm wayland dispmanx egl viv-fb', d)}"
74
75EXTRA_OEMESON += " \
76 -Ddoc=disabled \
77 ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \
78 ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \
79 ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \
80"
81
82FILES:${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h"
83FILES:${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
84
85def get_opengl_cmdline_list(switch_name, options, d):
86 selected_options = []
87 if bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d):
88 for option in options.split():
89 if bb.utils.contains('PACKAGECONFIG', option, True, False, d):
90 selected_options += [option]
91 if selected_options:
92 return '-D' + switch_name + '=' + ','.join(selected_options)
93 else:
94 return ''
95
96CVE_PRODUCT += "gst-plugins-base"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
deleted file mode 100644
index 54dd92873f..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
+++ /dev/null
@@ -1,47 +0,0 @@
1# This .inc file contains the common setup for the gstreamer1.0-plugins-*
2# plugin set recipes.
3
4# SUMMARY is set in the actual .bb recipes
5HOMEPAGE = "https://gstreamer.freedesktop.org/"
6BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
7SECTION = "multimedia"
8
9DEPENDS = "gstreamer1.0 glib-2.0-native"
10
11inherit gettext meson pkgconfig upstream-version-is-even
12
13require gstreamer1.0-plugins-packaging.inc
14
15# Orc enables runtime JIT compilation of data processing routines from Orc
16# bytecode to SIMD instructions for various architectures (currently SSE, MMX,
17# MIPS, Altivec and NEON are supported).
18# This value is used in the PACKAGECONFIG values for each plugin set recipe.
19# By modifying it, Orc can be enabled/disabled in all of these recipes at once.
20GSTREAMER_ORC ?= "orc"
21# workaround to disable orc on mips to fix the build failure
22# {standard input}: Assembler messages:
23# {standard input}:46587: Error: branch out of range
24GSTREAMER_ORC:mips = ""
25PACKAGECONFIG[orc] = "-Dorc=enabled,-Dorc=disabled,orc orc-native"
26
27# TODO: put this in a gettext.bbclass patch (with variables to allow for
28# configuring the option name and the enabled/disabled values).
29def gettext_oemeson(d):
30 if d.getVar('USE_NLS') == 'no':
31 return '-Dnls=disabled'
32 # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set
33 if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'):
34 return '-Dnls=disabled'
35 return '-Dnls=enabled'
36
37# Not all plugin sets contain examples, so the -Dexamples
38# option needs to be added conditionally.
39GST_PLUGIN_SET_HAS_EXAMPLES ?= "1"
40
41EXTRA_OEMESON += " \
42 ${@bb.utils.contains('GST_PLUGIN_SET_HAS_EXAMPLES', '1', '-Dexamples=disabled', '', d)} \
43 ${@gettext_oemeson(d)} \
44"
45
46GIR_MESON_ENABLE_FLAG = "enabled"
47GIR_MESON_DISABLE_FLAG = "disabled"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.5.bb
deleted file mode 100644
index 4adbc982b7..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.5.bb
+++ /dev/null
@@ -1,81 +0,0 @@
1require gstreamer1.0-plugins-common.inc
2
3SUMMARY = "'Good' GStreamer plugins"
4HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues"
6
7SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz"
8
9SRC_URI[sha256sum] = "eb0862e93404b073e98ec50350ece7e6685ea2936cab8118c2b8e938e2cbea8b"
10
11S = "${UNPACKDIR}/gst-plugins-good-${PV}"
12
13LICENSE = "LGPL-2.1-or-later"
14LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
15 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
16
17DEPENDS += "gstreamer1.0-plugins-base libcap zlib"
18RPROVIDES:${PN}-pulseaudio += "${PN}-pulse"
19RPROVIDES:${PN}-soup += "${PN}-souphttpsrc"
20RDEPENDS:${PN}-soup += "${MLPREFIX}${@bb.utils.contains('PACKAGECONFIG', 'soup2', 'libsoup-2.4', 'libsoup', d)}"
21
22PACKAGECONFIG_SOUP ?= "soup3"
23
24PACKAGECONFIG ??= " \
25 ${GSTREAMER_ORC} \
26 ${PACKAGECONFIG_SOUP} \
27 ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \
28 ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'asm', '', d)} \
29 bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 speex taglib v4l2 \
30"
31
32X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage"
33X11ENABLEOPTS = "-Dximagesrc=enabled -Dximagesrc-xshm=enabled -Dximagesrc-xfixes=enabled -Dximagesrc-xdamage=enabled"
34X11DISABLEOPTS = "-Dximagesrc=disabled -Dximagesrc-xshm=disabled -Dximagesrc-xfixes=disabled -Dximagesrc-xdamage=disabled"
35
36QT5WAYLANDDEPENDS = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "qtwayland", "", d)}"
37
38PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr"
39PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr"
40PACKAGECONFIG[asm] = "-Dasm=enabled,-Dasm=disabled,nasm-native"
41PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2"
42PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
43PACKAGECONFIG[dv1394] = "-Ddv1394=enabled,-Ddv1394=disabled,libiec61883 libavc1394 libraw1394"
44PACKAGECONFIG[flac] = "-Dflac=enabled,-Dflac=disabled,flac"
45PACKAGECONFIG[gdk-pixbuf] = "-Dgdk-pixbuf=enabled,-Dgdk-pixbuf=disabled,gdk-pixbuf"
46PACKAGECONFIG[gtk] = "-Dgtk3=enabled,-Dgtk3=disabled,gtk+3"
47PACKAGECONFIG[gudev] = "-Dv4l2-gudev=enabled,-Dv4l2-gudev=disabled,libgudev"
48PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack"
49PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg"
50PACKAGECONFIG[lame] = "-Dlame=enabled,-Dlame=disabled,lame"
51PACKAGECONFIG[libpng] = "-Dpng=enabled,-Dpng=disabled,libpng"
52PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils"
53PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123"
54PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio"
55PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native qttools-native ${QT5WAYLANDDEPENDS}"
56PACKAGECONFIG[soup2] = "-Dsoup=enabled,,libsoup-2.4,,,soup3"
57PACKAGECONFIG[soup3] = "-Dsoup=enabled,,libsoup,,,soup2"
58PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex"
59PACKAGECONFIG[rpi] = "-Drpicamsrc=enabled,-Drpicamsrc=disabled,userland"
60PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib"
61PACKAGECONFIG[v4l2] = "-Dv4l2=enabled -Dv4l2-probe=true,-Dv4l2=disabled -Dv4l2-probe=false"
62PACKAGECONFIG[vpx] = "-Dvpx=enabled,-Dvpx=disabled,libvpx"
63PACKAGECONFIG[wavpack] = "-Dwavpack=enabled,-Dwavpack=disabled,wavpack"
64PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
65
66EXTRA_OEMESON += " \
67 -Ddoc=disabled \
68 -Daalib=disabled \
69 -Ddirectsound=disabled \
70 -Ddv=disabled \
71 -Dlibcaca=disabled \
72 -Doss=enabled \
73 -Doss4=disabled \
74 -Dosxaudio=disabled \
75 -Dosxvideo=disabled \
76 -Dshout2=disabled \
77 -Dtwolame=disabled \
78 -Dwaveform=disabled \
79"
80
81FILES:${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
deleted file mode 100644
index 8b1c001111..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc
+++ /dev/null
@@ -1,19 +0,0 @@
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
deleted file mode 100644
index d77aeed8a2..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc
+++ /dev/null
@@ -1,73 +0,0 @@
1# This .inc file contains functionality for automatically splitting
2# built plugins into individual packages for each plugin. A -meta
3# package is also set up that has no files of its own, but contains
4# the names of all plugin packages in its RDEPENDS list.
5#
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.
8
9# Dynamically generate packages for all enabled plugins
10PACKAGES_DYNAMIC = "^${PN}-.* ^libgst.*"
11
12PACKAGESPLITFUNCS =+ "split_gstreamer10_packages"
13PACKAGESPLITFUNCS += "set_gstreamer10_metapkg_rdepends"
14
15python split_gstreamer10_packages () {
16 gst_libdir = d.expand('${libdir}/gstreamer-1.0')
17 postinst = d.getVar('plugin_postinst')
18 glibdir = d.getVar('libdir')
19
20 # GStreamer libraries
21 do_split_packages(d, glibdir, r'^lib(.*)\.so\.*', 'lib%s', 'GStreamer 1.0 %s library', extra_depends='', allow_links=True)
22 # GStreamer plugin shared objects
23 do_split_packages(d, gst_libdir, r'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer 1.0 plugin for %s', postinst=postinst, extra_depends='')
24 # GObject introspection files for GStreamer plugins
25 do_split_packages(d, glibdir+'/girepository-1.0', r'Gst(.*)-1.0\.typelib$', d.expand('${PN}-%s-typelib'), 'GStreamer 1.0 typelib file for %s', postinst=postinst, extra_depends='')
26 # Static GStreamer libraries for development
27 do_split_packages(d, gst_libdir, r'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer 1.0 plugin for %s (static development files)', extra_depends='${PN}-staticdev')
28}
29
30python set_gstreamer10_metapkg_rdepends () {
31 import os
32 import oe.utils
33
34 # Go through all generated packages (excluding the main package and
35 # the -meta package itself) and add them to the -meta package as RDEPENDS.
36
37 pn = d.getVar('PN')
38 metapkg = pn + '-meta'
39 d.setVar('ALLOW_EMPTY:' + metapkg, "1")
40 d.setVar('FILES:' + metapkg, "")
41 exclude = [ pn, pn + '-meta' ]
42 metapkg_rdepends = []
43 pkgdest = d.getVar('PKGDEST')
44 for pkg in oe.utils.packages_filter_out_system(d):
45 if pkg not in exclude and pkg not in metapkg_rdepends:
46 # See if the package is empty by looking at the contents of its PKGDEST subdirectory.
47 # If this subdirectory is empty, then the package is.
48 # Empty packages do not get added to the meta package's RDEPENDS
49 pkgdir = os.path.join(pkgdest, pkg)
50 if os.path.exists(pkgdir):
51 dir_contents = os.listdir(pkgdir) or []
52 else:
53 dir_contents = []
54 is_empty = len(dir_contents) == 0
55 if not is_empty:
56 metapkg_rdepends.append(pkg)
57 d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends))
58 d.setVar('DESCRIPTION:' + metapkg, pn + ' meta package')
59}
60
61# each plugin-dev depends on PN-dev, plugin-staticdev on PN-staticdev
62# so we need them even when empty (like in gst-plugins-good case)
63ALLOW_EMPTY:${PN} = "1"
64ALLOW_EMPTY:${PN}-dev = "1"
65ALLOW_EMPTY:${PN}-staticdev = "1"
66
67PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib"
68
69FILES:${PN} = ""
70FILES:${PN}-apps = "${bindir}"
71FILES:${PN}-glib = "${datadir}/glib-2.0"
72
73RRECOMMENDS:${PN} += "${PN}-meta"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.5.bb
deleted file mode 100644
index 5583c2f128..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.5.bb
+++ /dev/null
@@ -1,44 +0,0 @@
1require gstreamer1.0-plugins-common.inc
2require gstreamer1.0-plugins-license.inc
3
4SUMMARY = "'Ugly GStreamer plugins"
5HOMEPAGE = "https://gstreamer.freedesktop.org/"
6BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues"
7
8LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
9 "
10
11LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
12LICENSE_FLAGS = "commercial"
13
14SRC_URI = " \
15 https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
16 "
17
18SRC_URI[sha256sum] = "3dfc43435be97e110816bac6d602b0f206a038546279683d9d25372ff127db52"
19
20S = "${UNPACKDIR}/gst-plugins-ugly-${PV}"
21
22DEPENDS += "gstreamer1.0-plugins-base"
23
24GST_PLUGIN_SET_HAS_EXAMPLES = "0"
25
26PACKAGECONFIG ??= " \
27 ${GSTREAMER_ORC} \
28"
29
30PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52"
31PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio"
32PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread"
33PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec"
34PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264"
35
36GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'a52dec cdio dvdread mpeg2dec x264', d)}"
37
38EXTRA_OEMESON += " \
39 -Ddoc=disabled \
40 -Dsidplay=disabled \
41"
42
43FILES:${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs"
44FILES:${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.5.bb
deleted file mode 100644
index 12340245e8..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.5.bb
+++ /dev/null
@@ -1,30 +0,0 @@
1SUMMARY = "Python bindings for GStreamer 1.0"
2DESCRIPTION = "GStreamer Python binding overrides (complementing the bindings \
3provided by python-gi) "
4HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/"
5SECTION = "multimedia"
6
7LICENSE = "LGPL-2.1-or-later"
8LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740"
9
10SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
11SRC_URI[sha256sum] = "86e2fe2b1bba7ffc18b1d4abe1035fe1c33b20fe4e077cce2f90dbfa445b2341"
12
13DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject gstreamer1.0-plugins-bad"
14RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
15
16PNREAL = "gst-python"
17
18S = "${UNPACKDIR}/${PNREAL}-${PV}"
19
20EXTRA_OEMESON += "\
21 -Dtests=disabled \
22 -Dplugin=enabled \
23 -Dlibpython-dir=${libdir} \
24"
25
26inherit meson pkgconfig setuptools3-base upstream-version-is-even features_check
27
28FILES:${PN} += "${libdir}/gstreamer-1.0"
29
30REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.5.bb
deleted file mode 100644
index a6bfd1d2b0..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.5.bb
+++ /dev/null
@@ -1,31 +0,0 @@
1SUMMARY = "A library on top of GStreamer for building an RTSP server"
2HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/"
3SECTION = "multimedia"
4LICENSE = "LGPL-2.1-or-later"
5LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770"
6
7DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
8
9PNREAL = "gst-rtsp-server"
10
11SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
12
13SRC_URI[sha256sum] = "328dff2457419683f2a4f06ca119cfd22beb632cee1ad6830591213325353c44"
14
15S = "${UNPACKDIR}/${PNREAL}-${PV}"
16
17inherit meson pkgconfig upstream-version-is-even gobject-introspection
18
19EXTRA_OEMESON += " \
20 -Ddoc=disabled \
21 -Dexamples=disabled \
22 -Dtests=disabled \
23"
24
25GIR_MESON_ENABLE_FLAG = "enabled"
26GIR_MESON_DISABLE_FLAG = "disabled"
27
28# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well
29require gstreamer1.0-plugins-packaging.inc
30
31CVE_PRODUCT += "gst-rtsp-server"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.5.bb
deleted file mode 100644
index f61125105d..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.5.bb
+++ /dev/null
@@ -1,53 +0,0 @@
1SUMMARY = "VA-API support to GStreamer"
2HOMEPAGE = "https://gstreamer.freedesktop.org/"
3DESCRIPTION = "gstreamer-vaapi consists of a collection of VA-API \
4based plugins for GStreamer and helper libraries: `vaapidecode', \
5`vaapiconvert', and `vaapisink'."
6
7REALPN = "gstreamer-vaapi"
8
9LICENSE = "LGPL-2.1-or-later"
10LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
11
12SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz"
13
14SRC_URI[sha256sum] = "b42d44db63f3195a6f33296e1ead32c14d01ef27452b7068f1a2d86624f55ea9"
15
16S = "${UNPACKDIR}/${REALPN}-${PV}"
17DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
18
19inherit meson pkgconfig features_check upstream-version-is-even
20
21REQUIRED_DISTRO_FEATURES ?= "opengl"
22
23EXTRA_OEMESON += " \
24 -Ddoc=disabled \
25 -Dexamples=disabled \
26 -Dtests=enabled \
27"
28
29PACKAGES =+ "${PN}-tests"
30
31# OpenGL packageconfig factored out to make it easy for distros
32# and BSP layers to pick either glx, egl, or no GL. By default,
33# try detecting X11 first, and if found (with OpenGL), use GLX,
34# otherwise try to check if EGL can be used.
35PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', \
36 bb.utils.contains('DISTRO_FEATURES', 'opengl', 'egl', \
37 '', d), d)}"
38
39PACKAGECONFIG ??= "drm encoders \
40 ${PACKAGECONFIG_GL} \
41 ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
42
43PACKAGECONFIG[drm] = "-Ddrm=enabled,-Ddrm=disabled,udev libdrm"
44PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl"
45PACKAGECONFIG[encoders] = "-Dencoders=enabled,-Dencoders=disabled"
46PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,virtual/libgl"
47PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols"
48PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libxrandr libxrender"
49
50FILES:${PN} += "${libdir}/gstreamer-*/*.so"
51FILES:${PN}-dbg += "${libdir}/gstreamer-*/.debug"
52FILES:${PN}-dev += "${libdir}/gstreamer-*/*.a"
53FILES:${PN}-tests = "${bindir}/*"
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
deleted file mode 100644
index e1d870b040..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From ad4c577ff8d29f6dbaf5ca2d013e9d21c44f9122 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 tests/check/meson.build | 10 +++++-----
11 1 file changed, 5 insertions(+), 5 deletions(-)
12
13diff --git a/tests/check/meson.build b/tests/check/meson.build
14index 78a6f9a..e3cb966 100644
15--- a/tests/check/meson.build
16+++ b/tests/check/meson.build
17@@ -154,11 +154,11 @@ foreach t : core_tests
18
19 if not skip_test
20 exe = executable(test_name, fname,
21- c_args : gst_c_args + test_defines,
22- cpp_args : gst_c_args + test_defines,
23- include_directories : [configinc],
24- link_with : link_with_libs,
25- dependencies : gst_deps + test_deps,
26+ c_args : gst_c_args + test_defines,
27+ cpp_args : gst_c_args + test_defines,
28+ include_directories : [configinc],
29+ link_with : link_with_libs,
30+ dependencies : gst_deps + test_deps,
31 )
32
33 env = environment()
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
deleted file mode 100644
index ccfc869813..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
+++ /dev/null
@@ -1,106 +0,0 @@
1From c33063360791e178de138304e29ab2264582d917 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 meson.build | 4 ++++
15 meson_options.txt | 1 +
16 tests/check/meson.build | 22 +++++++++++++++++++++-
17 tests/check/template.test.in | 3 +++
18 4 files changed, 29 insertions(+), 1 deletion(-)
19 create mode 100644 tests/check/template.test.in
20
21diff --git a/meson.build b/meson.build
22index 0a77e90..cadfaeb 100644
23--- a/meson.build
24+++ b/meson.build
25@@ -664,6 +664,10 @@ if bashcomp_dep.found()
26 endif
27 endif
28
29+installed_tests_enabled = get_option('installed_tests')
30+installed_tests_metadir = join_paths(datadir, 'installed-tests', meson.project_name())
31+installed_tests_execdir = join_paths(libexecdir, 'installed-tests', meson.project_name())
32+
33 plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0')
34
35 pkgconfig = import('pkgconfig')
36diff --git a/meson_options.txt b/meson_options.txt
37index 39255cf..78af552 100644
38--- a/meson_options.txt
39+++ b/meson_options.txt
40@@ -16,6 +16,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
41 option('memory-alignment', type: 'combo',
42 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
43 value: 'malloc')
44+option('installed_tests', type : 'boolean', value : false, description : 'Enable installed tests')
45
46 # Feature options
47 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
48diff --git a/tests/check/meson.build b/tests/check/meson.build
49index e3cb966..e4df289 100644
50--- a/tests/check/meson.build
51+++ b/tests/check/meson.build
52@@ -133,10 +133,16 @@ test_defines = [
53 '-UG_DISABLE_ASSERT',
54 '-UG_DISABLE_CAST_CHECKS',
55 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
56- '-DTESTFILE="' + fsmod.as_posix(meson.current_source_dir()) + '/meson.build"',
57 '-DGST_DISABLE_DEPRECATED',
58 ]
59
60+testfile = meson.current_source_dir() + '/meson.build'
61+if installed_tests_enabled
62+ install_data(testfile, install_dir : installed_tests_metadir, rename : 'testfile')
63+ testfile = installed_tests_metadir + '/testfile'
64+endif
65+test_defines += '-DTESTFILE="@0@"'.format(testfile)
66+
67 # sanity checking
68 if get_option('check').disabled()
69 if get_option('tests').enabled()
70@@ -159,6 +165,8 @@ foreach t : core_tests
71 include_directories : [configinc],
72 link_with : link_with_libs,
73 dependencies : gst_deps + test_deps,
74+ install_dir: installed_tests_execdir,
75+ install: installed_tests_enabled,
76 )
77
78 env = environment()
79@@ -170,6 +178,18 @@ foreach t : core_tests
80 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
81 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
82
83+ if installed_tests_enabled
84+ test_conf = configuration_data()
85+ test_conf.set('installed_tests_dir', join_paths(prefix, installed_tests_execdir))
86+ test_conf.set('program', test_name)
87+ configure_file(
88+ input: 'template.test.in',
89+ output: test_name + '.test',
90+ install_dir: installed_tests_metadir,
91+ configuration: test_conf
92+ )
93+ endif
94+
95 test(test_name, exe, env: env, timeout : 3 * 60)
96 endif
97 endforeach
98diff --git a/tests/check/template.test.in b/tests/check/template.test.in
99new file mode 100644
100index 0000000..f701627
101--- /dev/null
102+++ b/tests/check/template.test.in
103@@ -0,0 +1,3 @@
104+[Test]
105+Type=session
106+Exec=@installed_tests_dir@/@program@
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
deleted file mode 100644
index 1236290e2b..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1From 374c6ace83e9697aae0b21ba26f316b79279c39c 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 tests/check/meson.build | 21 +++++++++++++--------
14 1 file changed, 13 insertions(+), 8 deletions(-)
15
16diff --git a/tests/check/meson.build b/tests/check/meson.build
17index e4df289..b840005 100644
18--- a/tests/check/meson.build
19+++ b/tests/check/meson.build
20@@ -169,14 +169,19 @@ foreach t : core_tests
21 install: installed_tests_enabled,
22 )
23
24- env = environment()
25- env.set('GST_PLUGIN_PATH_1_0', meson.project_build_root())
26- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
27- env.set('GST_STATE_IGNORE_ELEMENTS', '')
28- env.set('CK_DEFAULT_TIMEOUT', '20')
29- env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
30- env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
31- env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
32+ # meson environment object can't be passed to configure_file and
33+ # installed tests uses configure_file to install the environment.
34+ # use a dictionary as this is the simplest solution
35+ # to install the environment.
36+ env = {
37+ 'GST_PLUGIN_PATH_1_0': meson.project_build_root(),
38+ 'GST_PLUGIN_SYSTEM_PATH_1_0': '',
39+ 'GST_STATE_IGNORE_ELEMENTS': '',
40+ 'CK_DEFAULT_TIMEOUT': '20',
41+ 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name),
42+ 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner',
43+ 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer',
44+ }
45
46 if installed_tests_enabled
47 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
deleted file mode 100644
index df382a4445..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
+++ /dev/null
@@ -1,71 +0,0 @@
1From e31ab477eed061cc72ed6795b483795d53af6dfc 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 tests/check/meson.build | 17 +++++++++++++++++
15 tests/check/template.sh.in | 9 +++++++++
16 tests/check/template.test.in | 2 +-
17 3 files changed, 27 insertions(+), 1 deletion(-)
18 create mode 100755 tests/check/template.sh.in
19
20diff --git a/tests/check/meson.build b/tests/check/meson.build
21index b840005..252da14 100644
22--- a/tests/check/meson.build
23+++ b/tests/check/meson.build
24@@ -193,6 +193,23 @@ foreach t : core_tests
25 install_dir: installed_tests_metadir,
26 configuration: test_conf
27 )
28+
29+ # All the tests will be deployed on the target machine and
30+ # we use the home folder ~ for the registry which will then expand at runtime.
31+ # Using the /tmp/gstreamer-1.0/@0@.registry can be problematic as it mostly
32+ # is mounted using tmpfs and if the machine crash from some reason we can lost the registry
33+ # that is useful for debug propose of the tests itself.
34+ env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)}
35+
36+ # Set the full path for the test it self.
37+ env += {'TEST': '@0@/@1@'.format(join_paths(prefix, installed_tests_execdir), test_name)}
38+
39+ configure_file(
40+ input : 'template.sh.in',
41+ output: test_name + '.sh',
42+ install_dir: installed_tests_execdir,
43+ configuration : env,
44+ )
45 endif
46
47 test(test_name, exe, env: env, timeout : 3 * 60)
48diff --git a/tests/check/template.sh.in b/tests/check/template.sh.in
49new file mode 100755
50index 0000000..f1318fa
51--- /dev/null
52+++ b/tests/check/template.sh.in
53@@ -0,0 +1,9 @@
54+#!/bin/sh
55+
56+set -ax
57+
58+CK_DEFAULT_TIMEOUT="@CK_DEFAULT_TIMEOUT@"
59+GST_PLUGIN_LOADING_WHITELIST="@GST_PLUGIN_LOADING_WHITELIST@"
60+GST_REGISTRY=@GST_REGISTRY@
61+GST_STATE_IGNORE_ELEMENTS="@GST_STATE_IGNORE_ELEMENTS@"
62+exec @TEST@ "$@"
63diff --git a/tests/check/template.test.in b/tests/check/template.test.in
64index f701627..b74ef6a 100644
65--- a/tests/check/template.test.in
66+++ b/tests/check/template.test.in
67@@ -1,3 +1,3 @@
68 [Test]
69 Type=session
70-Exec=@installed_tests_dir@/@program@
71+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
deleted file mode 100755
index 44dc350eb3..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
+++ /dev/null
@@ -1,26 +0,0 @@
1#! /bin/sh
2
3# Multiply all timeouts by five so they're more likely to work
4# on a loaded system. The default timeout is 20s so this makes it
5# one minute.
6export CK_TIMEOUT_MULTIPLIER=5
7
8# Skip some tests that we know are problematic
9export GST_CHECKS_IGNORE=""
10
11# gstnetclientclock.c:test_functioning is very sensitive to load
12GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning"
13
14# aggregator.c:test_infinite_seek_50_src_live is known to be flaky
15# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410
16GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_infinite_seek_50_src_live"
17
18# Known unreliable tests as per subprojects/gst-devtools/validate/launcher/testsuites/check.py:
19GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,parser_pull_short_read"
20
21# These tests are fragile
22# https://bugzilla.yoctoproject.org/show_bug.cgi?id=14884
23# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3524
24GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,parser_convert_duration,parser_pull_frame_growth,parser_reverse_playback"
25
26gnome-desktop-testing-runner --parallel=4 gstreamer "$@"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.5.bb
deleted file mode 100644
index 4c800c22d4..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.5.bb
+++ /dev/null
@@ -1,74 +0,0 @@
1SUMMARY = "GStreamer 1.0 multimedia framework"
2DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \
3It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime."
4HOMEPAGE = "http://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
6SECTION = "multimedia"
7LICENSE = "LGPL-2.1-or-later"
8
9DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
10
11inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
12
13LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
14 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
15
16S = "${UNPACKDIR}/gstreamer-${PV}"
17
18SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
19 file://run-ptest \
20 file://0001-tests-respect-the-idententaion-used-in-meson.patch \
21 file://0002-tests-add-support-for-install-the-tests.patch \
22 file://0003-tests-use-a-dictionaries-for-environment.patch \
23 file://0004-tests-add-helper-script-to-run-the-installed_tests.patch \
24 "
25SRC_URI[sha256sum] = "0a7edb0e7b42dbe6b575fce61a4808a3f6b20e085a1eaecbc025d0ec21f1e774"
26
27PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
28 check \
29 debug \
30 tools"
31
32PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false"
33PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false"
34PACKAGECONFIG[coretracers] = "-Dcoretracers=enabled,-Dcoretracers=disabled"
35PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled"
36PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled_tests=true,-Dtests=disabled -Dinstalled_tests=false"
37PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
38PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils"
39PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion"
40PACKAGECONFIG[tools] = "-Dtools=enabled,-Dtools=disabled"
41PACKAGECONFIG[setcap] = "-Dptp-helper-permissions=capabilities,,libcap libcap-native"
42
43# TODO: put this in a gettext.bbclass patch
44def gettext_oemeson(d):
45 if d.getVar('USE_NLS') == 'no':
46 return '-Dnls=disabled'
47 # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set
48 if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'):
49 return '-Dnls=disabled'
50 return '-Dnls=enabled'
51
52EXTRA_OEMESON += " \
53 -Ddoc=disabled \
54 -Dexamples=disabled \
55 -Ddbghelp=disabled \
56 ${@gettext_oemeson(d)} \
57"
58
59GIR_MESON_ENABLE_FLAG = "enabled"
60GIR_MESON_DISABLE_FLAG = "disabled"
61
62PACKAGES += "${PN}-bash-completion"
63
64# Add the core element plugins to the main package
65FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
66FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
67FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
68FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
69
70RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-iso8859-5"
71
72CVE_PRODUCT = "gstreamer"
73
74PTEST_BUILD_HOST_FILES = ""