diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2021-01-28 19:04:07 +0100 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2021-01-30 19:38:06 +0100 |
commit | d9196bf045bb2a667536fe270d494690bd69d1c8 (patch) | |
tree | 99cf93896bd86919b79cfad35647fa9b6f10c350 /backports | |
parent | 094df0c63fe125b3b534df66875ca70125039e9f (diff) |
gstreamer1.0-plugins-base: backport
meta-freescale master already has latest with 5.4.47-2.2.0.
no change to 5.4.70-2.3.0
Related-to: ELB-3327
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'backports')
8 files changed, 729 insertions, 0 deletions
diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch new file mode 100644 index 0000000..61baf2f --- /dev/null +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch @@ -0,0 +1,36 @@ +From a145a129a8122f21c1e243b3dc2e5708f4c13bef Mon Sep 17 00:00:00 2001 +From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> +Date: Thu, 23 Jan 2020 12:54:10 +0000 +Subject: [PATCH] gst-libs gst gl wayland: fix meson build + +Since introduction of meson build system, modifications introduced in +NXP fork are breaking the build, where xdg-shell-client-protocol.h +is searched via relative path. This code is only present in NXP fork and +should be removed. + +This reverts commit [48bde732b00fb42df636ebbaf3b06e5e7971c206] +("wayland: fix build break in yocto") from upstream. + +Upstream-Status: Pending + +Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> +--- + gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h +index d1795591f..89dedd9b5 100644 +--- a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h ++++ b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h +@@ -22,7 +22,7 @@ + #define __GST_GL_WINDOW_WAYLAND_EGL_H__ + + #include <wayland-client.h> +-#include <gst/gl/wayland/xdg-shell-client-protocol.h> ++#include "xdg-shell-client-protocol.h" + #include <wayland-egl.h> + #include <wayland-cursor.h> + +-- +2.17.1 + diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch new file mode 100644 index 0000000..da15253 --- /dev/null +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch @@ -0,0 +1,220 @@ +From def285f623bc30b9d1acede00393188e693cc741 Mon Sep 17 00:00:00 2001 +From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> +Date: Sat, 22 Feb 2020 13:22:57 +0000 +Subject: [PATCH] gstreamer-plugins-base: fix meson build in nxp fork + +- Add missing IMX header file into istall target; +- Allocator's meta data files are missing in meson.build, bring them back; +- Add ION NXP-specific allocator to meson.build; +- Introduce additional configuration option to pass extra include paths, + which are required to build ION allocator; +- Some video sources are missing, bring them also into the build; + +Upstream-Status: Pending + +Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> +--- + gst-libs/gst/allocators/meson.build | 30 +++++++++++++++++++++++++++-- + gst-libs/gst/gl/gstglconfig.h.meson | 2 ++ + gst-libs/gst/gl/meson.build | 20 +++++++++++++++++++ + gst-libs/gst/meson.build | 6 ++++++ + gst-libs/gst/video/meson.build | 11 +++++++++++ + meson.build | 3 +++ + meson_options.txt | 4 ++++ + 7 files changed, 74 insertions(+), 2 deletions(-) + +diff --git a/gst-libs/gst/allocators/meson.build b/gst-libs/gst/allocators/meson.build +index 364baeebf..30b1495c9 100644 +--- a/gst-libs/gst/allocators/meson.build ++++ b/gst-libs/gst/allocators/meson.build +@@ -5,18 +5,44 @@ gst_allocators_headers = [ + 'gstphysmemory.h', + 'gstdmabuf.h', + ] ++ ++imx_gst_allocators_headers = [ ++ 'gstphymemmeta.h', ++ 'gstdmabufmeta.h', ++ 'gstallocatorphymem.h', ++] ++ ++if cc.has_header('linux/ion.h', include_directories : imx_includes) ++ imx_gst_allocators_headers += [ ++ 'gstionmemory.h', ++ ] ++endif ++ ++gst_allocators_headers += imx_gst_allocators_headers ++ + install_headers(gst_allocators_headers, subdir : 'gstreamer-1.0/gst/allocators/') + + gst_allocators_sources = [ 'gstdmabuf.c', 'gstfdmemory.c', 'gstphysmemory.c'] ++ ++imx_gst_allocators_sources = ['gstdmabufmeta.c', 'gstphymemmeta.c', 'gstallocatorphymem.c'] ++ ++if cc.has_header('linux/ion.h', include_directories : imx_includes) ++ imx_gst_allocators_sources += [ ++ 'gstionmemory.c', ++ ] ++endif ++ ++gst_allocators_sources += imx_gst_allocators_sources ++ + gstallocators = library('gstallocators-@0@'.format(api_version), + gst_allocators_sources, + c_args : gst_plugins_base_args + ['-DBUILDING_GST_ALLOCATORS'], +- include_directories: [configinc, libsinc], ++ include_directories: [configinc, libsinc, imx_includes], + version : libversion, + soversion : soversion, + darwin_versions : osxversion, + install : true, +- dependencies : [gst_dep], ++ dependencies : [video_dep, gst_dep], + ) + + allocators_gen_sources = [] +diff --git a/gst-libs/gst/gl/gstglconfig.h.meson b/gst-libs/gst/gl/gstglconfig.h.meson +index 11795c16c..66cd54a7e 100644 +--- a/gst-libs/gst/gl/gstglconfig.h.meson ++++ b/gst-libs/gst/gl/gstglconfig.h.meson +@@ -32,8 +32,10 @@ G_BEGIN_DECLS + #mesondefine GST_GL_HAVE_PLATFORM_CGL + #mesondefine GST_GL_HAVE_PLATFORM_EAGL + ++#mesondefine GST_GL_HAVE_IONDMA + #mesondefine GST_GL_HAVE_DMABUF + #mesondefine GST_GL_HAVE_VIV_DIRECTVIV ++#mesondefine GST_GL_HAVE_PHYMEM + + #mesondefine GST_GL_HAVE_GLEGLIMAGEOES + #mesondefine GST_GL_HAVE_GLCHAR +diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build +index 0e0ba1b7d..6f6c6866d 100644 +--- a/gst-libs/gst/gl/meson.build ++++ b/gst-libs/gst/gl/meson.build +@@ -123,8 +123,10 @@ glconf_options = [ + 'GST_GL_HAVE_PLATFORM_CGL', + 'GST_GL_HAVE_PLATFORM_EAGL', + ++ 'GST_GL_HAVE_IONDMA', + 'GST_GL_HAVE_DMABUF', + 'GST_GL_HAVE_VIV_DIRECTVIV', ++ 'GST_GL_HAVE_PHYMEM', + + 'GST_GL_HAVE_GLEGLIMAGEOES', + 'GST_GL_HAVE_GLCHAR', +@@ -146,6 +148,18 @@ if unneeded_dep.found() + error ('Found unfindable dependency') + endif + ++if cc.has_header('linux/ion.h', include_directories : imx_includes) ++ glconf.set10('GST_GL_HAVE_IONDMA', 1) ++ gl_sources += [ ++ 'gstglmemorydma.c', ++ ] ++ gl_headers += [ ++ 'gstglmemorydma.h', ++ ] ++else ++ error('i.MX platform requires ION support to be enabled!') ++endif ++ + # OpenGL/GLES2 libraries + gl_lib_deps = [] + # GL platform - EGL, GLX, CGL, WGL, etc +@@ -501,6 +515,7 @@ if need_platform_egl != 'no' + glconf.set10('GST_GL_HAVE_DMABUF', 1) + endif + ++ + egl_includes = ''' + #include <EGL/egl.h> + #include <EGL/eglext.h> +@@ -808,9 +823,14 @@ if need_platform_egl != 'no' and need_win_viv_fb != 'no' + enabled_gl_winsys += 'viv-fb' + glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1) + glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1) ++ glconf.set10('GST_GL_HAVE_PHYMEM', 1) + gl_sources += [ + 'viv-fb/gstgldisplay_viv_fb.c', + 'viv-fb/gstglwindow_viv_fb_egl.c', ++ 'gstglphymemory.c', ++ ] ++ gl_headers += [ ++ 'gstglphymemory.h', + ] + gl_cpp_args += ['-DEGL_API_FB'] + endif +diff --git a/gst-libs/gst/meson.build b/gst-libs/gst/meson.build +index cd3b5b043..1935f46e5 100644 +--- a/gst-libs/gst/meson.build ++++ b/gst-libs/gst/meson.build +@@ -11,3 +11,9 @@ subdir('app') + subdir('allocators') + # FIXME: gl deps are automagic + subdir('gl') ++ ++# Install dangling imx header, required by other plugins ++gst_imx_header = [ ++ 'gstimxcommon.h', ++] ++install_headers(gst_imx_header, subdir : 'gstreamer-1.0/') +diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build +index b4dfcdf65..d8531f199 100644 +--- a/gst-libs/gst/video/meson.build ++++ b/gst-libs/gst/video/meson.build +@@ -35,6 +35,11 @@ video_sources = [ + 'videooverlay.c', + ] + ++imx_video_sources = [ ++ 'gstvideohdr10meta.c', ++] ++video_sources += imx_video_sources ++ + video_headers = [ + 'colorbalance.h', + 'colorbalancechannel.h', +@@ -70,6 +75,12 @@ video_headers = [ + 'video-overlay-composition.h', + 'video-multiview.h', + ] ++ ++imx_video_headers = [ ++ 'gstvideohdr10meta.h', ++] ++video_headers += imx_video_headers ++ + install_headers(video_headers, subdir : 'gstreamer-1.0/gst/video/') + + video_mkenum_headers = [ +diff --git a/meson.build b/meson.build +index 2fca28205..7781934cd 100644 +--- a/meson.build ++++ b/meson.build +@@ -103,6 +103,9 @@ if glib_checks.disabled() or (glib_checks.auto() and not gst_version_is_dev) + add_project_arguments('-DG_DISABLE_CHECKS', language: 'c') + endif + ++# Define i.MX-specific include path as variable from options ++imx_includes = include_directories(get_option('extra_imx_incdir')) ++ + check_headers = [ + ['HAVE_DLFCN_H', 'dlfcn.h'], + ['HAVE_EMMINTRIN_H', 'emmintrin.h'], +diff --git a/meson_options.txt b/meson_options.txt +index e7af4dd45..d44401ca6 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -85,3 +85,7 @@ option('package-name', type : 'string', yield : true, + description : 'package name to use in plugins') + option('package-origin', type : 'string', value : 'Unknown package origin', yield : true, + description : 'package origin URL to use in plugins') ++ ++# NXP specific options ++option('extra_imx_incdir', type : 'string', yield : true, description : 'i.MX specific header include path') ++ +-- +2.17.1 + diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch new file mode 100644 index 0000000..5587188 --- /dev/null +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch @@ -0,0 +1,34 @@ +From f82db8496df8ffb8352248e895258c19f8f4776b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com> +Date: Thu, 17 Oct 2019 20:06:24 +0100 +Subject: [PATCH] meson: build gir even when cross-compiling if introspection + was enabled explicitly + +This can be made to work in certain circumstances when +cross-compiling, so default to not building g-i stuff +when cross-compiling, but allow it if introspection was +enabled explicitly via -Dintrospection=enabled. + +See gstreamer/gstreamer#454 and gstreamer/gstreamer#381. + +Upstream-Status: Backport [30672ba7d134553e59935ddc875104adba26f25c] + +Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> + +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 2fca28205..2714af718 100644 +--- a/meson.build ++++ b/meson.build +@@ -355,7 +355,7 @@ endif + + gir = find_program('g-ir-scanner', required : get_option('introspection')) + gnome = import('gnome') +-build_gir = gir.found() and not meson.is_cross_build() ++build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled()) + gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \ + 'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \ + 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \ diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch new file mode 100644 index 0000000..c761619 --- /dev/null +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch @@ -0,0 +1,44 @@ +From 8153e86dac04076fb80fc272c8374d4ba019fa3c Mon Sep 17 00:00:00 2001 +From: Zan Dobersek <zdobersek@igalia.com> +Date: Wed, 4 Nov 2020 14:02:10 +0100 +Subject: [PATCH] meson: viv-fb code must link against libg2d + +Find the libg2d library and link against it, if necessary, avoiding +linking errors for couple of libg2d symbols. + +Upstream-Status: Pending + +Signed-off-by: Zan Dobersek <zdobersek@igalia.com> +--- + gst-libs/gst/gl/meson.build | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build +index 6f6c6866d..fb6a9aabf 100644 +--- a/gst-libs/gst/gl/meson.build ++++ b/gst-libs/gst/gl/meson.build +@@ -818,9 +818,11 @@ if need_win_gbm != 'no' + endif + + if need_platform_egl != 'no' and need_win_viv_fb != 'no' +- if egl_dep.found() and cc.has_function ('fbGetDisplay', dependencies : egl_dep) ++ g2d_dep = cc.find_library('g2d', required : false) ++ if egl_dep.found() and g2d_dep.found() and cc.has_function ('fbGetDisplay', dependencies : egl_dep) + if cc.has_function ('glTexDirectVIV', dependencies : gles2_dep) + enabled_gl_winsys += 'viv-fb' ++ gl_winsys_deps += [g2d_dep] + glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1) + glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1) + glconf.set10('GST_GL_HAVE_PHYMEM', 1) +@@ -834,6 +836,8 @@ if need_platform_egl != 'no' and need_win_viv_fb != 'no' + ] + gl_cpp_args += ['-DEGL_API_FB'] + endif ++ else ++ g2d_dep = unneeded_dep + endif + endif + +-- +2.28.0 + diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch new file mode 100644 index 0000000..9494f62 --- /dev/null +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch @@ -0,0 +1,233 @@ +From 7a21c86a3facfc7fe8285e764324839b2e55df8a Mon Sep 17 00:00:00 2001 +From: Thibault Saunier <tsaunier@igalia.com> +Date: Mon, 22 Oct 2018 11:44:37 +0200 +Subject: [PATCH] meson: Add variables for gir files + +And flatten list of sources for dependencies + +Upstream-Status: Backport [685731e989dc074a4b0d48b6c8062e2738f09719] + +Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> + +--- + gst-libs/gst/allocators/meson.build | 5 +++-- + gst-libs/gst/app/meson.build | 6 ++++-- + gst-libs/gst/audio/meson.build | 5 +++-- + gst-libs/gst/pbutils/meson.build | 5 +++-- + gst-libs/gst/rtp/meson.build | 6 ++++-- + gst-libs/gst/rtsp/meson.build | 5 +++-- + gst-libs/gst/sdp/meson.build | 6 ++++-- + gst-libs/gst/tag/meson.build | 5 +++-- + gst-libs/gst/video/meson.build | 5 +++-- + 9 files changed, 30 insertions(+), 18 deletions(-) + +diff --git a/gst-libs/gst/allocators/meson.build b/gst-libs/gst/allocators/meson.build +index 364baeebf..56f156dc3 100644 +--- a/gst-libs/gst/allocators/meson.build ++++ b/gst-libs/gst/allocators/meson.build +@@ -22,7 +22,7 @@ gstallocators = library('gstallocators-@0@'.format(api_version), + allocators_gen_sources = [] + if build_gir + gst_gir_extra_args = gir_init_section + [ '--c-include=gst/allocators/allocators.h' ] +- allocators_gen_sources += [gnome.generate_gir(gstallocators, ++ allocators_gir = gnome.generate_gir(gstallocators, + sources : gst_allocators_sources + gst_allocators_headers, + namespace : 'GstAllocators', + nsversion : api_version, +@@ -33,7 +33,8 @@ if build_gir + install : true, + extra_args : gst_gir_extra_args, + dependencies : [gst_dep] +- )] ++ ) ++ allocators_gen_sources += allocators_gir + endif + + allocators_dep = declare_dependency(link_with: gstallocators, +diff --git a/gst-libs/gst/app/meson.build b/gst-libs/gst/app/meson.build +index 81dd0f42c..7a90f5e10 100644 +--- a/gst-libs/gst/app/meson.build ++++ b/gst-libs/gst/app/meson.build +@@ -32,7 +32,7 @@ gstapp = library('gstapp-@0@'.format(api_version), + + if build_gir + gst_gir_extra_args = gir_init_section + [ '--c-include=gst/app/app.h' ] +- app_gen_sources += [gnome.generate_gir(gstapp, ++ app_gir = gnome.generate_gir(gstapp, + sources : app_sources + app_headers + [gstapp_c] + [gstapp_h], + namespace : 'GstApp', + nsversion : api_version, +@@ -43,7 +43,9 @@ if build_gir + install : true, + extra_args : gst_gir_extra_args, + dependencies : [gst_dep, gst_base_dep] +- )] ++ ) ++ ++ app_gen_sources += app_gir + endif + + app_dep = declare_dependency(link_with: gstapp, +diff --git a/gst-libs/gst/audio/meson.build b/gst-libs/gst/audio/meson.build +index 0e4efab2e..2a449d4bf 100644 +--- a/gst-libs/gst/audio/meson.build ++++ b/gst-libs/gst/audio/meson.build +@@ -153,7 +153,7 @@ gstaudio = library('gstaudio-@0@'.format(api_version), + + if build_gir + gst_gir_extra_args = gir_init_section + [ '--c-include=gst/audio/audio.h' ] +- audio_gen_sources += [gnome.generate_gir(gstaudio, ++ audio_gir = gnome.generate_gir(gstaudio, + sources : audio_src + audio_headers + [gstaudio_c] + [gstaudio_h], + namespace : 'GstAudio', + nsversion : api_version, +@@ -164,7 +164,8 @@ if build_gir + install : true, + extra_args : gst_gir_extra_args, + dependencies : gstaudio_deps +- )] ++ ) ++ audio_gen_sources += [audio_gir] + endif + + audio_dep = declare_dependency(link_with : gstaudio, +diff --git a/gst-libs/gst/pbutils/meson.build b/gst-libs/gst/pbutils/meson.build +index 2faf62622..0e96722fd 100644 +--- a/gst-libs/gst/pbutils/meson.build ++++ b/gst-libs/gst/pbutils/meson.build +@@ -63,7 +63,7 @@ pbutils = library('gstpbutils-@0@'.format(api_version), + pbutils_gen_sources = [gstpbutils_h, gst_pbutils_version_h] + if build_gir + gst_gir_extra_args = gir_init_section + [ '--c-include=gst/pbutils/pbutils.h' ] +- pbutils_gen_sources += [gnome.generate_gir(pbutils, ++ pbutils_gir = gnome.generate_gir(pbutils, + sources : pbutils_sources + pbutils_headers + [gstpbutils_h, gst_pbutils_version_h], + namespace : 'GstPbutils', + nsversion : api_version, +@@ -74,7 +74,8 @@ if build_gir + install : true, + extra_args : gst_gir_extra_args, + dependencies : gstpbutils_deps +- )] ++ ) ++ pbutils_gen_sources += [pbutils_gir] + endif + + pbutils_dep = declare_dependency(link_with : pbutils, +diff --git a/gst-libs/gst/rtp/meson.build b/gst-libs/gst/rtp/meson.build +index f47ec6592..7ea6658d5 100644 +--- a/gst-libs/gst/rtp/meson.build ++++ b/gst-libs/gst/rtp/meson.build +@@ -49,7 +49,7 @@ gst_rtp = library('gstrtp-@0@'.format(api_version), + rtp_gen_sources = [gstrtp_enum_h] + if build_gir + gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtp/rtp.h' ] +- rtp_gen_sources += [gnome.generate_gir(gst_rtp, ++ rtp_gir = gnome.generate_gir(gst_rtp, + sources : rtp_sources + rtp_headers + [gstrtp_enum_c] + [gstrtp_enum_h], + namespace : 'GstRtp', + nsversion : api_version, +@@ -60,7 +60,9 @@ if build_gir + install : true, + extra_args : gst_gir_extra_args, + dependencies : gstrtp_deps +- )] ++ ) ++ ++ rtp_gen_sources += [rtp_gir] + endif + + +diff --git a/gst-libs/gst/rtsp/meson.build b/gst-libs/gst/rtsp/meson.build +index 27e309d5a..3632adceb 100644 +--- a/gst-libs/gst/rtsp/meson.build ++++ b/gst-libs/gst/rtsp/meson.build +@@ -54,7 +54,7 @@ gst_rtsp = library('gstrtsp-@0@'.format(api_version), + rtsp_gen_sources = [gstrtsp_h] + if build_gir + gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtsp/rtsp.h' ] +- rtsp_gen_sources += [gnome.generate_gir(gst_rtsp, ++ rtsp_gir = gnome.generate_gir(gst_rtsp, + sources : rtsp_sources + rtsp_headers + [gstrtsp_c] + [gstrtsp_h], + namespace : 'GstRtsp', + nsversion : api_version, +@@ -65,7 +65,8 @@ if build_gir + install : true, + extra_args : gst_gir_extra_args, + dependencies : gstrtsp_deps + [sdp_dep] +- )] ++ ) ++ rtsp_gen_sources += [rtsp_gir] + endif + + rtsp_dep = declare_dependency(link_with : gst_rtsp, +diff --git a/gst-libs/gst/sdp/meson.build b/gst-libs/gst/sdp/meson.build +index 62c18b732..24cdb5293 100644 +--- a/gst-libs/gst/sdp/meson.build ++++ b/gst-libs/gst/sdp/meson.build +@@ -23,7 +23,7 @@ gstsdp = library('gstsdp-@0@'.format(api_version), + sdp_gen_sources = [] + if build_gir + gst_gir_extra_args = gir_init_section + [ '--c-include=gst/sdp/sdp.h' ] +- sdp_gen_sources += [gnome.generate_gir(gstsdp, ++ sdp_gir = gnome.generate_gir(gstsdp, + sources : gst_sdp_sources + gst_sdp_headers, + namespace : 'GstSdp', + nsversion : api_version, +@@ -34,7 +34,9 @@ if build_gir + install : true, + extra_args : gst_gir_extra_args, + dependencies : rtsp_deps +- )] ++ ) ++ ++ sdp_gen_sources += [sdp_gir] + endif + + sdp_dep = declare_dependency(link_with: gstsdp, +diff --git a/gst-libs/gst/tag/meson.build b/gst-libs/gst/tag/meson.build +index 27e66fd63..5ec37392a 100644 +--- a/gst-libs/gst/tag/meson.build ++++ b/gst-libs/gst/tag/meson.build +@@ -93,7 +93,7 @@ gsttag = library('gsttag-@0@'.format(api_version), + + if build_gir + gst_gir_extra_args = gir_init_section + [ '--c-include=gst/tag/tag.h' ] +- tag_gen_sources += [gnome.generate_gir(gsttag, ++ tag_gir = gnome.generate_gir(gsttag, + sources : tag_sources + tag_headers + [gsttag_h] + [gsttag_c], + namespace : 'GstTag', + nsversion : api_version, +@@ -104,7 +104,8 @@ if build_gir + install : true, + extra_args : gst_gir_extra_args, + dependencies : tag_deps +- )] ++ ) ++ tag_gen_sources += [tag_gir] + endif + + tag_dep = declare_dependency(link_with: gsttag, +diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build +index b4dfcdf65..036c3a6a7 100644 +--- a/gst-libs/gst/video/meson.build ++++ b/gst-libs/gst/video/meson.build +@@ -135,7 +135,7 @@ gstvideo = library('gstvideo-@0@'.format(api_version), + + if build_gir + gst_gir_extra_args = gir_init_section + [ '--c-include=gst/video/video.h' ] +- video_gen_sources += [gnome.generate_gir(gstvideo, ++ video_gir = gnome.generate_gir(gstvideo, + sources : video_sources + video_headers + [gstvideo_c] + [gstvideo_h], + namespace : 'GstVideo', + nsversion : api_version, +@@ -146,7 +146,8 @@ if build_gir + install : true, + extra_args : gst_gir_extra_args, + dependencies : gstvideo_deps +- )] ++ ) ++ video_gen_sources += [video_gir] + endif + + video_dep = declare_dependency(link_with : gstvideo, diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch new file mode 100644 index 0000000..731ba87 --- /dev/null +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch @@ -0,0 +1,30 @@ +From 616cf194dfd26818ed7b776321582b8e0ff9b3f1 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani <crg7475@mailbox.org> +Date: Tue, 21 May 2019 14:01:11 +0200 +Subject: [PATCH] viv-fb: Make sure config.h is included + +This prevents build errors due to missing GST_API_* symbols + +Upstream-Status: Pending + +Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> + +--- + gst-libs/gst/gl/gl-prelude.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gst-libs/gst/gl/gl-prelude.h b/gst-libs/gst/gl/gl-prelude.h +index 05e1f6229..96ce5e685 100644 +--- a/gst-libs/gst/gl/gl-prelude.h ++++ b/gst-libs/gst/gl/gl-prelude.h +@@ -22,6 +22,10 @@ + #ifndef __GST_GL_PRELUDE_H__ + #define __GST_GL_PRELUDE_H__ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #include <gst/gst.h> + + #ifdef BUILDING_GST_GL diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0009-glimagesink-Downrank-to-marginal.patch b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0009-glimagesink-Downrank-to-marginal.patch new file mode 100644 index 0000000..fc67a48 --- /dev/null +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0009-glimagesink-Downrank-to-marginal.patch @@ -0,0 +1,30 @@ +From f18f1206ec44f4154e60546ecb82823f7a6569d7 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Thu, 24 Sep 2015 19:47:32 +0300 +Subject: [PATCH] glimagesink: Downrank to marginal + +On desktop, where there is good OpenGL, xvimagesink will come up first, +on other platforms, OpenGL can't be trusted because it's either software (like +in a VM) or broken (like on embedded)., so let ximagesink come above. + +Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=751684] + +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +--- + ext/gl/gstopengl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ext/gl/gstopengl.c b/ext/gl/gstopengl.c +index 302e8452c..463be9cd8 100644 +--- a/ext/gl/gstopengl.c ++++ b/ext/gl/gstopengl.c +@@ -127,7 +127,7 @@ plugin_init (GstPlugin * plugin) + #endif + + if (!gst_element_register (plugin, "glimagesink", +- GST_RANK_SECONDARY, gst_gl_image_sink_bin_get_type ())) { ++ GST_RANK_MARGINAL, gst_gl_image_sink_bin_get_type ())) { + return FALSE; + } + diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.imx.bb b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.imx.bb new file mode 100644 index 0000000..db0b740 --- /dev/null +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.imx.bb @@ -0,0 +1,102 @@ +require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc + +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607" + +GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https" +SRCBRANCH = "MM_04.05.06_2008_L5.4.47" +SRCREV = "3c4aa2a58576d68f6e684efa58609665679c9969" +SRC_URI = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} \ + file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \ + file://0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch \ + file://0002-meson-Add-variables-for-gir-files.patch \ + file://0005-viv-fb-Make-sure-config.h-is-included.patch \ + file://0009-glimagesink-Downrank-to-marginal.patch \ + file://0001-gst-libs-gst-gl-wayland-fix-meson-build.patch \ + file://0001-meson-viv-fb-code-must-link-against-libg2d.patch \ + " + +S = "${WORKDIR}/git" + +DEPENDS += "iso-codes util-linux zlib" +DEPENDS_append_imxgpu2d = " virtual/libg2d" + +inherit use-imx-headers gobject-introspection gtk-doc + +DEFAULT_PREFERENCE = "-1" + +PACKAGES_DYNAMIC =+ "^libgst.*" + +# opengl packageconfig factored out to make it easy for distros +# and BSP layers to choose OpenGL APIs/platforms/window systems +PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${PACKAGECONFIG_GL} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \ + ogg pango png theora vorbis \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ +" + +OPENGL_APIS = 'opengl gles2' +OPENGL_PLATFORMS = 'egl' +OPENGL_WINSYS = 'x11 wayland gbm viv-fb' + +X11DEPENDS = "virtual/libx11 libsm libxrender libxv" +X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled" +X11DISABLEOPTS = "-Dx11=disabled -Dxvideo=disabled -Dxshm=disabled" + +PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" +PACKAGECONFIG[cdparanoia] = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia" +PACKAGECONFIG[jpeg] = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg" +PACKAGECONFIG[ogg] = "-Dogg=enabled,-Dogg=disabled,libogg" +PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus" +PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango" +PACKAGECONFIG[png] = "-Dgl-png=enabled,-Dgl-png=disabled,libpng" +PACKAGECONFIG[theora] = "-Dtheora=enabled,-Dtheora=disabled,libtheora" +PACKAGECONFIG[tremor] = "-Dtremor=enabled,-Dtremor=disabled,tremor" +PACKAGECONFIG[visual] = "-Dlibvisual=enabled,-Dlibvisual=disabled,libvisual" +PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis" +PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" + +# OpenGL API packageconfigs +PACKAGECONFIG[opengl] = ",,virtual/libgl libglu" +PACKAGECONFIG[gles2] = ",,virtual/libgles2" + +# OpenGL platform packageconfigs +PACKAGECONFIG[egl] = ",,virtual/egl" + +# OpenGL window systems (except for X11) +PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm" +PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm" +PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d" + +EXTRA_OEMESON += " \ + -Dgl-graphene=disabled \ + ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \ + ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \ + ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \ + -Dextra_imx_incdir=${STAGING_INCDIR_IMX} \ +" + +GTKDOC_MESON_OPTION = "gtk_doc" +GTKDOC_MESON_ENABLE_FLAG = "enabled" +GTKDOC_MESON_DISABLE_FLAG = "disabled" + +FILES_${PN} += "${libdir}/gstreamer-1.0/include" +FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" + +def get_opengl_cmdline_list(switch_name, options, d): + selected_options = [] + if bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d): + for option in options.split(): + if bb.utils.contains('PACKAGECONFIG', option, True, False, d): + selected_options += [option] + if selected_options: + return '-D' + switch_name + '=' + ','.join(selected_options) + else: + return '' |