diff options
author | Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | 2020-02-22 14:33:25 +0000 |
---|---|---|
committer | Otavio Salvador <otavio@ossystems.com.br> | 2020-03-03 18:26:17 -0300 |
commit | 6802b457723b8aaa0fda20f608a34d7bc220942d (patch) | |
tree | 74e3bd6bfbef3060a0dc5a43d0dd542505f0f099 /recipes-multimedia | |
parent | 723deb35baae17006fc029e15ddf6ff55357b580 (diff) | |
download | meta-freescale-6802b457723b8aaa0fda20f608a34d7bc220942d.tar.gz |
gstreamer1.0-plugins-bad: Transition to meson based builds
This update follows [427eb30f9b59972b38ae3f25094470bb7034547d]
in upstream, which trasnitions the gstreamer1.0 plugins build
from autotools to meson build.
Additional patches included in meta-freescale are:
- Backport of 2 patches to allow using OpenCV version 4.1.0
- Adaptions required in NXP fork to use meson
- One patch which solves the data dir search on OpenCV.
Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Diffstat (limited to 'recipes-multimedia')
7 files changed, 357 insertions, 183 deletions
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-ext-wayland-fix-meson-build-in-nxp-fork.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-ext-wayland-fix-meson-build-in-nxp-fork.patch new file mode 100644 index 00000000..088976d8 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-ext-wayland-fix-meson-build-in-nxp-fork.patch | |||
@@ -0,0 +1,60 @@ | |||
1 | From e637d9f6bb961afcecb74faa6dff38562f6ce796 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | ||
3 | Date: Sun, 26 Jan 2020 10:45:28 +0000 | ||
4 | Subject: [PATCH] ext/wayland: fix meson build in nxp fork | ||
5 | |||
6 | - Add Wayland protocols, which are not enabled in upstream | ||
7 | - Add missing compilation unit, which in NXP-specific | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | ||
12 | --- | ||
13 | ext/wayland/meson.build | 24 ++++++++++++++++++++++++ | ||
14 | 1 file changed, 24 insertions(+) | ||
15 | |||
16 | diff --git a/ext/wayland/meson.build b/ext/wayland/meson.build | ||
17 | index fa6fbf42f..eb425b14f 100644 | ||
18 | --- a/ext/wayland/meson.build | ||
19 | +++ b/ext/wayland/meson.build | ||
20 | @@ -8,6 +8,11 @@ wl_sources = [ | ||
21 | 'wllinuxdmabuf.c' | ||
22 | ] | ||
23 | |||
24 | +imx_wl_sources = [ | ||
25 | + 'wlutils.c', | ||
26 | +] | ||
27 | +wl_sources += imx_wl_sources | ||
28 | + | ||
29 | if use_wayland | ||
30 | protocols_datadir = wl_protocol_dep.get_pkgconfig_variable('pkgdatadir') | ||
31 | |||
32 | @@ -19,6 +24,25 @@ if use_wayland | ||
33 | 'fullscreen-shell-unstable-v1-protocol.c', 'fullscreen-shell-unstable-v1-client-protocol.h'], | ||
34 | ['/stable/xdg-shell/xdg-shell.xml', 'xdg-shell-protocol.c', 'xdg-shell-client-protocol.h'], | ||
35 | ] | ||
36 | + | ||
37 | + imx_protocol_defs = [ | ||
38 | + [ | ||
39 | + '/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml', | ||
40 | + 'alpha-compositing-unstable-v1-protocol.c', | ||
41 | + 'alpha-compositing-unstable-v1-client-protocol.h' | ||
42 | + ], | ||
43 | + ['/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml', | ||
44 | + 'hdr10-metadata-unstable-v1-protocol.c', | ||
45 | + 'hdr10-metadata-unstable-v1-client-protocol.h' | ||
46 | + ], | ||
47 | + [ | ||
48 | + '/unstable/linux-explicit-synchronization/linux-explicit-synchronization-unstable-v1.xml', | ||
49 | + 'linux-explicit-synchronization-unstable-v1-protocol.c', | ||
50 | + 'linux-explicit-synchronization-unstable-v1-client-protocol.h' | ||
51 | + ], | ||
52 | + ] | ||
53 | + protocol_defs += imx_protocol_defs | ||
54 | + | ||
55 | protocols_files = [] | ||
56 | |||
57 | foreach protodef: protocol_defs | ||
58 | -- | ||
59 | 2.17.1 | ||
60 | |||
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch new file mode 100644 index 00000000..13218520 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From 97a4d0cd7de8cfbf983acc7e37ba2f8fb73c3e19 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com> | ||
3 | Date: Fri, 18 Oct 2019 00:39:12 +0100 | ||
4 | Subject: [PATCH 1/2] meson: build gir even when cross-compiling if | ||
5 | introspection was enabled explicitly | ||
6 | |||
7 | This can be made to work in certain circumstances when | ||
8 | cross-compiling, so default to not building g-i stuff | ||
9 | when cross-compiling, but allow it if introspection was | ||
10 | enabled explicitly via -Dintrospection=enabled. | ||
11 | |||
12 | See gstreamer/gstreamer#454 and gstreamer/gstreamer#381. | ||
13 | |||
14 | Upstream-Status: Backport [97a4d0cd7de8cfbf983acc7e37ba2f8fb73c3e19] | ||
15 | |||
16 | Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> | ||
17 | --- | ||
18 | meson.build | 2 +- | ||
19 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
20 | |||
21 | diff --git a/meson.build b/meson.build | ||
22 | index 67aeeb4d0..7b3314bd9 100644 | ||
23 | --- a/meson.build | ||
24 | +++ b/meson.build | ||
25 | @@ -411,7 +411,7 @@ python3 = import('python').find_installation() | ||
26 | |||
27 | gir = find_program('g-ir-scanner', required : get_option('introspection')) | ||
28 | gnome = import('gnome') | ||
29 | -build_gir = gir.found() and not meson.is_cross_build() | ||
30 | +build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled()) | ||
31 | gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \ | ||
32 | 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \ | ||
33 | 'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \ | ||
34 | -- | ||
35 | 2.17.1 | ||
36 | |||
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-fix-build-with-opencv-enabled-and-opencv4.-Fix.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-fix-build-with-opencv-enabled-and-opencv4.-Fix.patch new file mode 100644 index 00000000..874b8abc --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-fix-build-with-opencv-enabled-and-opencv4.-Fix.patch | |||
@@ -0,0 +1,45 @@ | |||
1 | From f41f356aebee916910453031c06c111000f2f261 Mon Sep 17 00:00:00 2001 | ||
2 | From: Christoph Reiter <reiter.christoph@gmail.com> | ||
3 | Date: Sun, 5 May 2019 22:11:16 +0200 | ||
4 | Subject: [PATCH] meson: fix build with opencv=enabled and opencv4. Fixes #964 | ||
5 | |||
6 | Having the opencv feature enabled would lead to the opencv3 dependency | ||
7 | being required which failed with only opencv4 being available. | ||
8 | |||
9 | Instead don't require anything and error out at the end if the feature was enabled | ||
10 | but no dependency was found. | ||
11 | |||
12 | Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/22c6a4085f8792d8af0cdabfe1664d55ca2dee11] | ||
13 | |||
14 | (cherry picked from commit 22c6a4085f8792d8af0cdabfe1664d55ca2dee11) | ||
15 | Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | ||
16 | --- | ||
17 | gst-libs/gst/opencv/meson.build | 6 ++++-- | ||
18 | 1 file changed, 4 insertions(+), 2 deletions(-) | ||
19 | |||
20 | diff --git a/gst-libs/gst/opencv/meson.build b/gst-libs/gst/opencv/meson.build | ||
21 | index 3fd472fda..8dc2ad99b 100644 | ||
22 | --- a/gst-libs/gst/opencv/meson.build | ||
23 | +++ b/gst-libs/gst/opencv/meson.build | ||
24 | @@ -9,9 +9,9 @@ opencv_headers = [ | ||
25 | 'gstopencvvideofilter.h', | ||
26 | ] | ||
27 | |||
28 | -opencv_dep = dependency('opencv', version : '>= 3.0.0', required : get_option('opencv')) | ||
29 | +opencv_dep = dependency('opencv', version : '>= 3.0.0', required : false) | ||
30 | if not opencv_dep.found() | ||
31 | - opencv_dep = dependency('opencv4', version : '>= 4.0.0', required : get_option('opencv')) | ||
32 | + opencv_dep = dependency('opencv4', version : '>= 4.0.0', required : false) | ||
33 | endif | ||
34 | if opencv_dep.found() | ||
35 | gstopencv = library('gstopencv-' + api_version, | ||
36 | @@ -30,4 +30,6 @@ if opencv_dep.found() | ||
37 | dependencies : [gstvideo_dep, opencv_dep]) | ||
38 | |||
39 | install_headers(opencv_headers, subdir : 'gstreamer-1.0/gst/opencv') | ||
40 | +elif get_option('opencv').enabled() | ||
41 | + error('OpenCV support enabled but required dependencies were not found.') | ||
42 | endif | ||
43 | -- | ||
44 | 2.17.1 | ||
45 | |||
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-opencv-allow-compilation-against-4.1.x.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-opencv-allow-compilation-against-4.1.x.patch new file mode 100644 index 00000000..62705dd4 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-opencv-allow-compilation-against-4.1.x.patch | |||
@@ -0,0 +1,43 @@ | |||
1 | From eb404fd917fa3ab7ffa9433c9975ee49cfc9c41f Mon Sep 17 00:00:00 2001 | ||
2 | From: Nicola Murino <nicola.murino@gmail.com> | ||
3 | Date: Tue, 23 Apr 2019 09:06:13 +0200 | ||
4 | Subject: [PATCH 1/2] opencv: allow compilation against 4.1.x | ||
5 | |||
6 | Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/49a2baebf58d9288f75964fc40a547fde510a840] | ||
7 | |||
8 | (cherry picked from commit 49a2baebf58d9288f75964fc40a547fde510a840) | ||
9 | Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | ||
10 | --- | ||
11 | configure.ac | 2 +- | ||
12 | ext/opencv/meson.build | 2 +- | ||
13 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
14 | |||
15 | diff --git a/configure.ac b/configure.ac | ||
16 | index 26f72eb0d..9e12d39a0 100644 | ||
17 | --- a/configure.ac | ||
18 | +++ b/configure.ac | ||
19 | @@ -1852,7 +1852,7 @@ AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [ | ||
20 | HAVE_OPENCV="yes" | ||
21 | fi | ||
22 | ], [ | ||
23 | - PKG_CHECK_MODULES([OPENCV], [opencv4 >= 4.0.0 opencv4 < 4.1.0] , [ | ||
24 | + PKG_CHECK_MODULES([OPENCV], [opencv4 >= 4.0.0 opencv4 < 4.2.0] , [ | ||
25 | AC_PROG_CXX | ||
26 | AC_LANG([C++]) | ||
27 | OLD_CPPFLAGS=$CPPFLAGS | ||
28 | diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build | ||
29 | index d0ce1d3ee..f38b55dfe 100644 | ||
30 | --- a/ext/opencv/meson.build | ||
31 | +++ b/ext/opencv/meson.build | ||
32 | @@ -65,7 +65,7 @@ if opencv_found | ||
33 | endif | ||
34 | endforeach | ||
35 | else | ||
36 | - opencv_dep = dependency('opencv4', version : ['>= 4.0.0', '< 4.1.0'], required : false) | ||
37 | + opencv_dep = dependency('opencv4', version : ['>= 4.0.0', '< 4.2.0'], required : false) | ||
38 | opencv_found = opencv_dep.found() | ||
39 | if opencv_found | ||
40 | foreach h : libopencv4_headers | ||
41 | -- | ||
42 | 2.17.1 | ||
43 | |||
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch deleted file mode 100644 index 25861b6b..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch +++ /dev/null | |||
@@ -1,61 +0,0 @@ | |||
1 | From f59c5269f92d59a5296cbfeeb682d42095cd88ad Mon Sep 17 00:00:00 2001 | ||
2 | From: Wenzong Fan <wenzong.fan@windriver.com> | ||
3 | Date: Thu, 18 Sep 2014 02:24:07 -0400 | ||
4 | Subject: [PATCH] gstreamer1.0-plugins-bad: allow to disable libssh2 | ||
5 | |||
6 | libssh2 is automatically linked to if present, this undetermined | ||
7 | dependency may cause build errors like: | ||
8 | |||
9 | .../x86_64-poky-linux/4.9.0/ld: cannot find -lssh2 | ||
10 | |||
11 | libssh2 isn't an oe-core recipe, so allow to disable it from | ||
12 | configure. | ||
13 | |||
14 | Upstream-Status: Pending | ||
15 | |||
16 | Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> | ||
17 | --- | ||
18 | configure.ac | 23 +++++++++++++++++------ | ||
19 | 1 file changed, 17 insertions(+), 6 deletions(-) | ||
20 | |||
21 | Index: gst-plugins-bad-1.12.3/configure.ac | ||
22 | =================================================================== | ||
23 | --- gst-plugins-bad-1.12.3.orig/configure.ac | ||
24 | +++ gst-plugins-bad-1.12.3/configure.ac | ||
25 | @@ -1202,6 +1202,15 @@ AG_GST_CHECK_FEATURE(CHROMAPRINT, [chrom | ||
26 | ]) | ||
27 | |||
28 | dnl *** Curl *** | ||
29 | +AC_ARG_ENABLE([libssh2], | ||
30 | + [ --enable-libssh2 enable LIBSSH2 support @<:@default=auto@:>@], | ||
31 | + [case "${enableval}" in | ||
32 | + yes) NEED_SSH2=yes ;; | ||
33 | + no) NEED_SSH2=no ;; | ||
34 | + auto) NEED_SSH2=auto ;; | ||
35 | + *) AC_MSG_ERROR([bad value ${enableval} for --enable-libssh2]) ;; | ||
36 | + esac],[NEED_SSH2=auto]) | ||
37 | + | ||
38 | translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true) | ||
39 | AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [ | ||
40 | PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [ | ||
41 | @@ -1224,12 +1233,14 @@ AG_GST_CHECK_FEATURE(CURL, [Curl plugin] | ||
42 | ]) | ||
43 | AC_SUBST(CURL_CFLAGS) | ||
44 | AC_SUBST(CURL_LIBS) | ||
45 | - PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [ | ||
46 | - HAVE_SSH2="yes" | ||
47 | - AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available]) | ||
48 | - ], [ | ||
49 | - HAVE_SSH2="no" | ||
50 | - ]) | ||
51 | + if test "x$NEED_SSH2" != "xno"; then | ||
52 | + PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [ | ||
53 | + HAVE_SSH2="yes" | ||
54 | + AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available]) | ||
55 | + ], [ | ||
56 | + HAVE_SSH2="no" | ||
57 | + ]) | ||
58 | + fi | ||
59 | AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes") | ||
60 | AC_SUBST(SSH2_CFLAGS) | ||
61 | AC_SUBST(SSH2_LIBS) | ||
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch new file mode 100644 index 00000000..3fe3f649 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch | |||
@@ -0,0 +1,49 @@ | |||
1 | From 5830de9b1c8965683025082aeed7ccaf1dd85969 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | ||
3 | Date: Sun, 26 Jan 2020 19:55:06 +0000 | ||
4 | Subject: [PATCH 2/2] opencv: resolve missing opencv data dir in yocto build | ||
5 | |||
6 | When Yocto build is performed, opencv searches for data dir using simple | ||
7 | test command, and this fails because pkg-config provides an absolute | ||
8 | path on the target which needs to be prepended by PKG_CONFIG_SYSROOT_DIR | ||
9 | in order for the 'test' utility to pick up the absolute path. | ||
10 | |||
11 | Upstream-Status: Inappropriate [OE-specific] | ||
12 | |||
13 | Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | ||
14 | --- | ||
15 | ext/opencv/meson.build | 7 ++++--- | ||
16 | 1 file changed, 4 insertions(+), 3 deletions(-) | ||
17 | |||
18 | diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build | ||
19 | index f38b55dfe..a26403482 100644 | ||
20 | --- a/ext/opencv/meson.build | ||
21 | +++ b/ext/opencv/meson.build | ||
22 | @@ -78,20 +78,21 @@ else | ||
23 | endif | ||
24 | |||
25 | if opencv_found | ||
26 | + pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip() | ||
27 | opencv_prefix = opencv_dep.get_pkgconfig_variable('prefix') | ||
28 | gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"'] | ||
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 | - r = run_command('test', '-d', opencv_prefix + '/share/opencv') | ||
33 | + r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv') | ||
34 | if r.returncode() == 0 | ||
35 | gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv"' | ||
36 | else | ||
37 | - r = run_command('test', '-d', opencv_prefix + '/share/OpenCV') | ||
38 | + r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/OpenCV') | ||
39 | if r.returncode() == 0 | ||
40 | gstopencv_cargs += '-DOPENCV_PATH_NAME="OpenCV"' | ||
41 | else | ||
42 | - r = run_command('test', '-d', opencv_prefix + '/share/opencv4') | ||
43 | + r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv4') | ||
44 | if r.returncode() == 0 | ||
45 | gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv4"' | ||
46 | else | ||
47 | -- | ||
48 | 2.17.1 | ||
49 | |||
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.imx.bb index f18a70d1..b9ac08c2 100644 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.imx.bb +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.imx.bb | |||
@@ -1,8 +1,5 @@ | |||
1 | require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc | 1 | require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc |
2 | 2 | ||
3 | LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ | ||
4 | file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 " | ||
5 | |||
6 | DEPENDS_append_imxgpu2d = " virtual/libg2d" | 3 | DEPENDS_append_imxgpu2d = " virtual/libg2d" |
7 | DEPENDS_append_mx8 = " libdrm" | 4 | DEPENDS_append_mx8 = " libdrm" |
8 | 5 | ||
@@ -10,39 +7,36 @@ PACKAGECONFIG_append_mx6q = " opencv" | |||
10 | PACKAGECONFIG_append_mx6qp = " opencv" | 7 | PACKAGECONFIG_append_mx6qp = " opencv" |
11 | PACKAGECONFIG_append_mx8 = " opencv kms" | 8 | PACKAGECONFIG_append_mx8 = " opencv kms" |
12 | 9 | ||
10 | DEFAULT_PREFERENCE = "-1" | ||
11 | |||
12 | PACKAGE_ARCH_imxpxp = "${MACHINE_SOCARCH}" | ||
13 | PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" | ||
14 | |||
13 | GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https" | 15 | GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https" |
14 | SRCBRANCH = "MM_04.05.01_1909_L4.19.35" | 16 | SRCBRANCH = "MM_04.05.01_1909_L4.19.35" |
15 | 17 | ||
16 | SRC_URI = " \ | 18 | SRC_URI = " \ |
17 | ${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} \ | 19 | ${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} \ |
18 | file://configure-allow-to-disable-libssh2.patch \ | 20 | file://0001-ext-wayland-fix-meson-build-in-nxp-fork.patch \ |
21 | file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \ | ||
22 | file://0001-meson-fix-build-with-opencv-enabled-and-opencv4.-Fix.patch \ | ||
23 | file://0002-opencv-allow-compilation-against-4.1.x.patch \ | ||
24 | file://opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \ | ||
19 | file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \ | 25 | file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \ |
20 | file://avoid-including-sys-poll.h-directly.patch \ | 26 | file://avoid-including-sys-poll.h-directly.patch \ |
21 | file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \ | 27 | file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \ |
22 | file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ | ||
23 | " | 28 | " |
24 | |||
25 | SRCREV = "eba3db4034fc17b712808d5e90ed5ff22ef490ca" | 29 | SRCREV = "eba3db4034fc17b712808d5e90ed5ff22ef490ca" |
26 | 30 | ||
27 | DEFAULT_PREFERENCE = "-1" | ||
28 | |||
29 | # This remove "--exclude=autopoint" option from autoreconf argument to avoid | ||
30 | # configure.ac:30: error: required file './ABOUT-NLS' not found | ||
31 | EXTRA_AUTORECONF = "" | ||
32 | |||
33 | # include fragment shaders | ||
34 | FILES_${PN}-opengl += "/usr/share/*.fs" | ||
35 | |||
36 | PACKAGE_ARCH_imxpxp = "${MACHINE_SOCARCH}" | ||
37 | PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" | ||
38 | |||
39 | S = "${WORKDIR}/git" | 31 | S = "${WORKDIR}/git" |
40 | 32 | ||
41 | LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" | 33 | LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" |
34 | LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ | ||
35 | file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 " | ||
42 | 36 | ||
43 | DEPENDS += "gstreamer1.0-plugins-base jpeg" | 37 | DEPENDS += "gstreamer1.0-plugins-base" |
44 | 38 | ||
45 | inherit gettext | 39 | inherit gobject-introspection |
46 | 40 | ||
47 | PACKAGECONFIG ??= " \ | 41 | PACKAGECONFIG ??= " \ |
48 | ${GSTREAMER_ORC} \ | 42 | ${GSTREAMER_ORC} \ |
@@ -50,121 +44,129 @@ PACKAGECONFIG ??= " \ | |||
50 | ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ | 44 | ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ |
51 | ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ | 45 | ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ |
52 | ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ | 46 | ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ |
53 | bz2 curl dash dtls hls rsvg sbc smoothstreaming sndfile ttml uvch264 webp \ | 47 | bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \ |
48 | ttml uvch264 webp \ | ||
54 | " | 49 | " |
55 | 50 | ||
51 | PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass" | ||
52 | PACKAGECONFIG[bluez] = "-Dbluez=enabled,-Dbluez=disabled,bluez5" | ||
53 | PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" | ||
54 | PACKAGECONFIG[closedcaption] = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo" | ||
55 | PACKAGECONFIG[curl] = "-Dcurl=enabled,-Dcurl=disabled,curl" | ||
56 | PACKAGECONFIG[dash] = "-Ddash=enabled,-Ddash=disabled,libxml2" | ||
57 | PACKAGECONFIG[dc1394] = "-Ddc1394=enabled,-Ddc1394=disabled,libdc1394" | ||
58 | PACKAGECONFIG[directfb] = "-Ddirectfb=enabled,-Ddirectfb=disabled,directfb" | ||
59 | PACKAGECONFIG[dtls] = "-Ddtls=enabled,-Ddtls=disabled,openssl" | ||
60 | PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac" | ||
61 | PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2" | ||
62 | PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth" | ||
63 | PACKAGECONFIG[hls] = "-Dhls=enabled -Dhls-crypto=nettle,-Dhls=disabled,nettle" | ||
56 | # the gl packageconfig enables OpenGL elements that haven't been ported | 64 | # 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 | 65 | # 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. | 66 | # not add GL dependencies here, since these are taken care of in -base. |
59 | 67 | PACKAGECONFIG[gl] = "-Dgl=enabled,-Dgl=disabled," | |
60 | PACKAGECONFIG[assrender] = "--enable-assrender,--disable-assrender,libass" | 68 | PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm" |
61 | PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez5" | 69 | PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265" |
62 | PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" | 70 | PACKAGECONFIG[libmms] = "-Dlibmms=enabled,-Dlibmms=disabled,libmms" |
63 | PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" | 71 | PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2" |
64 | PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2" | 72 | PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug" |
65 | PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" | 73 | PACKAGECONFIG[msdk] = "-Dmsdk=enabled,-Dmsdk=disabled,intel-mediasdk" |
66 | PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb" | 74 | PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon" |
67 | PACKAGECONFIG[dtls] = "--enable-dtls,--disable-dtls,openssl" | 75 | PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft" |
68 | PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" | 76 | PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv" |
69 | PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" | 77 | PACKAGECONFIG[openh264] = "-Dopenh264=enabled,-Dopenh264=disabled,openh264" |
70 | PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa" | 78 | PACKAGECONFIG[openjpeg] = "-Dopenjpeg=enabled,-Dopenjpeg=disabled,openjpeg" |
71 | PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" | 79 | PACKAGECONFIG[openmpt] = "-Dopenmpt=enabled,-Dopenmpt=disabled,libopenmpt" |
72 | PACKAGECONFIG[hls] = "--enable-hls --with-hls-crypto=nettle,--disable-hls,nettle" | ||
73 | PACKAGECONFIG[gl] = "--enable-gl,--disable-gl," | ||
74 | PACKAGECONFIG[kms] = "--enable-kms,--disable-kms,libdrm" | ||
75 | PACKAGECONFIG[libde265] = "--enable-libde265,--disable-libde265,libde265" | ||
76 | PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms" | ||
77 | PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2" | ||
78 | PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" | ||
79 | PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" | ||
80 | PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" | ||
81 | PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" | ||
82 | PACKAGECONFIG[openh264] = "--enable-openh264,--disable-openh264,openh264" | ||
83 | PACKAGECONFIG[openjpeg] = "--enable-openjpeg,--disable-openjpeg,openjpeg" | ||
84 | # the opus encoder/decoder elements are now in the -base package, | 80 | # the opus encoder/decoder elements are now in the -base package, |
85 | # but the opus parser remains in -bad | 81 | # but the opus parser remains in -bad |
86 | PACKAGECONFIG[opusparse] = "--enable-opus,--disable-opus,libopus" | 82 | PACKAGECONFIG[opusparse] = "-Dopus=enabled,-Dopus=disabled,libopus" |
87 | PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdread libdvdnav" | 83 | PACKAGECONFIG[resindvd] = "-Dresindvd=enabled,-Dresindvd=disabled,libdvdread libdvdnav" |
88 | PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg" | 84 | PACKAGECONFIG[rsvg] = "-Drsvg=enabled,-Drsvg=disabled,librsvg" |
89 | PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" | 85 | PACKAGECONFIG[rtmp] = "-Drtmp=enabled,-Drtmp=disabled,rtmpdump" |
90 | PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc" | 86 | PACKAGECONFIG[sbc] = "-Dsbc=enabled,-Dsbc=disabled,sbc" |
91 | PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2" | 87 | PACKAGECONFIG[sctp] = "-Dsctp=enabled,-Dsctp=disabled,usrsctp" |
92 | PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" | 88 | PACKAGECONFIG[smoothstreaming] = "-Dsmoothstreaming=enabled,-Dsmoothstreaming=disabled,libxml2" |
93 | PACKAGECONFIG[srtp] = "--enable-srtp,--disable-srtp,libsrtp" | 89 | PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" |
94 | PACKAGECONFIG[tinyalsa] = "--enable-tinyalsa,--disable-tinyalsa,tinyalsa" | 90 | PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp" |
95 | PACKAGECONFIG[ttml] = "--enable-ttml,--disable-ttml,libxml2 pango cairo" | 91 | PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa" |
96 | PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" | 92 | PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo" |
97 | PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" | 93 | PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev" |
98 | PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" | 94 | PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc" |
99 | PACKAGECONFIG[vulkan] = "--enable-vulkan,--disable-vulkan,vulkan-headers" | 95 | PACKAGECONFIG[voamrwbenc] = "-Dvoamrwbenc=enabled,-Dvoamrwbenc=disabled,vo-amrwbenc" |
100 | PACKAGECONFIG[lcms2] = "--enable-lcms2,--disable-lcms2,lcms" | 96 | PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader" |
101 | PACKAGECONFIG[openmpt] = "--enable-openmpt,--disable-openmpt,libopenmpt" | 97 | PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols libdrm" |
102 | PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols libdrm" | 98 | PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp" |
103 | PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" | 99 | PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice" |
104 | PACKAGECONFIG[webrtc] = "--enable-webrtc,--disable-webrtc,libnice" | 100 | PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing" |
105 | PACKAGECONFIG[webrtcdsp] = "--enable-webrtcdsp,--disable-webrtcdsp,webrtc-audio-processing" | 101 | PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar" |
106 | 102 | ||
107 | # these plugins have no corresponding library in OE-core or meta-openembedded: | 103 | # Following package config in not available in NXP fork: |
108 | # openni2 winks direct3d directsound winscreencap apple_media iqa | 104 | #PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms" |
109 | # android_media avc bs2b chromaprint dts fdkaac gme gsm kate ladspa | 105 | |
110 | # lv2 mpeg2enc mplex msdk musepack nvenc ofa openmpt opensles soundtouch | 106 | # these plugins currently have no corresponding library in OE-core or meta-openembedded: |
111 | # spandsp teletextdec vdpau wasapi x265 zbar | 107 | # aom androidmedia applemedia bs2b chromaprint d3dvideosink |
112 | 108 | # directsound dts fdkaac gme gsm iq kate ladspa lv2 mpeg2enc | |
113 | EXTRA_OECONF += " \ | 109 | # mplex musepack nvdec nvenc ofa openexr openni2 opensles |
114 | --enable-decklink \ | 110 | # soundtouch spandsp srt teletext vdpau wasapi wildmidi winks |
115 | --enable-dvb \ | 111 | # winscreencap wpe x265 |
116 | --enable-fbdev \ | 112 | |
117 | --enable-ipcpipeline \ | 113 | EXTRA_OEMESON += " \ |
118 | --enable-netsim \ | 114 | -Ddecklink=enabled \ |
119 | --enable-shm \ | 115 | -Ddvb=enabled \ |
120 | --disable-android_media \ | 116 | -Dfbdev=enabled \ |
121 | --disable-aom \ | 117 | -Dipcpipeline=enabled \ |
122 | --disable-apple_media \ | 118 | -Dnetsim=enabled \ |
123 | --disable-avc \ | 119 | -Dshm=enabled \ |
124 | --disable-bs2b \ | 120 | -Daom=disabled \ |
125 | --disable-chromaprint \ | 121 | -Dandroidmedia=disabled \ |
126 | --disable-direct3d \ | 122 | -Dapplemedia=disabled \ |
127 | --disable-directsound \ | 123 | -Dbs2b=disabled \ |
128 | --disable-dts \ | 124 | -Dchromaprint=disabled \ |
129 | --disable-fdk_aac \ | 125 | -Dd3dvideosink=disabled \ |
130 | --disable-gme \ | 126 | -Ddirectsound=disabled \ |
131 | --disable-gsm \ | 127 | -Ddts=disabled \ |
132 | --disable-iqa \ | 128 | -Dfdkaac=disabled \ |
133 | --disable-kate \ | 129 | -Dflite=disabled \ |
134 | --disable-ladspa \ | 130 | -Dgme=disabled \ |
135 | --disable-lv2 \ | 131 | -Dgsm=disabled \ |
136 | --disable-mpeg2enc \ | 132 | -Diqa=disabled \ |
137 | --disable-mplex \ | 133 | -Dkate=disabled \ |
138 | --disable-msdk \ | 134 | -Dladspa=disabled \ |
139 | --disable-musepack \ | 135 | -Dlv2=disabled \ |
140 | --disable-nvenc \ | 136 | -Dmpeg2enc=disabled \ |
141 | --disable-ofa \ | 137 | -Dmplex=disabled \ |
142 | --disable-openexr \ | 138 | -Dmsdk=disabled \ |
143 | --disable-openmpt \ | 139 | -Dmusepack=disabled \ |
144 | --disable-openni2 \ | 140 | -Dnvdec=disabled \ |
145 | --disable-opensles \ | 141 | -Dnvenc=disabled \ |
146 | --disable-soundtouch \ | 142 | -Dofa=disabled \ |
147 | --disable-spandsp \ | 143 | -Dopenexr=disabled \ |
148 | --disable-srt \ | 144 | -Dopenmpt=disabled \ |
149 | --disable-teletextdec \ | 145 | -Dopenni2=disabled \ |
150 | --disable-vdpau \ | 146 | -Dopensles=disabled \ |
151 | --disable-wasapi \ | 147 | -Dsoundtouch=disabled \ |
152 | --disable-wildmidi \ | 148 | -Dspandsp=disabled \ |
153 | --disable-winks \ | 149 | -Dsrt=disabled \ |
154 | --disable-winscreencap \ | 150 | -Dteletext=disabled \ |
155 | --disable-x265 \ | 151 | -Dvdpau=disabled \ |
156 | --disable-zbar \ | 152 | -Dwasapi=disabled \ |
157 | ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \ | 153 | -Dwildmidi=disabled \ |
158 | --disable-introspection \ | 154 | -Dwinks=disabled \ |
155 | -Dwinscreencap=disabled \ | ||
156 | -Dwpe=disabled \ | ||
157 | -Dx265=disabled \ | ||
158 | -Dzbar=disabled \ | ||
159 | ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-Dyadif=disabled", "", d)} \ | ||
159 | " | 160 | " |
161 | |||
160 | export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" | 162 | export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" |
161 | 163 | ||
162 | ARM_INSTRUCTION_SET_armv4 = "arm" | 164 | ARM_INSTRUCTION_SET_armv4 = "arm" |
163 | ARM_INSTRUCTION_SET_armv5 = "arm" | 165 | ARM_INSTRUCTION_SET_armv5 = "arm" |
164 | 166 | ||
165 | FILES_${PN}-freeverb += "${datadir}/gstreamer-${LIBV}/presets/GstFreeverb.prs" | 167 | FILES_${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs" |
166 | FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/${LIBV}/opencv*" | 168 | FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" |
167 | FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" | 169 | FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs" |
168 | # include fragment shaders | 170 | # include fragment shaders |
169 | FILES_${PN}-opengl += "/usr/share/*.fs" | 171 | FILES_${PN}-opengl += "/usr/share/*.fs" |
170 | 172 | ||