Julien Isorce
22e78529dd
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
2017-12-09 19:32:25 +00:00
Matthew Waters
bf7b608728
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
2017-12-09 19:32:25 +00:00
Matthew Waters
7306f2de2c
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
2017-12-09 19:32:25 +00:00
Matthew Waters
f22390e46e
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
2017-12-09 19:32:25 +00:00
Sebastian Dröge
46e71e095f
gl/x11: Remove unused static function
2017-12-09 19:32:25 +00:00
Florent Thiéry
2faef638ed
gldownload: fix element description (was "OpenGL uploader")
2017-12-09 19:32:25 +00:00
Matthew Waters
86a9499d5e
gl/contextglx: error out on more invalid display/window combinations
...
https://bugzilla.gnome.org/show_bug.cgi?id=774851
2017-12-09 19:32:25 +00:00
Matthew Waters
afbca8576e
gl: add necessary context_egl.h #includes to the source files
2017-12-09 19:32:25 +00:00
Matthew Waters
6992e16d4d
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
2017-12-09 19:32:25 +00:00
David Evans
7d034ba2d9
gl: add gstreamer-video to pkg-config path
...
https://bugzilla.gnome.org/show_bug.cgi?id=774624
2017-12-09 19:32:25 +00:00
Matthew Waters
fc8217ae8d
gl/tests: fix glimagesink element test on OSX
...
It was suffering a race starting up the thread that could cause the main
loop to quit before the main loop had started.
2017-12-09 19:32:25 +00:00
Matthew Waters
dd31f7934c
meson: gl/egl: add missing source file
...
d42145e8c1
didn't add the necessary
meson build changes.
2017-12-09 19:32:25 +00:00
Matthew Waters
59b65373b0
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
2017-12-09 19:32:25 +00:00
Matthew Waters
39e75767fb
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
2017-12-09 19:32:25 +00:00
Matthew Waters
6703641734
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
2017-12-09 19:32:24 +00:00
Matthew Waters
415ce6c96a
display/egl: implement getting the EGLDisplay of a specific platform
...
https://bugzilla.gnome.org/show_bug.cgi?id=774518
2017-12-09 19:32:24 +00:00
Víctor Manuel Jáquez Leal
ddf7fe0e80
gl/egl: check the feature in the extensions list
...
https://bugzilla.gnome.org/show_bug.cgi?id=774518
2017-12-09 19:32:24 +00:00
Matthew Waters
8b9a29a97c
gl/tests: don't use the default framebuffer
...
Create our own instead as the default framebuffer may require special
fiddling (like having a visible window) to correctly display/be renderable.
Fixes the remaining GL library tests on OS X
2017-12-09 19:32:24 +00:00
Matthew Waters
6e409db6e0
glcontext/cocoa: implement empty swap_buffers
...
Fixes some GL tests on OS X.
2017-12-09 19:32:24 +00:00
Matthew Waters
737505f7ed
gl: remove empty BUGS file
...
We use bugzilla for bug tracking
2017-12-09 19:32:24 +00:00
Matthew Waters
569fa380e5
glwindow/cocoa: remove unneeded window code in NSWindow
...
This is all taken care of by GstGLWindowCocoa/GstGLNSView now.
2017-12-09 19:32:24 +00:00
Matthew Waters
66619ed690
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
2017-12-09 19:32:24 +00:00
Matthew Waters
b19e74e02d
gl/caopengllayer: add a debug category
2017-12-09 19:32:24 +00:00
Matthew Waters
28d3ab2922
glbufferpool: introduce check for GLMemory allocators
...
The last missing piece of EGLImage support has been pushed.
2017-12-09 19:32:24 +00:00
Tim-Philipp Müller
0aae67d261
gl: x11-xcb is not a required dependency
...
Don't fail if it's not found..
2017-12-09 19:32:24 +00:00
Matthew Waters
695601b7e0
gl/build: add missing build files
...
3f7b549881
was incomplete :(
2017-12-09 19:32:24 +00:00
Matthew Waters
8a1d31f6ab
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.
2017-12-09 19:32:24 +00:00
Matthew Waters
e483b092f1
glwindow: remove unused field in public struct
2017-12-09 19:32:24 +00:00
Matthew Waters
2b89a2c348
glwindow: remove is_running() function
...
It isn't necessary in correctly written programs.
2017-12-09 19:32:24 +00:00
Nirbheek Chauhan
204e68a5b1
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'
2017-12-09 19:32:24 +00:00
Philippe Normand
3aee8b8b23
gl/x11: fix meson build
...
The x11_event_source.[ch] files were renamed in
4f6c226bd2
.
2017-12-09 19:32:24 +00:00
Matthew Waters
263255137e
examples/gl/qt: fix the examples for the use of newer API
...
gstgl doesn't undo/overwrite what GL state the examples are changing
anymore. As such, the examples need to reset the GL state themselves
to be able to play nice with libgstgl
2017-12-09 19:32:24 +00:00
Matthew Waters
85feb6d6f2
glfiltershader: expand the docs slightly
...
Add an example OpenGL shader
2017-12-09 19:32:24 +00:00
Matthew Waters
4abca9f5d0
glwindow: remove the navigation thread
...
This functionality can now effectively be implemented with the display event
thread.
2017-12-09 19:32:24 +00:00
Matthew Waters
0e56bead42
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.
2017-12-09 19:32:24 +00:00
Matthew Waters
af493eb6b2
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.
2017-12-09 19:32:24 +00:00
Matthew Waters
3870012f18
gldisplay: add a dedicated event thread
...
Will take the place of the navigation event thread for dealing with
winsys events.
2017-12-09 19:32:24 +00:00
Matthew Waters
ef70a7beae
gl: don't expose OpenGL prototypes
...
We roll our own to avoid depending a certain OpenGL header version
2017-12-09 19:32:24 +00:00
Matthew Waters
4a1d23ea85
gl/cocoa: don't install the gstglcontext_cocoa.h header
...
It's not needed to be exposed
2017-12-09 19:32:24 +00:00
Matthew Waters
50f60c9ae9
gl/android: don't install the android window header
...
It's not needed
2017-12-09 19:32:24 +00:00
Matthew Waters
d0b8f7c002
gl: add padding to all exposed winsys/platform-specific structs
2017-12-09 19:32:24 +00:00
Matthew Waters
d7d42971ab
gl/wayland: install the gstgldisplay_wayland.h header
...
As it is used by other OpenGL sinks (gtkglsink, qmlglsink)
2017-12-09 19:32:24 +00:00
Matthew Waters
9d295ed19b
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.
2017-12-09 19:32:24 +00:00
Matthew Waters
181dacc77e
glfilter: remove display_init/reset
...
They are mirrors of GstGLBaseFilter's gl_start() and gl_stop() virtual methods
so use them instead.
2017-12-09 19:32:23 +00:00
Matthew Waters
873466a1f1
gldisplay: Fix inverted precondition
...
A GError argument must either be null or point to a NULL GError.
https://developer.gnome.org/glib/stable/glib-Error-Reporting.html
2017-12-09 19:32:23 +00:00
Matthew Waters
62d0bac993
gl/gi: some annotation updates for called functions
...
With scope, closure, destroy annotations
2017-12-09 19:32:23 +00:00
Matthew Waters
3ef6af7b0f
gl/gi: also include GstVideo
...
Removes all the unknown type GstVideo* warnings while building the GIR
file.
2017-12-09 19:32:23 +00:00
Matthew Waters
c6c7f421e3
glfeature: move internal functions into a private header
...
Don't expose them to the outside world
2017-12-09 19:32:23 +00:00
Matthew Waters
18ac98c58b
gl: GST_GL_TYPE -> GST_TYPE_GL
...
Some deprecated symbols are kept for backwards compatibility
2017-12-09 19:32:23 +00:00
Matthew Waters
9bafa08a5d
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
2017-12-09 19:32:23 +00:00