diff options
Diffstat (limited to 'recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch')
| -rw-r--r-- | recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch new file mode 100644 index 000000000..da1525318 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch | |||
| @@ -0,0 +1,220 @@ | |||
| 1 | From def285f623bc30b9d1acede00393188e693cc741 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | ||
| 3 | Date: Sat, 22 Feb 2020 13:22:57 +0000 | ||
| 4 | Subject: [PATCH] gstreamer-plugins-base: fix meson build in nxp fork | ||
| 5 | |||
| 6 | - Add missing IMX header file into istall target; | ||
| 7 | - Allocator's meta data files are missing in meson.build, bring them back; | ||
| 8 | - Add ION NXP-specific allocator to meson.build; | ||
| 9 | - Introduce additional configuration option to pass extra include paths, | ||
| 10 | which are required to build ION allocator; | ||
| 11 | - Some video sources are missing, bring them also into the build; | ||
| 12 | |||
| 13 | Upstream-Status: Pending | ||
| 14 | |||
| 15 | Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | ||
| 16 | --- | ||
| 17 | gst-libs/gst/allocators/meson.build | 30 +++++++++++++++++++++++++++-- | ||
| 18 | gst-libs/gst/gl/gstglconfig.h.meson | 2 ++ | ||
| 19 | gst-libs/gst/gl/meson.build | 20 +++++++++++++++++++ | ||
| 20 | gst-libs/gst/meson.build | 6 ++++++ | ||
| 21 | gst-libs/gst/video/meson.build | 11 +++++++++++ | ||
| 22 | meson.build | 3 +++ | ||
| 23 | meson_options.txt | 4 ++++ | ||
| 24 | 7 files changed, 74 insertions(+), 2 deletions(-) | ||
| 25 | |||
| 26 | diff --git a/gst-libs/gst/allocators/meson.build b/gst-libs/gst/allocators/meson.build | ||
| 27 | index 364baeebf..30b1495c9 100644 | ||
| 28 | --- a/gst-libs/gst/allocators/meson.build | ||
| 29 | +++ b/gst-libs/gst/allocators/meson.build | ||
| 30 | @@ -5,18 +5,44 @@ gst_allocators_headers = [ | ||
| 31 | 'gstphysmemory.h', | ||
| 32 | 'gstdmabuf.h', | ||
| 33 | ] | ||
| 34 | + | ||
| 35 | +imx_gst_allocators_headers = [ | ||
| 36 | + 'gstphymemmeta.h', | ||
| 37 | + 'gstdmabufmeta.h', | ||
| 38 | + 'gstallocatorphymem.h', | ||
| 39 | +] | ||
| 40 | + | ||
| 41 | +if cc.has_header('linux/ion.h', include_directories : imx_includes) | ||
| 42 | + imx_gst_allocators_headers += [ | ||
| 43 | + 'gstionmemory.h', | ||
| 44 | + ] | ||
| 45 | +endif | ||
| 46 | + | ||
| 47 | +gst_allocators_headers += imx_gst_allocators_headers | ||
| 48 | + | ||
| 49 | install_headers(gst_allocators_headers, subdir : 'gstreamer-1.0/gst/allocators/') | ||
| 50 | |||
| 51 | gst_allocators_sources = [ 'gstdmabuf.c', 'gstfdmemory.c', 'gstphysmemory.c'] | ||
| 52 | + | ||
| 53 | +imx_gst_allocators_sources = ['gstdmabufmeta.c', 'gstphymemmeta.c', 'gstallocatorphymem.c'] | ||
| 54 | + | ||
| 55 | +if cc.has_header('linux/ion.h', include_directories : imx_includes) | ||
| 56 | + imx_gst_allocators_sources += [ | ||
| 57 | + 'gstionmemory.c', | ||
| 58 | + ] | ||
| 59 | +endif | ||
| 60 | + | ||
| 61 | +gst_allocators_sources += imx_gst_allocators_sources | ||
| 62 | + | ||
| 63 | gstallocators = library('gstallocators-@0@'.format(api_version), | ||
| 64 | gst_allocators_sources, | ||
| 65 | c_args : gst_plugins_base_args + ['-DBUILDING_GST_ALLOCATORS'], | ||
| 66 | - include_directories: [configinc, libsinc], | ||
| 67 | + include_directories: [configinc, libsinc, imx_includes], | ||
| 68 | version : libversion, | ||
| 69 | soversion : soversion, | ||
| 70 | darwin_versions : osxversion, | ||
| 71 | install : true, | ||
| 72 | - dependencies : [gst_dep], | ||
| 73 | + dependencies : [video_dep, gst_dep], | ||
| 74 | ) | ||
| 75 | |||
| 76 | allocators_gen_sources = [] | ||
| 77 | diff --git a/gst-libs/gst/gl/gstglconfig.h.meson b/gst-libs/gst/gl/gstglconfig.h.meson | ||
| 78 | index 11795c16c..66cd54a7e 100644 | ||
| 79 | --- a/gst-libs/gst/gl/gstglconfig.h.meson | ||
| 80 | +++ b/gst-libs/gst/gl/gstglconfig.h.meson | ||
| 81 | @@ -32,8 +32,10 @@ G_BEGIN_DECLS | ||
| 82 | #mesondefine GST_GL_HAVE_PLATFORM_CGL | ||
| 83 | #mesondefine GST_GL_HAVE_PLATFORM_EAGL | ||
| 84 | |||
| 85 | +#mesondefine GST_GL_HAVE_IONDMA | ||
| 86 | #mesondefine GST_GL_HAVE_DMABUF | ||
| 87 | #mesondefine GST_GL_HAVE_VIV_DIRECTVIV | ||
| 88 | +#mesondefine GST_GL_HAVE_PHYMEM | ||
| 89 | |||
| 90 | #mesondefine GST_GL_HAVE_GLEGLIMAGEOES | ||
| 91 | #mesondefine GST_GL_HAVE_GLCHAR | ||
| 92 | diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build | ||
| 93 | index 0e0ba1b7d..6f6c6866d 100644 | ||
| 94 | --- a/gst-libs/gst/gl/meson.build | ||
| 95 | +++ b/gst-libs/gst/gl/meson.build | ||
| 96 | @@ -123,8 +123,10 @@ glconf_options = [ | ||
| 97 | 'GST_GL_HAVE_PLATFORM_CGL', | ||
| 98 | 'GST_GL_HAVE_PLATFORM_EAGL', | ||
| 99 | |||
| 100 | + 'GST_GL_HAVE_IONDMA', | ||
| 101 | 'GST_GL_HAVE_DMABUF', | ||
| 102 | 'GST_GL_HAVE_VIV_DIRECTVIV', | ||
| 103 | + 'GST_GL_HAVE_PHYMEM', | ||
| 104 | |||
| 105 | 'GST_GL_HAVE_GLEGLIMAGEOES', | ||
| 106 | 'GST_GL_HAVE_GLCHAR', | ||
| 107 | @@ -146,6 +148,18 @@ if unneeded_dep.found() | ||
| 108 | error ('Found unfindable dependency') | ||
| 109 | endif | ||
| 110 | |||
| 111 | +if cc.has_header('linux/ion.h', include_directories : imx_includes) | ||
| 112 | + glconf.set10('GST_GL_HAVE_IONDMA', 1) | ||
| 113 | + gl_sources += [ | ||
| 114 | + 'gstglmemorydma.c', | ||
| 115 | + ] | ||
| 116 | + gl_headers += [ | ||
| 117 | + 'gstglmemorydma.h', | ||
| 118 | + ] | ||
| 119 | +else | ||
| 120 | + error('i.MX platform requires ION support to be enabled!') | ||
| 121 | +endif | ||
| 122 | + | ||
| 123 | # OpenGL/GLES2 libraries | ||
| 124 | gl_lib_deps = [] | ||
| 125 | # GL platform - EGL, GLX, CGL, WGL, etc | ||
| 126 | @@ -501,6 +515,7 @@ if need_platform_egl != 'no' | ||
| 127 | glconf.set10('GST_GL_HAVE_DMABUF', 1) | ||
| 128 | endif | ||
| 129 | |||
| 130 | + | ||
| 131 | egl_includes = ''' | ||
| 132 | #include <EGL/egl.h> | ||
| 133 | #include <EGL/eglext.h> | ||
| 134 | @@ -808,9 +823,14 @@ if need_platform_egl != 'no' and need_win_viv_fb != 'no' | ||
| 135 | enabled_gl_winsys += 'viv-fb' | ||
| 136 | glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1) | ||
| 137 | glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1) | ||
| 138 | + glconf.set10('GST_GL_HAVE_PHYMEM', 1) | ||
| 139 | gl_sources += [ | ||
| 140 | 'viv-fb/gstgldisplay_viv_fb.c', | ||
| 141 | 'viv-fb/gstglwindow_viv_fb_egl.c', | ||
| 142 | + 'gstglphymemory.c', | ||
| 143 | + ] | ||
| 144 | + gl_headers += [ | ||
| 145 | + 'gstglphymemory.h', | ||
| 146 | ] | ||
| 147 | gl_cpp_args += ['-DEGL_API_FB'] | ||
| 148 | endif | ||
| 149 | diff --git a/gst-libs/gst/meson.build b/gst-libs/gst/meson.build | ||
| 150 | index cd3b5b043..1935f46e5 100644 | ||
| 151 | --- a/gst-libs/gst/meson.build | ||
| 152 | +++ b/gst-libs/gst/meson.build | ||
| 153 | @@ -11,3 +11,9 @@ subdir('app') | ||
| 154 | subdir('allocators') | ||
| 155 | # FIXME: gl deps are automagic | ||
| 156 | subdir('gl') | ||
| 157 | + | ||
| 158 | +# Install dangling imx header, required by other plugins | ||
| 159 | +gst_imx_header = [ | ||
| 160 | + 'gstimxcommon.h', | ||
| 161 | +] | ||
| 162 | +install_headers(gst_imx_header, subdir : 'gstreamer-1.0/') | ||
| 163 | diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build | ||
| 164 | index b4dfcdf65..d8531f199 100644 | ||
| 165 | --- a/gst-libs/gst/video/meson.build | ||
| 166 | +++ b/gst-libs/gst/video/meson.build | ||
| 167 | @@ -35,6 +35,11 @@ video_sources = [ | ||
| 168 | 'videooverlay.c', | ||
| 169 | ] | ||
| 170 | |||
| 171 | +imx_video_sources = [ | ||
| 172 | + 'gstvideohdr10meta.c', | ||
| 173 | +] | ||
| 174 | +video_sources += imx_video_sources | ||
| 175 | + | ||
| 176 | video_headers = [ | ||
| 177 | 'colorbalance.h', | ||
| 178 | 'colorbalancechannel.h', | ||
| 179 | @@ -70,6 +75,12 @@ video_headers = [ | ||
| 180 | 'video-overlay-composition.h', | ||
| 181 | 'video-multiview.h', | ||
| 182 | ] | ||
| 183 | + | ||
| 184 | +imx_video_headers = [ | ||
| 185 | + 'gstvideohdr10meta.h', | ||
| 186 | +] | ||
| 187 | +video_headers += imx_video_headers | ||
| 188 | + | ||
| 189 | install_headers(video_headers, subdir : 'gstreamer-1.0/gst/video/') | ||
| 190 | |||
| 191 | video_mkenum_headers = [ | ||
| 192 | diff --git a/meson.build b/meson.build | ||
| 193 | index 2fca28205..7781934cd 100644 | ||
| 194 | --- a/meson.build | ||
| 195 | +++ b/meson.build | ||
| 196 | @@ -103,6 +103,9 @@ if glib_checks.disabled() or (glib_checks.auto() and not gst_version_is_dev) | ||
| 197 | add_project_arguments('-DG_DISABLE_CHECKS', language: 'c') | ||
| 198 | endif | ||
| 199 | |||
| 200 | +# Define i.MX-specific include path as variable from options | ||
| 201 | +imx_includes = include_directories(get_option('extra_imx_incdir')) | ||
| 202 | + | ||
| 203 | check_headers = [ | ||
| 204 | ['HAVE_DLFCN_H', 'dlfcn.h'], | ||
| 205 | ['HAVE_EMMINTRIN_H', 'emmintrin.h'], | ||
| 206 | diff --git a/meson_options.txt b/meson_options.txt | ||
| 207 | index e7af4dd45..d44401ca6 100644 | ||
| 208 | --- a/meson_options.txt | ||
| 209 | +++ b/meson_options.txt | ||
| 210 | @@ -85,3 +85,7 @@ option('package-name', type : 'string', yield : true, | ||
| 211 | description : 'package name to use in plugins') | ||
| 212 | option('package-origin', type : 'string', value : 'Unknown package origin', yield : true, | ||
| 213 | description : 'package origin URL to use in plugins') | ||
| 214 | + | ||
| 215 | +# NXP specific options | ||
| 216 | +option('extra_imx_incdir', type : 'string', yield : true, description : 'i.MX specific header include path') | ||
| 217 | + | ||
| 218 | -- | ||
| 219 | 2.17.1 | ||
| 220 | |||
