Matthew Waters
7ab4abb3ab
gl: add necessary context_egl.h #includes to the source files
2016-11-23 15:57:05 +11:00
Matthew Waters
75d36b990d
gl/memoryegl: remove access to private header gstglcontext_egl.h
...
It's been removed and thus compiling anything against GstGLMemoryEGL
would error with:
In file included from gstomxvideodec.c:41:0:
usr/include/gstreamer-1.0/gst/gl/egl/gstglmemoryegl.h:32:41: fatal error: gst/gl/egl/gstglcontext_egl.h: No such file or directory
#include <gst/gl/egl/gstglcontext_egl.h>
^
https://bugzilla.gnome.org/show_bug.cgi?id=774886
2016-11-23 13:36:45 +11:00
Matthew Waters
8c2118823b
gl/egl: remove EGLImage functions from egl context
...
By adding the necessary GstEGLImage entry points to create a GstEGLImage
from a GstGLMemory.
https://bugzilla.gnome.org/show_bug.cgi?id=774518
2016-11-17 14:06:21 +11:00
Matthew Waters
f2e9190229
glcontext: add vfunc to retrieve the OpenGL platform version
...
i.e. the version of EGL, GLX, etc implemented.
https://bugzilla.gnome.org/show_bug.cgi?id=774518
2016-11-17 14:06:21 +11:00
Matthew Waters
d42145e8c1
gl/egl: move get_error_string() into gstegl
...
So others can use it without #include-ing a private header
https://bugzilla.gnome.org/show_bug.cgi?id=774518
2016-11-17 14:06:21 +11:00
Matthew Waters
cdaada4300
display/egl: implement getting the EGLDisplay of a specific platform
...
https://bugzilla.gnome.org/show_bug.cgi?id=774518
2016-11-17 14:06:21 +11:00
Víctor Manuel Jáquez Leal
9ca4c8ec35
gl/egl: check the feature in the extensions list
...
https://bugzilla.gnome.org/show_bug.cgi?id=774518
2016-11-16 19:52:54 +01:00
Matthew Waters
86930b6d11
gl: add padding to all exposed winsys/platform-specific structs
2016-11-08 12:46:09 +11:00
Matthew Waters
c6326530cc
gl/egl: don't install the gstglcontext_egl.h header
...
It's not needed to be exposed and there are no users of the API.
2016-11-08 02:44:30 +11:00
Matthew Waters
41a6448918
gl: GST_GL_TYPE -> GST_TYPE_GL
...
Some deprecated symbols are kept for backwards compatibility
2016-11-03 16:16:12 +11:00
Matthew Waters
0dc003bf30
gl/docs: massive update
...
- add Since: markers where necessary.
- document structs
- add documentation headers for each module (short_description,
see_also, etc)
- reduce the number of warnings gtk-doc outputs
- fix spelling mistakes
2016-11-03 16:16:11 +11:00
Matthew Waters
1296741d3d
gl/docs: document new API added in 1.10
...
GstGLRenderbuffer
GstGLFramebuffer
GstGLQuery
GstEGLImage
GstGLMemoryEGL
2016-11-03 12:08:44 +11:00
Matthew Waters
c36ea6f56f
meson: gl: add support for building with dispmanx on the rpi
2016-10-19 17:10:48 +11:00
Matthew Waters
0abeebc4e8
gl/eglimage: Fix passing the destroy function to gst_egl_image_new_wrapped
...
The function pointer and the user data arguments were swapped in both
uses.
https://bugzilla.gnome.org/show_bug.cgi?id=769382
2016-10-18 22:43:03 +11:00
Matthew Waters
0fc3c0f9dc
gl/egl: fix inverted typedef
...
2b6841d
had an inverted typedef defining ginptr and EGLAttrib. Fix that.
2016-08-16 20:34:37 +10:00
Matthew Waters
2b6841da32
gl/build: add configure check for possibly missing EGLAttrib
...
Fixes the build on older android targets.
2016-08-16 16:51:02 +10:00
Song Bing
4e04f28478
gl/egl/dmabuf: Wrong attribute list type for EGL 1.5
...
For EGL 1.5 spec, the attribute list type should be EGLAttrib.
https://bugzilla.gnome.org/show_bug.cgi?id=768602
2016-08-16 15:34:08 +10:00
Matthew Waters
989200820d
glmemory: add the texture type to allocate to parameters
...
Rather than assuming something. e.g. zerocopy on iOS with GLES3 requires
the use of Luminance/Luminance Alpha formats and does not work with
Red/RG textures.
2016-06-29 18:04:28 +10:00
Sebastian Dröge
0e58e86c4c
eglimage: Only register debug category if dmabuf support is enabled
...
It's not used otherwise currently and causes compiler warnings.
2016-06-23 16:00:00 +03:00
Sergey Borovkov
180405714c
qml: Enable qmlglsink for eglfs
...
https://bugzilla.gnome.org/show_bug.cgi?id=763044
2016-06-16 01:49:16 +10:00
Guillaume Desmottes
991d9a6f5f
gst-libs: gl, video: use MAY_BE_LEAKED flag
...
https://bugzilla.gnome.org/show_bug.cgi?id=767162
2016-06-03 00:59:12 +01:00
Sebastian Dröge
6f9b9e153a
eglimage: Re-add accidentially removed GST_DEFINE_MINI_OBJECT_TYPE()
2016-05-25 10:01:38 +03:00
Sebastian Dröge
b730f7e89d
eglimage: Ensure that the debug category is always initalized
...
Before the initializer was only run if dmabuf support was used.
https://bugzilla.gnome.org/show_bug.cgi?id=766794
2016-05-25 09:46:37 +03:00
Matthew Waters
5498e97a11
gl/egl: replace gsteglimagememory with an EGLImage wrapper
...
That can be passed to GstGLMemoryEGL.
This also ports the dmabuf uploader to GstEGLImage and GstGLMemoryEGL.
2016-05-04 13:31:48 +10:00
Gwang Yoon Hwang
c83fd26c80
gl: implement GstGLMemoryEGL
...
Because current GstEGLImageMemory does not inherit GstGLMemory, GLUpload
allocates additional GLMemory and upload the decoded contents from the decoder
which uses EGLImage (e.g. gst-omx in RPi).
This work adds GstGLMemoryEGL to avoid this overhead. Decoders allocate
GstGLMemoryEGL and decode its contents to the EGLImage of GstGLMemoryEGL. And
GLUpload uses this memory without allocation of additional textures and blit
operations.
[Matthew Waters]: gst-indent the sources and fix a critical retreiving the egl
display from the memory.
https://bugzilla.gnome.org/show_bug.cgi?id=760916
2016-05-04 12:57:27 +10:00
Matthew Waters
5e80a99faf
eglimage: perform eglCreateImage in the gl thread
...
while calling eglCreateImage without a GL context current in the executing
thread works on the RPi, some other implementations will return errors.
Marshall the eglCreateImage to the GL thread to appease these implementations.
2016-04-01 16:08:18 +11:00
Matthew Waters
37ff267ff5
eglimagememory: add compatibility definitions for EGL dmabuf
...
e.g. the RPi doesn't have them defined
2016-02-26 21:15:20 +11:00
Sebastian Dröge
22e75a2112
gl: Fix compiler warning about unused const variable with gcc 6
...
CC libgstgl_x11_la-gstglcontext_glx.lo
In file included from gstglcontext_glx.c:39:0:
../utils/opengl_versions.h:52:43: error: ‘gles2_versions’ defined but not used [-Werror=unused-const-variable]
static const struct { int major, minor; } gles2_versions[] = {
^~~~~~~~~~~~~~
2016-02-18 10:33:20 +02:00
Matthew Waters
406fe90331
glcontext: back out unintended lost_context changes
2016-01-29 12:45:57 +11:00
Matthew Waters
49199b03ac
egl: implement selecting opengl3 contexts
2016-01-29 11:51:58 +11:00
Matthew Waters
f524419315
gl/egl: pass the error value to get_error_string()
2016-01-29 11:51:58 +11:00
Nicolas Dufresne
7b335c4dd5
eglimagememory: Also import BGR16, ABGR, xBGR, AYUV, GRAY16_LE/BE and Y444
...
https://bugzilla.gnome.org/show_bug.cgi?id=743345
2015-12-18 15:56:34 -05:00
Nicolas Dufresne
b17a732d5f
eglimagememory: Add RGB/BGR DMABuf importation support
...
https://bugzilla.gnome.org/show_bug.cgi?id=743345
2015-12-18 15:56:34 -05:00
Lubosz Sarnecki
1cd9786598
eglimagememory: Methods to create GstGLMemory from dmabufs
...
Maps GstVideoFormats to suitable DRM fourccs which work with
glcolorconvert, using gst_gl_memory_alloc(). We require mostly
only 4 formats to be supported by the driver. We require DRM
equivalent to RGB16, RGBA, R8 and RG88. This way it's compatible with
DesktopGL, since GL_TEXTURE_2D is used and limit driver requirements.
With this we can virtually support all formats the glcolorconvert
supports.
https://bugzilla.gnome.org/show_bug.cgi?id=743345
2015-12-18 15:56:34 -05:00
Lubosz Sarnecki
eb73cf3c2e
gstglcontext_egl: Expose gst_gl_context_egl_get_error_string.
...
https://bugzilla.gnome.org/show_bug.cgi?id=743345
2015-12-18 15:56:33 -05:00
Matthew Waters
0af0237c4a
gl: fix usage of string.h and stdio.h functions without including the headers
...
e.g:
gstglcontext_egl.c:613:7: error: implicit declaration of function 'strcmp'
[-Werror=implicit-function-declaration]
if (strcmp (G_MODULE_SUFFIX, "so") == 0)
2015-10-21 04:53:08 +11:00
Matthew Waters
3dfc6899ad
gl: be consistent in gobject boilerpate
...
GST_GL_IS_* vs GST_IS_GL_*
git grep -l 'GST_GL_IS_' | xargs sed -i 's/GST_GL_IS_/GST_IS_GL_/g'
2015-10-19 15:15:30 +11:00
Matthew Waters
dbcae77e02
glcontext: pass display to implentation's _new()
...
This allows the context to fail creation based on incompatible
display type's. e.g. glx context with an wayland display handle.
https://bugzilla.gnome.org/show_bug.cgi?id=752743
2015-07-27 18:23:17 +10:00
Julien Isorce
5e4b94c1bb
gl: support cgl, egl and glx within a same build
...
On osx, with the same build,
gst-launch-1.0 videotestsrc ! glimagesink works with:
GST_GL_PLATFORM=egl GST_GL_WINDOW=x11 GST_GL_API=gles2
GST_GL_PLATFORM=egl GST_GL_WINDOW=x11 GST_GL_API=opengl
GST_GL_PLATFORM=glx GST_GL_WINDOW=x11 GST_GL_API=opengl
GST_GL_PLATFORM=cgl GST_GL_WINDOW=cocoa GST_GL_API=opengl
GST_GL_PLATFORM=cgl GST_GL_WINDOW=cocoa GST_GL_API=opengl3
https://bugzilla.gnome.org/show_bug.cgi?id=752743
2015-07-27 09:03:58 +01:00
Matthew Waters
74711c214d
glcontext: consolidate get_proc_address function definition
...
Pass the GstGLAPI directly.
2015-07-18 17:10:04 +10:00
Matthew Waters
d5a39896dc
download: only start a download transfer for sysmem caps features
2015-07-07 22:38:08 +10:00
Matthew Waters
26df88cd24
gl: consolidate egl header includes to egl-only headers
...
They may conflict with other headers.
2015-07-07 13:12:49 +10:00
Matthew Waters
de389e07dc
gl/wayland: implement basic video overlay support via subsurfaces
...
Currently does not position the subsurface relative to the parent surface at all
2015-05-31 16:04:13 +10:00
Xavier Claessens
5bfaaf4c74
egl: Use maximum bits per color instead of minimum
...
https://bugzilla.gnome.org/show_bug.cgi?id=748425
2015-04-27 10:45:48 -04:00
Matthieu Bouron
93d2e67cbc
glcontext: Make gst_gl_context_egl_activate fail if the old surface could not be destroyed
...
https://bugzilla.gnome.org/show_bug.cgi?id=746251
2015-04-17 14:39:11 +02:00
Matthieu Bouron
8ebc715fbf
glcontext: Make gst_gl_context_egl_activate fail if the surface could not be created
...
Also add some error logging.
2015-04-16 11:47:00 +02:00
Philippe Normand
14ac40f106
gl/dispmanx: surfaceless EGL context support
...
Show the DispmanX window only if there's no shared external GL context
set up. When a window is required by the context a transparent
DispmanX element is created and later on made visible by the ::show
method.
https://bugzilla.gnome.org/show_bug.cgi?id=746632
2015-03-24 11:12:05 +00:00
Jan Schmidt
f150cf2d2e
Remove a bunch of silly ';;' typos at the end of lines
2015-03-12 01:33:03 +11:00
Edward Hervey
7075b25288
gl/egl: Detect window handle changes
...
When (re)activating the context, the backing window handle might have changed.
If that happened, destroy the previous surface and create a new one
https://bugzilla.gnome.org/show_bug.cgi?id=745090
2015-02-24 17:42:13 +01:00
Edward Hervey
929a6a75d2
gl: Make glcontext debug category used in more places
...
As a bonus it makes the egl context debug messages visible now :)
2015-02-12 15:57:55 +01:00