Commit graph

1744 commits

Author SHA1 Message Date
Norbert Wesp
574607702b Add GBM_CFLAGS and define EGL_PLATFORM_GBM_MESA
Building an image with yocto for an 'am335x' processor will fail,
because 'gbm.h' can not be found and 'EGL_PLATFORM_GBM_MESA' is not defined.

So simply adding define of 'EGL_PLATFORM_GBM_MESA' in 'gstgldisplay_egl.c'
and adding 'GBM_CFLAGS' in 'gst-gl.m4' to get rid of this errors and complete
a full build process.

ERRORs were:
-----------
gst-plugins-base-1.14.1/gst-libs/gst/gl/gbm/gstglwindow_gbm_egl.h:24:10:
fatal error: gbm.h: No such file or directory
  #include <gbm.h>
           ^~~~~~~

gst-plugins-base-1.14.1/gst-libs/gst/gl/egl/gstgldisplay_egl.c:157:39:
error: 'EGL_PLATFORM_GBM_MESA' undeclared (first use in this function);
did you mean 'EGL_PLATFORM_WAYLAND'?
  ret = _gst_eglGetPlatformDisplay (EGL_PLATFORM_GBM_MESA, (gpointer) display,
                                    ^~~~~~~~~~~~~~~~~~~~~

https://bugzilla.gnome.org/show_bug.cgi?id=796885
2018-08-02 12:17:56 +10:00
freyr
810d560a2f gl/gbm: allow headless mode
Don't require an output for the GBM backend.

https://bugzilla.gnome.org/show_bug.cgi?id=794716
2018-08-01 14:50:10 +10:00
Nicolas Dufresne
63cf6b4203 glupload: Only offer DMABuf caps feature if using EGL
This was miss-leading VAAPI which was not forcing linear back buffers,
would still export DMABuf. That caused bad rendering as the buffers are
tiled and most likely compressed.

https://bugzilla.gnome.org/show_bug.cgi?id=796822
2018-07-18 09:04:35 -04:00
Iñigo Huguet
48a0178857 gl/build: fixed failed compilation due to missing EGLuint64KHR typedef
[Matthew Waters]: add meson differences

https://bugzilla.gnome.org/show_bug.cgi?id=796820
2018-07-18 14:02:01 +10:00
Nicolas Dufresne
ae5120a489 Revert "glupload: Only offer DMABuf caps feature if using EGL"
This reverts commit bc9afe7243.
2018-07-17 11:51:49 -04:00
Nicolas Dufresne
bc9afe7243 glupload: Only offer DMABuf caps feature if using EGL
This was miss-leading VAAPI which was not forcing linear back buffers,
would still export DMABuf. That caused bad rendering as the buffers are
tiled and most likely compressed.
2018-07-17 11:43:40 -04:00
Matthew Waters
16cba63d43 gl/utils: fixup matrix math again for column major
e4bf9ed8f0 was not quite right and changed
the wrong thing. Intead we needed to change the multiplication order
and should have kept the previous to/from matrices as is done in this
patch.
2018-07-10 20:13:22 +10:00
memeka
1c8bf44dea gl: check for EGL_KHR_platform_gbm for non-MESA gbm implementations
https://bugzilla.gnome.org/show_bug.cgi?id=796694
2018-06-28 23:53:56 +10:00
Tim-Philipp Müller
71734b33aa gl: fix build on iOS 2018-06-24 13:35:20 +02:00
Tim-Philipp Müller
4093e4c237 gl: fix build on Windows 2018-06-24 13:19:21 +02:00
Tim-Philipp Müller
d736bfc855 gl: Update for g_type_class_add_private() deprecation in recent GLib
https://gitlab.gnome.org/GNOME/glib/merge_requests/7
2018-06-23 22:58:44 +02:00
Matthew Waters
76f99f803b glcontextegl: only dump configs once 2018-06-22 22:43:08 +10:00
Matthew Waters
d6ae44b1d0 glcontextegl: Fix android build without ES3 tokens 2018-06-22 22:42:45 +10:00
Matthew Waters
c850faff95 glcontextegl: dump the list of EGLConfig's available 2018-06-21 17:46:57 +10:00
Matthew Waters
cfa5d64ff1 gl: use dependency fallbacks to get at a possible gl-headers subproject
We would make the subproject conditional on the wrap-mode=nodownload
however get_option('wrap-mode') or similar is not available from
meson.build files as the wrap-mode is meant to be used automatically.

Instead use the dependency fallback mechanism to get at the subproject
where possible i.e. when downloading is allows and only add the compat
includes when we have a valid internal dependency from the gl-headers
subproject.

https://bugzilla.gnome.org/show_bug.cgi?id=796534
2018-06-19 12:21:48 +10:00
Tim-Philipp Müller
5ad841e5ff Revert "gl/meson: add support for using bundled headers in a subproject"
This reverts commit 82c43ff9a3.

Reverting for the time being, since it trips up build bots
that don't have network connectivity.

We ideally shouldn't have a subproject that's used unconditionally.
2018-06-07 17:42:35 +01:00
Matthew Waters
82c43ff9a3 gl/meson: add support for using bundled headers in a subproject
This is most useful when building on windows which does not ship the
necessary OpenGL headers.
2018-06-07 14:15:30 +10:00
Matthew Waters
1ceccb5b58 gl/meson: force the gl dependency to use pkg-config
Meson has an internal override for dependency('gl') which we do not want
to use as it assumes too many things.  Force meson to only search for
gl.pc.
2018-06-06 23:36:08 +10:00
Matthew Waters
8596f5a5b4 gl/meson: don't define GST_EXPORTS
The intended use (msvc) doesn't currently like it and will fail to
resolve symbols at runtime.
2018-06-06 23:36:08 +10:00
Matthew Waters
e4bf9ed8f0 gl/utils: Fix NDC conversion matrices for column-majorness
The matrices were converting the wrong values with non-diagonal-only matrices.
e.g. a typical yflip matrix in [-1,1]^3 such as
 1  0  0  0
 0 -1  0  0
 0  0  1  0
 0  0  0  1

Would have actually required a matrix like this in [0,1]^3
 1  0  0  0
 0 -1  0  0
 0  0  1  0
 0 -2  0  1

Which is
1. not consistent with our multiplication convention and would require
   transposing matrices or changing our multiplication order (from what is
   generally used on opengl matrix guides/tutorials).
2. Produces incorrect values when input with actual vertices accounting for
   the difference in multiplication order.  e.g. some vertices multiplied by
   the yflip matrix using vertex * yflip(== transpose(yflip) * vertex):

     vertex:       -> result:           expected:
     vec4(1,0,1,1) -> vec4(1,-2,1,1)    vec4(1,1,1,1)
     vec4(1,1,1,1) -> vec4(1,-3,1,1)    vec4(1,0,1,1)

With the updated values, we now get the expected values.

Includes a test for this behaviour and the example above
2018-06-06 23:36:08 +10:00
Antoine Jacoutot
64585f88cd libs: g-ir-scanner: do not hardcode libtool path
https://bugzilla.gnome.org/show_bug.cgi?id=726571
2018-05-22 07:01:42 +02:00
Christoph Reiter
103f884d99 meson: gl: remove non-headers from gl_prototype_headers
This made the meson build install those files, while they aren't
installed with the autotools build.

https://bugzilla.gnome.org/show_bug.cgi?id=796274
2018-05-20 14:41:41 +01:00
Matthew Waters
e367d3e812 glcolorconvert: fix negotiation for a non list video format in caps
For a single format in the caps, we were returning some weird answers,
like only RGB formats for a RGB input when we can also support YUV from
RGB.

Fixup of 3cfff727b1 where I thought my
previous (~6month) self had got this right.  Don't trust your previous
self people!
2018-05-06 18:54:20 +10:00
Nirbheek Chauhan
1e1a5d658e meson: Update option names to omit disable_ and with- prefixes
Also yield common options to the outer project (gst-build in our case)
so that they don't have to be set manually and use array types for some
options.
2018-05-05 20:30:52 +05:30
Matthew Waters
ef71c5a29d gl: allow for high resolution EAGLLayer's 2018-05-05 21:36:25 +10:00
Matthew Waters
3cfff727b1 glcolorconvert: add support for ARGB64 conversion 2018-05-05 21:24:25 +10:00
Matthew Waters
c4367b63d8 gl/format: add a function to retrieve if a format is supported 2018-05-05 21:24:25 +10:00
Matthew Waters
c150928756 glbasefilter: expose finding the local GL context
And use it to attempt to find the GL context sooner for upload and color
conversion caps transformations.
2018-05-05 21:24:25 +10:00
Matthew Waters
396e04cf69 gl/memory: store the internal format as the texture format
Instead of having special cases at each GL texture creation, upload,
readback or copy for all non-8-bits-per-components.
Simply store the more specific format and retrieve the generic
component/type tuple from that.

Introduce a helper function for retrieving the generic GL format (RGBA,
RGB, RG, R, L, A) and type (BYTE, SHORT, SHORT_5_6_5) from a sized
GL format enum (RGBA8, RGB565, RG8, etc).
2018-05-05 21:24:25 +10:00
Haihua Hu
e7700f20fd viv-fb: export viv-fb display api
qmlgl plugin will use this api

https://bugzilla.gnome.org/show_bug.cgi?id=795562
2018-04-26 09:29:41 +03:00
Haihua Hu
3c8368129a viv-fb: install gstgldisplay_viv_fb.h into build result
gstgldisplay_viv_fb.h is need by qmlgl plugin in gst-good package

https://bugzilla.gnome.org/show_bug.cgi?id=795499
2018-04-26 09:29:21 +03:00
Sebastian Dröge
e99affac71 gl/cocoa: Let ARC clean up our dispatch queue if ARC is used, and otherwise do it manually
Also don't use __bridge casts if ARC is not used, as is the case on 32
bit systems.
2018-04-25 01:33:43 +03:00
Sebastian Dröge
b747ae9657 gl/cocoa: Use NSRect instead of CGRect
On 64 bit systems they're typedefs of each other but on 32 bit systems
not, and we pass the rect to an API that expects a NSRect
2018-04-25 01:09:40 +03:00
Mark Nauwelaerts
710990d5cf gl: fix some GIR annotations
Mostly related to out and array parameters
2018-04-23 19:33:19 +02:00
Tim-Philipp Müller
762733c3d8 meson: gl: fix 'invalid keyword argument' meson warnings
Required is not a valid kwarg for cc.has_header()
2018-04-20 11:44:55 +01:00
Omar Akkila
2f3ff84f40 egl: fix build when using RPi EGL
https://bugzilla.gnome.org/show_bug.cgi?id=795336
2018-04-18 14:37:16 -04:00
Víctor Manuel Jáquez Leal
57ede858f0 gl: Define default value for GST_GL_HAVE_WINDOW_GBM
Thus, silent compiler's warning:
"GST_GL_HAVE_WINDOW_GBM" is not defined, evaluates to 0 [-Wundef]
2018-04-16 11:15:52 +02:00
Edward Hervey
22c9e5f7c1 libs: Documentation cleanup
* Fix wrong naming, wrong types and typos
* Add missing sections
* Add missing documentation for entries
* Explicitely mark private structure entries
* Remove items that never existed
2018-04-02 08:53:28 +02:00
Tim-Philipp Müller
df66d00876 gl: pick up GstVideo-1.0.gir from local build dir
https://bugzilla.gnome.org/show_bug.cgi?id=794708
2018-03-27 11:18:35 +01:00
Carlos Rafael Giani
9324ada729 gl/gbm: Initialize window handle (= gbm surface) like other window systems
https://bugzilla.gnome.org/show_bug.cgi?id=793997
2018-03-22 10:15:10 +02:00
Carlos Rafael Giani
9ce1e4e712 viv-fb: Include gstglfuncs.h to fix cross compilation errors
https://bugzilla.gnome.org/show_bug.cgi?id=794589
2018-03-22 09:51:58 +02:00
Tim-Philipp Müller
c5b5ef16d3 gl: GST_EXPORT -> GST_GL_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 12:10:29 +00:00
Jan Schmidt
c920d994ab glcolorconvert: Fix a typo in a debug message 2018-03-01 02:14:07 +11:00
Jan Schmidt
f15f60a062 glfilter: Support non-2D texture targets
Allow for sub-classes to change pad templates to
support other texture targets, and bind input textures
accordingly.

When setting the caps, also store the texture target.

By default, glfilter only reports 2D texture targets
in the default caps, but sub-classes can change that
and it would be nice if they could easily find out
which texture targets were negotiated.

This adds 2 fields to the public struct, but since
it's unreleased -base API, it's not an ABI break.
2018-03-01 02:14:07 +11:00
Nicolas Dufresne
d796188cf1 meson: Don't install GL GBM headers 2018-02-27 13:16:01 -05:00
Nicolas Dufresne
fbc2375d57 gl: Move DRM_CFLAGS into gst-gl.m4 2018-02-27 13:12:59 -05:00
Nicolas Dufresne
b8bc2b87d0 gl: Add missing gbm directory to dist dir
This fixes make distcheck
2018-02-26 07:46:26 -05:00
Carlos Rafael Giani
ee59537657 gl: Add DRM cflags
This prevents cross compilation errors like:

usr/include/xf86drm.h:40:10: fatal error: drm.h: No such file or directory

These are caused because gstgldisplay_gbm.h includes xf86drm.h .

https://bugzilla.gnome.org/show_bug.cgi?id=793837
2018-02-26 07:27:20 -05:00
Nicolas Dufresne
1a97338dc7 gl: Add meson support for GBM backend
https://bugzilla.gnome.org/show_bug.cgi?id=782923
2018-02-23 21:09:45 -05:00
Carlos Rafael Giani
4df219f336 gl: Add Mesa3D GBM backend
This makes it possible to use the GStreamer OpenGL elements without a
windowing system if a libdrm- and Mesa3D-supported GPU is present

https://bugzilla.gnome.org/show_bug.cgi?id=782923
2018-02-23 21:09:45 -05:00