Commit graph

2058 commits

Author SHA1 Message Date
Matthew Waters 87a4eafaf9 gl: add skip annotations to non-GI possible struct constructors 2017-12-09 19:32:26 +00:00
Matthew Waters f7d300b28e glbasememory: remove unused and #if 0'ed function definitions 2017-12-09 19:32:26 +00:00
Matthew Waters 31b38a5f54 gl: add necessary get_type() functions for allocation params structures
All using the existing GstGLAllocationParams infrastructure
2017-12-09 19:32:26 +00:00
Matthew Waters 53cc73b5f4 gldisplay: some annotation updates/typo fixes 2017-12-09 19:32:25 +00:00
Matthew Waters 2fa355c761 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-12-09 19:32:25 +00:00
Matthew Waters cfc16f6dae gl: remove custom control binding proxy
Use the existing GstProxyControlBinding instead.
2017-12-09 19:32:25 +00:00
Matthew Waters 068a7656f8 gl/pkg-config: add the configured platform/api/winsys
Allows users to query this from pkg-config instead of requiring them to
compile mini programs checking defines in gstglconfig.h
2017-12-09 19:32:25 +00:00
Matthew Waters a3e593d2a9 gl: remove unneeded gst_gl_buffer_alloc from header file
There's no implementation anymore!
2017-12-09 19:32:25 +00:00
Matthew Waters e80337e374 gl/egl: remove use of texture orientation 2017-12-09 19:32:25 +00:00
Matthew Waters db34024172 gl/pkg-config: don't advertise all our dependent libraries as deps
If an application/library explicitly needs a library, it needs to link
against it itself.
2017-12-09 19:32:25 +00:00
Matthew Waters cec46fc75e 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-12-09 19:32:25 +00:00
Guillaume Desmottes 329b4691f8 meson: generate pkg-config -uninstalled pc files
Generating those files is useful for users building the GStreamer stack
using meson and having to link it to another project which is still
using the autotools.

While doing so, fix some -uninstalled pc files which were using a
suspicious 'pcfiledir' which was never replaced or defined.

https://bugzilla.gnome.org/show_bug.cgi?id=776810
2017-12-09 19:32:25 +00:00
Matthew Waters 054b26411a 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
2017-12-09 19:32:25 +00:00
Matthew Waters fe3298993b gl/window: remove unused priv variable
https://ci.gstreamer.net/job/GStreamer-master/7989/console
2017-12-09 19:32:25 +00:00
Matthew Waters f532e699df 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
2017-12-09 19:32:25 +00:00
Haihua Hu 09952ddc4b gl/effects: use non-PBO GLMemory for internal textures
middle textures in gleffects do not need to use GstGLMemoryPBO as they
aren't transfering data to/from the GPU. This will cost too much DMA
memory and cause performance issue. Change the allocator to use non-PBO
GstGLMemory.

https://bugzilla.gnome.org/show_bug.cgi?id=776072
2017-12-09 19:32:25 +00:00
Sebastian Dröge faf1e388f7 glvideomixer: Reject multiview video
glvideomixer does not support it currently and it needs special support
for handling this correctly, and is rather non-trivial to implement for
all formats.
2017-12-09 19:32:25 +00:00
Sebastian Dröge aeb5d4edaf gst: Don't declare variables inside the for loop header
This is a C99 feature.
2017-12-09 19:32:25 +00:00
Julien Isorce 7da132c327 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
2017-12-09 19:32:25 +00:00
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