summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZelan Zou <zelan.zou@nxp.com>2025-01-06 07:16:07 +0100
committerZelan Zou <zelan.zou@nxp.com>2025-01-15 12:50:10 +0100
commit98cb547ce4a21d693a04757e0cfd9507b756fa5b (patch)
tree39ceb555fbac927048cc6d3b38751de6fd7f0adc
parent1829088d196d4609d5aaa25c2e78a9be2e25336e (diff)
downloadmeta-freescale-98cb547ce4a21d693a04757e0cfd9507b756fa5b.tar.gz
gstreamer1.0: Upgrade version 1.24.0 to 1.24.7
Signed-off-by: Zelan Zou <zelan.zou@nxp.com>
-rw-r--r--conf/machine/include/imx-base.inc16
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-autovideoconvert-add-imxvideoconvert_g2d.patch39
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.7.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.0.imx.bb)19
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.7.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.0.imx.bb)6
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.7.imx.bbappend (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.%.bbappend)4
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.7.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.0.imx.bb)21
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch34
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch109
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch51
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch74
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0_1.24.7.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0_1.24.0.imx.bb)17
-rw-r--r--recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb15
12 files changed, 37 insertions, 368 deletions
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index 32da2ea5..5e12548e 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -518,14 +518,14 @@ MACHINE_GSTREAMER_1_0_PLUGIN:mx8ulp-nxp-bsp ?= "imx-gst1.0-plugin"
518MACHINE_GSTREAMER_1_0_PLUGIN:mx93-nxp-bsp ?= "imx-gst1.0-plugin" 518MACHINE_GSTREAMER_1_0_PLUGIN:mx93-nxp-bsp ?= "imx-gst1.0-plugin"
519 519
520# GStreamer forked recipes 520# GStreamer forked recipes
521PREFERRED_VERSION_gstreamer1.0:mx8-nxp-bsp ??= "1.24.0.imx" 521PREFERRED_VERSION_gstreamer1.0:mx8-nxp-bsp ??= "1.24.7.imx"
522PREFERRED_VERSION_gstreamer1.0-plugins-bad:mx8-nxp-bsp ??= "1.24.0.imx" 522PREFERRED_VERSION_gstreamer1.0-plugins-bad:mx8-nxp-bsp ??= "1.24.7.imx"
523PREFERRED_VERSION_gstreamer1.0-plugins-base:mx8-nxp-bsp ??= "1.24.0.imx" 523PREFERRED_VERSION_gstreamer1.0-plugins-base:mx8-nxp-bsp ??= "1.24.7.imx"
524PREFERRED_VERSION_gstreamer1.0-plugins-good:mx8-nxp-bsp ??= "1.24.0.imx" 524PREFERRED_VERSION_gstreamer1.0-plugins-good:mx8-nxp-bsp ??= "1.24.7.imx"
525PREFERRED_VERSION_gstreamer1.0:mx9-nxp-bsp ??= "1.24.0.imx" 525PREFERRED_VERSION_gstreamer1.0:mx9-nxp-bsp ??= "1.24.7.imx"
526PREFERRED_VERSION_gstreamer1.0-plugins-bad:mx9-nxp-bsp ??= "1.24.0.imx" 526PREFERRED_VERSION_gstreamer1.0-plugins-bad:mx9-nxp-bsp ??= "1.24.7.imx"
527PREFERRED_VERSION_gstreamer1.0-plugins-base:mx9-nxp-bsp ??= "1.24.0.imx" 527PREFERRED_VERSION_gstreamer1.0-plugins-base:mx9-nxp-bsp ??= "1.24.7.imx"
528PREFERRED_VERSION_gstreamer1.0-plugins-good:mx9-nxp-bsp ??= "1.24.0.imx" 528PREFERRED_VERSION_gstreamer1.0-plugins-good:mx9-nxp-bsp ??= "1.24.7.imx"
529 529
530# GStreamer copied recipes 530# GStreamer copied recipes
531PREFERRED_VERSION_gst-devtools:mx8-nxp-bsp ??= "1.24.0.imx" 531PREFERRED_VERSION_gst-devtools:mx8-nxp-bsp ??= "1.24.0.imx"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-autovideoconvert-add-imxvideoconvert_g2d.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-autovideoconvert-add-imxvideoconvert_g2d.patch
deleted file mode 100644
index d4fd8cf3..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-autovideoconvert-add-imxvideoconvert_g2d.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 784881b9bffaa768c3a1e9cb3d8eead7b4ca356a Mon Sep 17 00:00:00 2001
2From: Hiago De Franco <hiago.franco@toradex.com>
3Date: Thu, 12 Sep 2024 18:44:14 +0200
4Subject: [PATCH] autovideoconvert: add imxvideoconvert_g2d
5
6On i.MX8 platform, autovideoconvert defaults to CPU-based processing as
7imxvideoconvert_g2d is not included as a listed filter, resulting in
8poor video playback performance.
9
10Add imxvideoconvert_g2d to improve performance by utilizing hardware
11acceleration.
12
13Upstream-Status: Submitted [https://github.com/nxp-imx/gst-plugins-bad/pull/2]
14Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
15---
16 gst/autoconvert/gstautovideoconvert.c | 7 +++++++
17 1 file changed, 7 insertions(+)
18
19diff --git a/gst/autoconvert/gstautovideoconvert.c b/gst/autoconvert/gstautovideoconvert.c
20index cf5468316cd5..b91bd1556c37 100644
21--- a/gst/autoconvert/gstautovideoconvert.c
22+++ b/gst/autoconvert/gstautovideoconvert.c
23@@ -85,6 +85,13 @@ gst_auto_video_convert_init (GstAutoVideoConvert * autovideoconvert)
24 .filters = { NULL },
25 .rank = GST_RANK_SECONDARY,
26 },
27+ {
28+ .first_elements = { "capsfilter caps=\"video/x-raw\"", NULL, },
29+ .colorspace_converters = { "imxvideoconvert_g2d", NULL },
30+ .last_elements = { NULL, },
31+ .filters = { NULL },
32+ .rank = GST_RANK_PRIMARY + 1,
33+ },
34 {
35 .first_elements = { "capsfilter caps=\"video/x-raw\"", NULL, },
36 .colorspace_converters = { "videoconvertscale", NULL },
37--
382.39.2
39
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.7.imx.bb
index f6d094f5..4b707875 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.0.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.7.imx.bb
@@ -178,9 +178,7 @@ FILES:${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs"
178 178
179DEFAULT_PREFERENCE = "-1" 179DEFAULT_PREFERENCE = "-1"
180 180
181LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c" 181LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=69333daa044cb77e486cc36129f7a770"
182
183DEPENDS:append:imxgpu2d = " virtual/libg2d"
184 182
185SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ 183SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
186 file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \ 184 file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \
@@ -188,10 +186,9 @@ SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plug
188 file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \ 186 file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
189 " 187 "
190SRC_URI:prepend = "${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} " 188SRC_URI:prepend = "${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} "
191SRC_URI:append = " file://0001-autovideoconvert-add-imxvideoconvert_g2d.patch"
192GST1.0-PLUGINS-BAD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-bad.git;protocol=https" 189GST1.0-PLUGINS-BAD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-bad.git;protocol=https"
193SRCBRANCH = "MM_04.09.01_2408_L6.6.y" 190SRCBRANCH = "MM_04.09.02_2410_L6.6.y"
194SRCREV = "7011fdfa6d60fb3ee1dc8545f675cfdb519203cd" 191SRCREV = "bba296b75dfb3e7ae4c836255edbd2b3c085c269"
195 192
196S = "${WORKDIR}/git" 193S = "${WORKDIR}/git"
197 194
@@ -214,13 +211,6 @@ PACKAGECONFIG_G2D:imxgpu2d ??= "g2d"
214PACKAGECONFIG[g2d] = ",,virtual/libg2d" 211PACKAGECONFIG[g2d] = ",,virtual/libg2d"
215PACKAGECONFIG[tinycompress] = "-Dtinycompress=enabled,-Dtinycompress=disabled,tinycompress" 212PACKAGECONFIG[tinycompress] = "-Dtinycompress=enabled,-Dtinycompress=disabled,tinycompress"
216 213
217# GCC-14 otherwise errors out
218CFLAGS += " \
219 -Wno-error=implicit-function-declaration \
220 -Wno-error=incompatible-pointer-types \
221 -Wno-error=return-mismatch \
222 -Wno-error=int-conversion \
223"
224EXTRA_OEMESON += " \ 214EXTRA_OEMESON += " \
225 -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \ 215 -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \
226" 216"
@@ -229,8 +219,9 @@ EXTRA_OEMESON:remove = " \
229 -Dkate=disabled \ 219 -Dkate=disabled \
230" 220"
231 221
232COMPATIBLE_MACHINE = "(imx-nxp-bsp)"
233# it uses nested functions sadly, in ext/wayland/gstwaylandsink.c for GST_ELEMENT_REGISTER_DEFINE 222# it uses nested functions sadly, in ext/wayland/gstwaylandsink.c for GST_ELEMENT_REGISTER_DEFINE
234# 223#
235TOOLCHAIN = "gcc" 224TOOLCHAIN = "gcc"
225
226COMPATIBLE_MACHINE = "(imx-nxp-bsp)"
236########### End of i.MX overrides ######### 227########### End of i.MX overrides #########
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.7.imx.bb
index 6e7bc20e..c15457ca 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.0.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.7.imx.bb
@@ -118,8 +118,8 @@ SRC_URI:remove = " \
118SRC_URI:prepend = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} " 118SRC_URI:prepend = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} "
119 119
120GST1.0-PLUGINS-BASE_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-base.git;protocol=https" 120GST1.0-PLUGINS-BASE_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-base.git;protocol=https"
121SRCBRANCH = "MM_04.09.01_2408_L6.6.y" 121SRCBRANCH = "MM_04.09.02_2410_L6.6.y"
122SRCREV = "97b1a45e945d3784790cafd2fcc4f6cb16e739d7" 122SRCREV = "031d262e65333e58b2ce01aaf47ab1012f93b21e"
123 123
124S = "${WORKDIR}/git" 124S = "${WORKDIR}/git"
125 125
@@ -135,8 +135,6 @@ PACKAGECONFIG_G2D:imxgpu2d ??= "g2d"
135PACKAGECONFIG[g2d] = ",,virtual/libg2d" 135PACKAGECONFIG[g2d] = ",,virtual/libg2d"
136PACKAGECONFIG[viv-fb] = ",,virtual/libgles2" 136PACKAGECONFIG[viv-fb] = ",,virtual/libgles2"
137 137
138# GCC-14 otherwise errors out
139CFLAGS += "-Wno-error=incompatible-pointer-types"
140EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}"" 138EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}""
141 139
142# links with imx-gpu libs which are pre-built for glibc 140# links with imx-gpu libs which are pre-built for glibc
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.7.imx.bbappend
index a834192e..528d7e1a 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.%.bbappend
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.7.imx.bbappend
@@ -13,5 +13,5 @@ PACKAGECONFIG_GL:use-mainline-bsp = \
13# does not depend on the viv-fb feature. It used to, but that was actually a bug 13# does not depend on the viv-fb feature. It used to, but that was actually a bug
14# which was fixed in GStreamer 1.22.5. Since then, the direct texture support is 14# which was fixed in GStreamer 1.22.5. Since then, the direct texture support is
15# detected by Meson by checking for direct texture symbols like "glTexDirectVIV".) 15# detected by Meson by checking for direct texture symbols like "glTexDirectVIV".)
16PACKAGECONFIG_GL:imxgpu2d:append:mx6-nxp-bsp = " viv-fb " 16PACKAGECONFIG_GL:imxgpu2d:append:mx6-nxp-bsp = " viv-fb"
17PACKAGECONFIG_GL:imxgpu2d:append:mx7-nxp-bsp = " viv-fb " 17PACKAGECONFIG_GL:imxgpu2d:append:mx7-nxp-bsp = " viv-fb"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.7.imx.bb
index 67dc139f..5dd71743 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.0.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.7.imx.bb
@@ -94,11 +94,11 @@ FILES:${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs"
94DEFAULT_PREFERENCE = "-1" 94DEFAULT_PREFERENCE = "-1"
95 95
96LIC_FILES_CHKSUM = " \ 96LIC_FILES_CHKSUM = " \
97 file://LICENSE.txt;md5=a6f89e2100d9b6cdffcea4f398e37343 \ 97 file://LICENSE.txt;md5=69333daa044cb77e486cc36129f7a770 \
98 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe \ 98 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe \
99" 99"
100# Enable pulsesink in gstreamer 100# Enable pulsesink in gstreamer
101PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}" 101PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', ' pulseaudio', '', d)}"
102 102
103# fb implementation of v4l2 uses libdrm 103# fb implementation of v4l2 uses libdrm
104DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'v4l2', '${DEPENDS_V4L2}', '', d)}" 104DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'v4l2', '${DEPENDS_V4L2}', '', d)}"
@@ -111,20 +111,9 @@ SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plu
111 111
112SRC_URI:prepend = "${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} " 112SRC_URI:prepend = "${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} "
113GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-good.git;protocol=https" 113GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-good.git;protocol=https"
114SRCBRANCH = "MM_04.09.01_2408_L6.6.y" 114SRCBRANCH = "MM_04.09.02_2410_L6.6.y"
115SRCREV = "d8727edd56536a5c39de7905f073fce61896c0af" 115SRCREV = "33b2732b873758a302064818b35dcad41b5bbc14"
116 116
117# set 32bit compile timer for 32-bit platform
118GLIBC_64BIT_TIME_FLAGS:mx6-nxp-bsp = ""
119GLIBC_64BIT_TIME_FLAGS:mx7-nxp-bsp = ""
120INSANE_SKIP:mx6-nxp-bsp:append = " 32bit-time"
121INSANE_SKIP:mx7-nxp-bsp:append = " 32bit-time"
122
123# GCC-14 otherwise errors out
124CFLAGS += " \
125 -Wno-error=implicit-function-declaration \
126 -Wno-error=incompatible-pointer-types \
127"
128S = "${WORKDIR}/git" 117S = "${WORKDIR}/git"
129 118
130COMPATIBLE_MACHINE = "(imx-nxp-bsp)" 119COMPATIBLE_MACHINE = "(imx-nxp-bsp)"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
deleted file mode 100644
index 1b9278db..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From 559e1dd850b2b9eb3a415aa43e932e5e48f605cd 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/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
deleted file mode 100644
index 456f0762..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
+++ /dev/null
@@ -1,109 +0,0 @@
1From 330e15374bb30ac29ee72c4b3de79c17b1157112 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 | 21 ++++++++++++++++++++-
18 tests/check/template.test.in | 3 +++
19 4 files changed, 28 insertions(+), 1 deletion(-)
20 create mode 100644 tests/check/template.test.in
21
22diff --git a/meson.build b/meson.build
23index 540d6d290e10..0267f22a79ea 100644
24--- a/meson.build
25+++ b/meson.build
26@@ -624,6 +624,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 340fb5801d02..5b87f68e8d7f 100644
39--- a/meson_options.txt
40+++ b/meson_options.txt
41@@ -16,6 +16,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 e9501feb2af5..fd5a99611e3d 100644
51--- a/tests/check/meson.build
52+++ b/tests/check/meson.build
53@@ -125,10 +125,16 @@ test_defines = [
54 '-UG_DISABLE_ASSERT',
55 '-UG_DISABLE_CAST_CHECKS',
56 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
57- '-DTESTFILE="' + fsmod.as_posix(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@@ -151,6 +157,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,17 @@ foreach t : core_tests
81 env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
82 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
83 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
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
98diff --git a/tests/check/template.test.in b/tests/check/template.test.in
99new file mode 100644
100index 000000000000..f701627f87a6
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@
107--
1082.39.2
109
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
deleted file mode 100644
index 83f3870c..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1From 1f13b802bdb1c1e414c70f770dc164c80e0dcd57 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 3/4] 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 | 22 ++++++++++++++--------
14 1 file changed, 14 insertions(+), 8 deletions(-)
15
16diff --git a/tests/check/meson.build b/tests/check/meson.build
17index fd5a99611e3d..330abaaeadd5 100644
18--- a/tests/check/meson.build
19+++ b/tests/check/meson.build
20@@ -161,14 +161,20 @@ 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()
48 test_conf.set('installed_tests_dir', join_paths(prefix, installed_tests_execdir))
49--
502.39.2
51
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
deleted file mode 100644
index 0a312389..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
+++ /dev/null
@@ -1,74 +0,0 @@
1From 616c489d4ff1e7ed878bc3760180ba994fbd1974 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 4/4] 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 100644 tests/check/template.sh.in
19
20diff --git a/tests/check/meson.build b/tests/check/meson.build
21index 330abaaeadd5..5d383b14dc29 100644
22--- a/tests/check/meson.build
23+++ b/tests/check/meson.build
24@@ -185,6 +185,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 100644
50index 000000000000..cf7d31b0ea5f
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 f701627f87a6..b74ef6ad732a 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
72--
732.39.2
74
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0_1.24.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0_1.24.7.imx.bb
index 43cb6a4a..51a12f30 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0_1.24.0.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0_1.24.7.imx.bb
@@ -26,8 +26,8 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.x
26 file://run-ptest \ 26 file://run-ptest \
27 file://0001-tests-respect-the-idententaion-used-in-meson.patch \ 27 file://0001-tests-respect-the-idententaion-used-in-meson.patch \
28 file://0002-tests-add-support-for-install-the-tests.patch \ 28 file://0002-tests-add-support-for-install-the-tests.patch \
29 file://0003-tests-use-a-dictionaries-for-environment.patch \ 29 file://0003-tests-use-a-dictionaries-for-environment.patch;striplevel=3 \
30 file://0004-tests-add-helper-script-to-run-the-installed_tests.patch \ 30 file://0004-tests-add-helper-script-to-run-the-installed_tests.patch;striplevel=3 \
31 " 31 "
32SRC_URI[sha256sum] = "4408d7930f381809e85917acc19712f173261ba85bdf20c5567b2a21b1193b61" 32SRC_URI[sha256sum] = "4408d7930f381809e85917acc19712f173261ba85bdf20c5567b2a21b1193b61"
33 33
@@ -92,14 +92,21 @@ LIC_FILES_CHKSUM = " \
92" 92"
93 93
94# Use i.MX fork of GST for customizations 94# Use i.MX fork of GST for customizations
95SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz" 95SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
96 file://0001-tests-respect-the-idententaion-used-in-meson.patch \
97 file://0002-tests-add-support-for-install-the-tests.patch \
98 file://0003-tests-use-a-dictionaries-for-environment.patch;striplevel=3 \
99 file://0004-tests-add-helper-script-to-run-the-installed_tests.patch;striplevel=3 \
100"
96SRC_URI:prepend = "${GST1.0_SRC};branch=${SRCBRANCH} " 101SRC_URI:prepend = "${GST1.0_SRC};branch=${SRCBRANCH} "
97GST1.0_SRC ?= "gitsm://github.com/nxp-imx/gstreamer.git;protocol=https" 102GST1.0_SRC ?= "gitsm://github.com/nxp-imx/gstreamer.git;protocol=https"
98SRCBRANCH = "MM_04.09.01_2408_L6.6.y" 103SRCBRANCH = "MM_04.09.02_2410_L6.6.y"
99SRCREV = "eb286c0766a4fbbae70c8e9dda074f5a90e52e42" 104SRCREV = "1a8f23da16cd224574ab2386803149c76f2cb628"
100 105
101S = "${WORKDIR}/git" 106S = "${WORKDIR}/git"
102 107
108PACKAGECONFIG[tests] = "-Dtests=enabled,-Dtests=disabled"
109
103COMPATIBLE_MACHINE = "(imx-nxp-bsp)" 110COMPATIBLE_MACHINE = "(imx-nxp-bsp)"
104 111
105########### End of i.MX overrides ######### 112########### End of i.MX overrides #########
diff --git a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb
index e5898077..9ab20404 100644
--- a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb
+++ b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb
@@ -34,11 +34,11 @@ RREPLACES:${PN} = "gst1.0-fsl-plugin"
34RPROVIDES:${PN} = "gst1.0-fsl-plugin" 34RPROVIDES:${PN} = "gst1.0-fsl-plugin"
35RCONFLICTS:${PN} = "gst1.0-fsl-plugin" 35RCONFLICTS:${PN} = "gst1.0-fsl-plugin"
36 36
37PV = "4.9.1+git${SRCPV}" 37PV = "4.9.2+git${SRCPV}"
38 38
39SRC_URI = "git://github.com/nxp-imx/imx-gst1.0-plugin.git;protocol=https;branch=${SRCBRANCH}" 39SRC_URI = "git://github.com/nxp-imx/imx-gst1.0-plugin.git;protocol=https;branch=${SRCBRANCH}"
40SRCBRANCH = "MM_04.09.01_2408_L6.6.y" 40SRCBRANCH = "MM_04.09.02_2410_L6.6.y"
41SRCREV = "87135d5f084b6c61efa6671cddc3a5509ab11640" 41SRCREV = "ef9c1a080e739e6f0be878148d9f4a050dc83bec"
42 42
43S = "${WORKDIR}/git" 43S = "${WORKDIR}/git"
44 44
@@ -54,15 +54,6 @@ PLATFORM:mx7ulp-nxp-bsp= "MX7ULP"
54PLATFORM:mx8-nxp-bsp = "MX8" 54PLATFORM:mx8-nxp-bsp = "MX8"
55PLATFORM:mx9-nxp-bsp = "MX9" 55PLATFORM:mx9-nxp-bsp = "MX9"
56 56
57CFLAGS:append:toolchain-clang = " -Wno-implicit-int -Wno-int-conversion -Wno-incompatible-function-pointer-types"
58# GCC-14 otherwise errors out
59CFLAGS += " \
60 -Wno-error=int-conversion \
61 -Wno-error=incompatible-pointer-types \
62 -Wno-error=return-mismatch \
63 -Wno-error=implicit-function-declaration \
64"
65
66# Todo add a mechanism to map possible build targets 57# Todo add a mechanism to map possible build targets
67EXTRA_OEMESON = "-Dplatform=${PLATFORM} \ 58EXTRA_OEMESON = "-Dplatform=${PLATFORM} \
68 -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \ 59 -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \