Haihua Hu
c2b2c68bea
glformat: fix the usage of GST_GL_RGB565
...
GL_RGB565 is sized internal glformat, the corresponding glformat
should be GL_RGB and type is GL_UNSIGNED_SHORT_565. Otherwise will
return GL_INVALID_ENUM when creating texture.
https://bugzilla.gnome.org/show_bug.cgi?id=783066
2017-05-25 12:34:12 +03:00
Haihua Hu
405d059a22
glframebuffer: check frame buffer status need use specific fbo target
...
https://bugzilla.gnome.org/show_bug.cgi?id=783065
2017-05-25 12:34:04 +03:00
Carlos Rafael Giani
d6e46b905a
gl/viv-fb: Fix user-choice string comparisons
...
https://bugzilla.gnome.org/show_bug.cgi?id=782921
2017-05-21 16:52:23 +02:00
Tim-Philipp Müller
06ae762211
gl: x11: fix compiler warning
2017-05-21 11:44:37 +01:00
Matthew Waters
15e13bd44e
glcontext: add public swap_buffers function
...
That simply calls the implementation
2017-05-21 12:12:02 +02:00
fvanzile
eca91d6772
glcontext: keep a ref to the active thread
...
With the macOS/iOS implementations, the active thread can change
multiple times over the life of a pipeline which would expose a race in
the thread tracking.
Fix by taking a ref on the active thread while the context is active.
https://bugzilla.gnome.org/show_bug.cgi?id=779202
2017-05-20 16:19:38 +02:00
Josep Torra
f805608075
cocoa: fix a recently introduced typo
...
Fixes gstgldisplay_cocoa.m:175:26: error: use of undeclared identifier 'singletone'.
2017-05-20 12:19:08 +02:00
Josep Torra
ef5d42b0a7
cocoa: fix macOS 10.12 deprecation warnings
...
Add #defines to allow older versions of macOS to use the new constant names.
2017-05-20 12:16:50 +02:00
Haihua Hu
ff8898bbda
glformat: Add missing GST_GL_RGB565 in some switch statement
...
https://bugzilla.gnome.org/show_bug.cgi?id=782736
2017-05-17 20:33:13 +02:00
Sebastian Dröge
4fdd715c4b
cocoa: Install gstgldisplay_cocoa.h
...
It's needed by e.g. qmlglsink.
2017-05-17 17:38:01 +03:00
Sebastian Dröge
634cd87c76
gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent
...
https://bugzilla.gnome.org/show_bug.cgi?id=743062
2017-05-17 10:40:23 +03:00
Nicolas Dufresne
4261692187
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Sebastian Dröge
65545ecfa3
glshader: Make reference counting of attach() consistent
...
https://bugzilla.gnome.org/show_bug.cgi?id=747990
https://bugzilla.gnome.org/show_bug.cgi?id=702960
2017-05-15 12:07:13 +03:00
Matthew Waters
7b615e92b6
build/gl/meson: check for GLES3/gl3ext.h existence
...
791e7522eb
for meson
https://bugzilla.gnome.org/show_bug.cgi?id=781885
2017-05-11 20:06:47 +10:00
Jens Georg
791e7522eb
build: Check for GLES3/gl3ext.h existence
...
Some OpenGL drivers do not ship this but use GLES2/gl2ext.h instead.
This is also in line with Khronos's recommendations
https://bugzilla.gnome.org/show_bug.cgi?id=781885
2017-05-11 20:05:14 +10:00
Sebastian Dröge
0730a55af3
glmemory: Only use glDrawBuffer if available
...
Otherwise fall back to glDrawBuffers. Also check if glReadBuffer exists
before using it.
glDrawBuffer does not exist for GLES, only glDrawBuffers does.
https://bugzilla.gnome.org/show_bug.cgi?id=782376
2017-05-09 11:26:13 +02:00
Haihua Hu
beab384557
glupload: passthrough composition caps features in directviv upload
...
https://bugzilla.gnome.org/show_bug.cgi?id=782046
2017-05-02 14:18:43 +03:00
Thibault Saunier
78022a6e0c
docs: Port all docstring to gtk-doc markdown
2017-04-12 12:57:57 -03:00
Thibault Saunier
a49c114d4e
docs: Stop linking to inexistant symbols
2017-04-12 12:07:51 -03:00
Claudio Saavedra
61ba3f1986
meson: add missing gstglrenderbuffer.h header
...
https://bugzilla.gnome.org/show_bug.cgi?id=781179
2017-04-11 16:54:04 +03:00
Scott D Phillips
fc0c7d664d
meson: gl: set default value of 0 for glconf vars
...
meson's configure_file emits only a comment like /* #undef ... */
for values which are unset in the configuration_data. For
gstglconfig.h, this differs from the autotools build where the
preprocessor definitions are always either 0 or 1. So loop over a
list of variables to set to zero as default.
Also sync up the gstglconfig.h.meson file with the additional
macros defined by the autotools build.
https://bugzilla.gnome.org/show_bug.cgi?id=781043
2017-04-09 11:20:43 +03:00
Vincent Penquerc'h
3fd5608e21
glcontext: fix display leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=781019
2017-04-09 11:16:56 +03:00
Vincent Penquerc'h
884e4b7810
gldisplay: fix list leak
...
Windows aren't always removed in time, and it turns out to be
very, very hard to remove a window in a way that's not racy and
not deadlocky. Since the window itself doesn't leak, freeing
the list on object destruction is enough.
https://bugzilla.gnome.org/show_bug.cgi?id=781018
2017-04-09 11:16:48 +03:00
Jan Schmidt
b8f37d1074
gl: Remove duplicate typedef of GstGLFramebufferClass
...
The GstGLFramebufferClass struct is typedeffed in
gstgl_fwd.h, and having a duplicate elsewhere is
breaking the cerbero build on my OSX machine,
even though it seems to be working in CI.
2017-04-08 21:28:58 +10:00
Josep Torra
1456c65295
glwindow/cocoa: fix warnings reported by XCode 8.1.0
...
gstglwindow_cocoa.m:345:16: error: unused variable 'window' [-Werror,-Wunused-variable]
GstGLWindow *window = GST_GL_WINDOW (window_cocoa);
^
gstglwindow_cocoa.m:445:11: error: unused variable 'external_view' [-Werror,-Wunused-variable]
NSView *external_view = (__bridge NSView *)priv->external_view;
^
2017-04-01 16:49:15 +02:00
Nicolas Dufresne
0c4eb22a7d
gldisplay: Fix assert caused by missing debug category
2017-03-29 23:45:21 -04:00
Scott D Phillips
1586357a2f
gl/format: correct return enums in gst_gl_format_from_video_info
...
In commit
> 956c4d0
gl/format: use our own GL format enum's instead of gstvideo's
the name and return type of gst_gl_format_from_video_info changed,
but some returns of the old type were missed. Here they are
updated to the correct type.
https://bugzilla.gnome.org/show_bug.cgi?id=780064
2017-03-15 14:32:14 +11:00
George Kiagiadakis
20d4aca0d4
glupload: adjust memory offset calculation for dmabuf buffers
...
The data in the dmabuf fd may not start from byte 0, therefore
we need to inform EGL about this additional offset.
https://bugzilla.gnome.org/show_bug.cgi?id=779790
2017-03-14 17:07:40 +02:00
Matthew Waters
efc015f27d
gl: GL_ARRAY_BUFFER is not a part of VAO state
...
As a result we need to bind it on every draw in order to have the
correct state in the GL state machine.
2017-03-14 14:15:00 +11:00
Matthew Waters
956c4d0bde
gl/format: use our own GL format enum's instead of gstvideo's
...
They can describe in more detail (such as component sizes) the requested format.
2017-03-13 21:10:58 +11:00
Vincent Penquerc'h
04f8c7d729
glupload: fix GValue leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=779869
2017-03-13 09:27:41 +00:00
Sebastian Dröge
2392ac7446
gl/eagl: It's -fobjc-arc not -fobj-arc
2017-03-08 15:13:45 +02:00
Nick Kallen
46bbc60d24
applemedia/gl: Update code to use ARC
...
All code interacting with Objective-C objects should now use Automated
Reference Counting rather than manual memory management or Garbage
Collection. Because ARC prohibits C-structs from containing
references to Objective-C objects, all such fields are now typed
'gpointer'. Setting and gettings Objective-C fields on such a
struct now uses explicit __bridge_* calls to tell ARC about
object lifetimes.
https://bugzilla.gnome.org/show_bug.cgi?id=777847
2017-03-07 13:37:07 +02:00
Arun Raghavan
b7065f5f8e
gl: Missed one backwards compat define in GST_GL_TYPE_CONTEXT
...
Continued from 296b4251e3
2017-03-06 17:52:31 +05:30
Sebastian Dröge
be1eeba67d
gl: Fixup for last commit
2017-03-04 11:47:04 +02:00
Sebastian Dröge
296b4251e3
gl: Fix backwards compat GST_GL_TYPE_* functions/macros
...
These have to be macros instead of inline function as they must behave
more or less like an integer literal, i.e. include the function call.
2017-03-04 11:17:35 +02:00
Sebastian Dröge
a0199d17a1
gl/viv-fb: Don't use deprecated symbols and make macros more consistent
...
https://bugzilla.gnome.org/show_bug.cgi?id=778825
2017-03-04 11:17:35 +02:00
Sebastian Dröge
fef775d703
glcolorconvert: Check return value of gst_gl_context_check_framebuffer_status()
...
CID 1401588
2017-02-28 12:34:30 +02:00
Sebastian Dröge
9bd30e0277
gl: Add viv-fb to DIST_SUBDIRS to fix "make distcheck"
2017-02-28 12:31:54 +02:00
Sebastian Dröge
c9b5bee53d
glutils: Mark private functions as G_GNUC_INTERNAL
2017-02-28 10:55:10 +02:00
Sebastian Dröge
ed1e4c16fb
glupload: Add support for Vivante DirectTexture uploads
...
Together with the upcoming gstreamer-imx patch, this allows zerocopy
between imxvpudec and other elements and glimagesink.
This is losely based on a patch by Haihua Hu <b55597@freescale.com>
from https://github.com/Freescale/meta-freescale/blob/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/
https://bugzilla.gnome.org/show_bug.cgi?id=779067
2017-02-27 10:42:05 +02:00
Sebastian Dröge
e9327d4928
gl: Add support for Vivante EGL FB windowing system
...
This is very similar to how dispmanx on the Raspberry Pi works.
Based on a patch by Haihua Hu <b55597@freescale.com> from
https://github.com/Freescale/meta-freescale/tree/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad
https://bugzilla.gnome.org/show_bug.cgi?id=778825
2017-02-27 10:42:05 +02:00
Sebastian Dröge
bfdbdb7eb6
glmemory: Use glBlitFramebuffer() instead of glCopyTexImage2D() if available
...
glBlitFramebuffer() is new GLES3/GL3 API. They are probably often
implemented in terms of each other, and glBlitFramebuffer() can
potentially be implemented more flexible. Let's use it if available.
Also it actually works on imx6 with DirectVIV textures.
Based on a patch by Haihua Hu <jared.hu@nxp.com> from
https://github.com/Freescale/meta-freescale/blob/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/
https://bugzilla.gnome.org/show_bug.cgi?id=779070
2017-02-23 21:57:33 +02:00
Sebastian Dröge
0c902ff249
configure: Remove unused Mali EGL/fbdev_window support
...
This existed a long time ago but there's no actual code for this
anymore.
2017-02-16 20:09:40 +02:00
Thibault Saunier
cea4346d84
meson: Build GIR files
2017-01-23 12:48:53 -03:00
Matthew Waters
03b539bdfc
gl: update sys dependants for function removals
...
4315a4b54d
forgot to change the androidmedia/videotoolbox/caopengllayer
sources as required.
2017-01-13 13:01:28 +11:00
Juan Pablo Ugarte
fb5339a387
glslstage: define GL constants if needed instead of using #ifdef
...
https://bugzilla.gnome.org/show_bug.cgi?id=777144
2017-01-13 11:20:51 +11:00
Matthew Waters
6919b4ca66
glutils: document functions
2017-01-13 11:20:51 +11:00
Matthew Waters
4de388278a
glutils: privatise matrix multiplication/videoaffinetransformation retrieval
2017-01-13 11:20:51 +11:00
Matthew Waters
4315a4b54d
gl/utils: also take care of the local GL context in query functions
...
Simplifies a deduplicates a lot of code in elements retrieving/setting
the local OpenGL context.
2017-01-13 11:20:51 +11:00
Matthew Waters
3fba290979
glutils: remove trivial helper function
...
gst_gl_caps_replace_all_caps_features() is only used in two places and can
be trivially reproduced.
2017-01-13 11:20:51 +11:00
Matthew Waters
6f4657c464
gl/docs: add symbols from -unused.txt
2017-01-13 11:20:50 +11:00
Matthew Waters
f032334eac
gl/docs: some type fixes of type names
2017-01-13 11:20:50 +11:00
Matthew Waters
1c12c21653
glwindow: use the same parameter names between vfuncs and functions of the same name
...
Silences GI warnings about symbol's not being used from source code
comment block
2017-01-10 20:07:09 +11:00
Matthew Waters
91ed9fe362
glbasememory: type fix for GstGLBaseMemoryAllocatorAllocFunction
2017-01-10 20:06:39 +11:00
Matthew Waters
b76f14f004
gldisplay: add missing transfer annotations
2017-01-10 20:05:42 +11:00
Matthew Waters
b65ecbaa2b
gl: add skip annotations to non-GI possible struct constructors
2017-01-10 20:04:30 +11:00
Matthew Waters
f8a2721388
glbasememory: remove unused and #if 0'ed function definitions
2017-01-10 20:03:09 +11:00
Matthew Waters
a1f2da88bf
gl: add necessary get_type() functions for allocation params structures
...
All using the existing GstGLAllocationParams infrastructure
2017-01-10 19:58:48 +11:00
Matthew Waters
a20d064304
gldisplay: some annotation updates/typo fixes
2017-01-10 15:35:52 +11:00
Matthew Waters
01cf3547dd
gl: remove reference to non-existant header
...
../../../../gst-libs/gst/gl/gl.h:57:45: fatal error: gst/gl/gstglcontrolbindingproxy.h: No such file or directory
#include <gst/gl/gstglcontrolbindingproxy.h>
^
2017-01-10 14:29:46 +11:00
Matthew Waters
a4024b61cf
gl: remove custom control binding proxy
...
Use the existing GstProxyControlBinding instead.
2017-01-10 13:57:37 +11:00
Matthew Waters
f3d2be1e4f
gl: remove unneeded gst_gl_buffer_alloc from header file
...
There's no implementation anymore!
2017-01-10 13:57:37 +11:00
Matthew Waters
66d616f5ed
gl/egl: remove use of texture orientation
2017-01-10 13:57:37 +11:00
Matthew Waters
d9f553bff5
glcontext/egl: don't overwrite set GError
...
Doing so is an error and will cause a glib warning to be printed.
https://bugzilla.gnome.org/show_bug.cgi?id=776722
2017-01-10 01:00:12 +11:00
Matthew Waters
d8d28e4426
gl/format: use the unsized format for RGB on GLES2
...
In GLES2 GL_RGB8 doesn't exist so we cannot use it, use GL_RGB
instead.
https://bugzilla.gnome.org/show_bug.cgi?id=776141
2016-12-17 01:13:44 +11:00
Matthew Waters
e6e403a6c9
gl/window: remove unused priv variable
...
https://ci.gstreamer.net/job/GStreamer-master/7989/console
2016-12-16 00:22:41 +11:00
Matthew Waters
f58eb98440
gl/window: remove use of main_context_push/pop_thread_default()
...
No-one's using/depending on it (it would have criticalled and not worked)
and it's causing more problems than it's solving. Store the GMainContext
in the public struct instead for subclasses to optionally use instead of
relying on the push/pop state to be correct.
https://bugzilla.gnome.org/show_bug.cgi?id=775970
2016-12-16 00:02:47 +11:00
Sebastian Dröge
5c99f9cf37
gst: Don't declare variables inside the for loop header
...
This is a C99 feature.
2016-12-13 22:39:01 +02:00
Julien Isorce
f7b039e7df
gstglupload: relax EGL context check
...
Check for GST_GL_PLATFORM_EGL enum instead of type GstGLContextEGL.
https://bugzilla.gnome.org/show_bug.cgi?id=774518
2016-12-01 10:50:10 +00:00
Julien Isorce
119955bea4
gstglcontext: is_shared should return FALSE if no group
...
If a sub class of GstGLContext does not create a group
then it currently crashes:
0 g_atomic_int_get (&share->refcount)
1 _context_share_group_is_shared (context->priv->sharegroup)
2 gst_gl_context_is_shared
3 _default_set_sync_gl
https://bugzilla.gnome.org/show_bug.cgi?id=774518
2016-12-01 10:50:05 +00:00
Matthew Waters
1db88cbee7
glmemoryegl: remove spurious #if GST_GL_HAVE_DMABUF conditions
...
8c2118823b
had some incorrect preprocessor
conditions that aren't actually needed. Remove them.
https://bugzilla.gnome.org/show_bug.cgi?id=775248
2016-11-30 19:29:27 +11:00
Matthew Waters
024e92afe7
glwindow: move g_main_context_push/pop_thread_default() to run()
...
Calling g_main_context_push_thread and then g_main_context_invoke()
(used by gst_gl_window_send_message_async()) in the same thread will
cause the invoked function to run immediately instead of being delayed.
This had implications for the creation of the OpenGL context not waiting
until the main loop had completely started up and as a result would
sometimes deadlock in short create/destroy scenarios.
https://bugzilla.gnome.org/show_bug.cgi?id=775171
2016-11-28 14:27:03 +11:00
Matthew Waters
25fbc6d877
glcontext: fix race between creation/shutdown
...
626bcccff9
removed some locks that
allowed the main loop quit to occur before the context was fully
created.
2776cef25d
attempted to readd them but
missed the scop of the quit() call.
Also remove the use of g_thread_join() as that's not safe to use when
it's possible to lose the last reference from the GL thread.
https://bugzilla.gnome.org/show_bug.cgi?id=775171
2016-11-28 14:27:03 +11:00
Sebastian Dröge
939528e542
gl/x11: Remove unused static function
2016-11-25 23:44:25 +02:00
Matthew Waters
4a0214335f
gl/contextglx: error out on more invalid display/window combinations
...
https://bugzilla.gnome.org/show_bug.cgi?id=774851
2016-11-23 17:04:34 +11:00
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
David Evans
5591f55db5
gl: add gstreamer-video to pkg-config path
...
https://bugzilla.gnome.org/show_bug.cgi?id=774624
2016-11-21 09:34:44 +02:00
Matthew Waters
39b59beace
meson: gl/egl: add missing source file
...
d42145e8c1
didn't add the necessary
meson build changes.
2016-11-17 14:32:10 +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
bb84f7357b
glcontext/cocoa: implement empty swap_buffers
...
Fixes some GL tests on OS X.
2016-11-16 17:34:29 +11:00
Matthew Waters
9f690fa241
glwindow/cocoa: remove unneeded window code in NSWindow
...
This is all taken care of by GstGLWindowCocoa/GstGLNSView now.
2016-11-16 00:01:00 +11:00
Matthew Waters
23ec5aeb83
glwindow/cocoa: remove our view from the parent when closing
...
Otherwise, when the application reuses the same UIView, we were getting
draw notifications on the previous view/layer's which weren't valid anymore
and were referencing pointers that had been freed.
https://bugzilla.gnome.org/show_bug.cgi?id=753003
2016-11-16 00:00:17 +11:00
Matthew Waters
5602cab04d
gl/caopengllayer: add a debug category
2016-11-15 23:55:00 +11:00
Matthew Waters
f2d09b8cd4
glbufferpool: introduce check for GLMemory allocators
...
The last missing piece of EGLImage support has been pushed.
2016-11-15 23:55:00 +11:00
Tim-Philipp Müller
ba6b8c33e0
gl: x11-xcb is not a required dependency
...
Don't fail if it's not found..
2016-11-11 01:06:23 +00:00
Matthew Waters
3f7b549881
gl/utils: move gen_shader() to the plugin and remove del_shader()
...
gst_gl_context_del_shader() can be replaced by a g_object_unref().
gst_gl_context_gen_shader() should be replaced by using GstGLSLStage.
2016-11-10 20:11:03 +11:00
Matthew Waters
59350d078b
glwindow: remove unused field in public struct
2016-11-10 20:05:45 +11:00
Matthew Waters
01fa90c1e7
glwindow: remove is_running() function
...
It isn't necessary in correctly written programs.
2016-11-10 20:05:45 +11:00
Nirbheek Chauhan
de4552d279
meson/gl: XCB changes also need x11-xcb as a dependency
...
https://ci.gstreamer.net/job/GStreamer-master-meson/380/console
[...]
gst-libs/gst/gl/x11/xcb_event_source.c:98: undefined reference to `xcb_get_file_descriptor'
2016-11-08 17:52:02 +05:30
Philippe Normand
a424f04a22
gl/x11: fix meson build
...
The x11_event_source.[ch] files were renamed in
4f6c226bd2
.
2016-11-08 09:54:15 +01:00
Matthew Waters
f9d463d80e
glwindow: remove the navigation thread
...
This functionality can now effectively be implemented with the display event
thread.
2016-11-08 15:14:27 +11:00
Matthew Waters
4f6c226bd2
gl/x11: use xcb instead of libX11
...
- xcb is supposedly thread-safe!
videotestsrc ! glimagesink now doesn't spuriously result in a
'call XInitThreads()' error however if anybody else is using X11,
then XInitThreads() still needs to be called and multiple glimagesink's
still need XInitThreads().
Everything still takes libX11 handles as they are compatible with the xcb
variants. Unfortunately we cannot move fully over to xcb due to GLX being
entirely based on Xlib. It's also impossible to transform a xcb_connection
to a Display which means we require X11 handles.
2016-11-08 15:14:26 +11:00
Matthew Waters
e4916fb1ef
gldisplay: add a list of glwindow's
...
With the event thread on the display, for a particular winsys event
we need to be able to retreive the window that the event matches.
2016-11-08 15:14:26 +11:00
Matthew Waters
1a6c4be242
gldisplay: add a dedicated event thread
...
Will take the place of the navigation event thread for dealing with
winsys events.
2016-11-08 12:50:45 +11:00