Vincent Penquerc'h [Mon, 21 Apr 2014 08:50:19 +0000 (09:50 +0100)]
gl: guard against using a NULL window pointer
Coverity 1195145
Vincent Penquerc'h [Mon, 21 Apr 2014 08:47:08 +0000 (09:47 +0100)]
gl: prevent division by 0 on unsupported texture type
Coverity 1199697
Jan Schmidt [Mon, 21 Apr 2014 12:01:47 +0000 (22:01 +1000)]
glcolorconvert: Fix bt709 conversion matrices.
Fix the sign on one entry in the bt.709 YUV->RGB conversion
matrix, and the corresponding inverse matrix. Fixes really
wrong colouring of some videos.
Julien Isorce [Mon, 24 Mar 2014 12:08:43 +0000 (12:08 +0000)]
gl: allow to include GLES/gl.h
https://bugzilla.gnome.org/show_bug.cgi?id=703343
Sebastian Dröge [Sun, 13 Apr 2014 17:20:32 +0000 (19:20 +0200)]
gl/eagl: Fix compilation
Sebastian Dröge [Sun, 13 Apr 2014 14:53:58 +0000 (16:53 +0200)]
gl/eagl: Notify the window's resize callback about surface dimension changes
https://bugzilla.gnome.org/show_bug.cgi?id=728107
Sebastian Dröge [Sun, 13 Apr 2014 14:46:11 +0000 (16:46 +0200)]
gl/eagl: Remove spurious private struct pointer
Sebastian Dröge [Sun, 13 Apr 2014 14:40:58 +0000 (16:40 +0200)]
gl/android: Notify the window's resize callback about surface dimension changes
https://bugzilla.gnome.org/show_bug.cgi?id=728107
Matthew Waters [Sun, 13 Apr 2014 12:16:45 +0000 (22:16 +1000)]
glimagesink: remove unused texture
Matthew Waters [Sun, 13 Apr 2014 12:14:52 +0000 (22:14 +1000)]
glimagesink: move upload into _prepare()
Matthew Waters [Sun, 13 Apr 2014 03:49:22 +0000 (13:49 +1000)]
gl/context: output available extensions
Matthew Waters [Sun, 13 Apr 2014 03:39:14 +0000 (13:39 +1000)]
gl/context: provide get_gl_version
Julien Isorce [Sat, 12 Apr 2014 23:21:00 +0000 (00:21 +0100)]
gl/color: restore viewport dimensions when fbo done
Regression introduced by
95abfda1399bcddbee345d4542e857d743965477.
It caused to display the wrong frame size when resizing the window.
Sebastian Dröge [Sat, 12 Apr 2014 20:45:30 +0000 (22:45 +0200)]
gl: Import QuartzCore/QuartzCore.h for CAEAGLLayer on older iOS versions
Sebastian Dröge [Sat, 12 Apr 2014 20:15:35 +0000 (22:15 +0200)]
gl: Set glimagesink rank to SECONDARY
This is a full-featured video sink now and especially should be
used instead of osxvideosink on OSX if available.
Sebastian Dröge [Sat, 12 Apr 2014 19:43:50 +0000 (21:43 +0200)]
gl: Add support for iOS EAGL platform
https://bugzilla.gnome.org/show_bug.cgi?id=703341
Julien Isorce [Sat, 12 Apr 2014 16:33:44 +0000 (17:33 +0100)]
gl/cocoa: make gst_gl_window_cocoa_send_message_async re-entrant
Backends that use g_main_context_invoke are re-entrant.
Il allows to call two nested gst_gl_context_thread_add.
ex: init_upload / init_colorconvert
Sebastian Dröge [Sat, 12 Apr 2014 15:01:09 +0000 (17:01 +0200)]
glimagesink: First handle GL window setup, then create the context and its thread
Julien Isorce [Sat, 12 Apr 2014 14:51:47 +0000 (15:51 +0100)]
gl/cocoa: fix NSAutoreleasePool initialization
Julien Isorce [Sat, 12 Apr 2014 11:42:40 +0000 (12:42 +0100)]
gl/cocoa: ensure to call NSApplication:sharedApplication in the main thread
"(NSApplication *)sharedApplication This method also makes a connection
to the window server and completes other initialization"
The implicit thing which is not mentioned is that it required
to be called in the main thread.
Fix a regression introduces by
82b7c915bb02a9790d256d599452e5a54afda633
When using with gst-launch, it was not possible to click on the close
cross of the window anymore which is a bit anoying and also because
it's was possible before.
Prior to this commit the GstGLContextCocoaClass was initialized
in the main thread because gst_gl_context_new was called in the
state change function from going from ready to paused.
From this commit this call is done from the streaming thread.
So that the call to [NSApplication sharedApplication];
was not done in the main thread anymore.
We now ensure that by assuming there is a GMainLoop running.
It's for debugging purpose so that's ok to do that. Also
note we already do this assumtion to run app itereations.
The regression had no consequence on the cocoa/videooverlay example
(that should be moved from gst-plugins-gl to -bad) because the
application is responsible for that necessary call.
Julien Isorce [Sat, 12 Apr 2014 13:40:40 +0000 (14:40 +0100)]
gl/color: fix warning type qualifiers ignored
i686-apple-darwin11-llvm-gcc-4.2
"warning: type qualifiers ignored on function return type"
Matthew Waters [Sat, 12 Apr 2014 08:24:43 +0000 (18:24 +1000)]
gl/color: remove if statement with no effect
Coverity 1199698
Matthew Waters [Sat, 12 Apr 2014 08:16:29 +0000 (18:16 +1000)]
gl/color: pass large value by reference
Coverity 1199700
Matthew Waters [Fri, 11 Apr 2014 07:24:39 +0000 (17:24 +1000)]
gl/mem: cache the stride/unpack length for upload
Matthew Waters [Fri, 11 Apr 2014 07:23:32 +0000 (17:23 +1000)]
gl/color: explicitly map the buffers we are copying into
Otherwise it may not be downloaded at all.
Matthew Waters [Fri, 11 Apr 2014 06:09:09 +0000 (16:09 +1000)]
gl/color: cache the temporary textures
Matthew Waters [Fri, 11 Apr 2014 01:04:43 +0000 (11:04 +1000)]
gl/mem: provide defines for tokens not defined in GLES2/ancient platforms
Matthew Waters [Fri, 11 Apr 2014 01:03:19 +0000 (11:03 +1000)]
gl: fixup incorrect number of arguments
Matthew Waters [Fri, 11 Apr 2014 00:55:21 +0000 (10:55 +1000)]
gl: fix incorrect usage of g_return_if_fail
Matthew Waters [Wed, 2 Apr 2014 06:43:52 +0000 (17:43 +1100)]
gl/mem: allocate the memory per plane
This patch provides the basic infrastructure required for this.
Upload and Download has been ported to this.
Has the nice effect of allowing GstGLMemory to be our
refcounted texture object for any texture type (not just RGBA).
Should not lose any features/video formats.
Matthew Waters [Tue, 1 Apr 2014 04:10:05 +0000 (15:10 +1100)]
gl/eglimage: #if 0 unused code
Matthew Waters [Tue, 1 Apr 2014 02:30:51 +0000 (13:30 +1100)]
gl: add colorconvert object that converts between color spaces/formats
Currently used by both upload and download objects separately.
Vincent Penquerc'h [Wed, 9 Apr 2014 09:28:46 +0000 (10:28 +0100)]
gl: pass large structure by const pointer, not value
Avoids large pointless memcpy.
Coverity 206236, 206237
Vincent Penquerc'h [Tue, 8 Apr 2014 15:23:50 +0000 (16:23 +0100)]
gl: test for frame NULLness before dereferencing it
Coverity 1195172, 1195171
Vincent Penquerc'h [Tue, 8 Apr 2014 14:54:01 +0000 (15:54 +0100)]
gl: fix leaks
As the relevant variables are initialized to 0/NULL, we can loop
over the full range and make sure we free partial allocations
when an error happens partway through initialization.
Sebastian Dröge [Sun, 6 Apr 2014 09:57:12 +0000 (11:57 +0200)]
glimagesink: Create GL context and set up window from the streaming thread
gst_gl_context_create() might need to dispatch some operations to the
application's main thread, and calling this in the change_state function
can cause deadlocks.
Tim-Philipp Müller [Wed, 2 Apr 2014 12:48:02 +0000 (13:48 +0100)]
tests: fix gl unit tests for recent API changes
Matthew Waters [Wed, 2 Apr 2014 12:05:47 +0000 (23:05 +1100)]
gl: pass video info's by reference
Matthew Waters [Wed, 2 Apr 2014 12:05:11 +0000 (23:05 +1100)]
gl: fix array initialization
Matthew Waters [Wed, 2 Apr 2014 11:54:55 +0000 (22:54 +1100)]
glbumper: remove redundant check
Matthew Waters [Wed, 2 Apr 2014 11:53:10 +0000 (22:53 +1100)]
gl/glx: use the context's display rather than asking for the window's
Matthew Waters [Wed, 2 Apr 2014 11:43:41 +0000 (22:43 +1100)]
gl: fix assignment of temporary variables
Matthew Waters [Wed, 2 Apr 2014 11:42:50 +0000 (22:42 +1100)]
gl: avoid adding a NULL pool to propose allocation
Matthew Waters [Tue, 1 Apr 2014 10:48:26 +0000 (21:48 +1100)]
gl: fix detection of extensions with GL versions < 3
Mesa, for example returns valid pointers for glGetIntegerv and
glGetStringi even if the gl version is less than that required for
both those functions to supposedly exist.
https://bugzilla.gnome.org/show_bug.cgi?id=727324
Tim-Philipp Müller [Fri, 28 Mar 2014 20:22:43 +0000 (20:22 +0000)]
gl: egl: fix distcheck and out of source build
Rico Tzschichholz [Fri, 28 Mar 2014 19:47:36 +0000 (20:47 +0100)]
build: Fix make dist
Matthew Waters [Tue, 25 Mar 2014 04:40:14 +0000 (15:40 +1100)]
gl: fix out-of-source builds pt2
21b897de2f762bee504cbc007fd108148ee5ae24 did this for x11 and wayland.
Do it for the other backends as well.
Julien Isorce [Wed, 26 Mar 2014 23:13:53 +0000 (23:13 +0000)]
gl: only set CAPS_FEATURE_MEMORY_EGL_IMAGE on egl platform
Julien Isorce [Wed, 26 Mar 2014 19:17:03 +0000 (19:17 +0000)]
gl: let the user includes itself our egl headers if needed
Forgot to address this change.
https://bugzilla.gnome.org/show_bug.cgi?id=703343
Julien Isorce [Sat, 22 Mar 2014 22:01:49 +0000 (22:01 +0000)]
gl: add EGLImage support
* picked from old libgstegl:
- GstEGLImageMemory
- GstEGLImageAllocator
- last_buffer management from removed GstEGLImageBufferPool
* add-ons:
- GstEGLImageMemory now old a reference on GstGLContext
so that it can delete the EGLImage and its gltexture source
while having the associated gl context being current.
- add EGLImage support for GstVideoGLTextureUploadMeta which
mainly call EGLImageTargetTexture2D
- GstGLBufferPool now supports GstEGLImageAllocator
- glimagesink / glfilters / etc.. now propose GstEGLImageAllocator
to upstream
https://bugzilla.gnome.org/show_bug.cgi?id=703343
Julien Isorce [Mon, 24 Mar 2014 12:12:42 +0000 (12:12 +0000)]
gl: deploy egl headers in gst/gl/egl instead of gst/gl
https://bugzilla.gnome.org/show_bug.cgi?id=703343
Julien Isorce [Mon, 24 Mar 2014 12:10:00 +0000 (12:10 +0000)]
gl: remove commented and unsued code in x11 Makefile.am
https://bugzilla.gnome.org/show_bug.cgi?id=703343
Julien Isorce [Mon, 24 Mar 2014 12:04:08 +0000 (12:04 +0000)]
gl: fix crash if _build_extension_string is not called
On GLES2 then (gl->GetIntegerv && gl->GetStringi) is false
regression introduced by
cc6df204e2f58fffda5cbe90f3450aeba95889c4
https://bugzilla.gnome.org/show_bug.cgi?id=703343
Gwenole Beauchesne [Mon, 24 Mar 2014 16:33:00 +0000 (17:33 +0100)]
gl: fix out-of-source builds.
Always use the locally generated <gst/gl/gstglconfig.h> file.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Matthew Waters [Mon, 24 Mar 2014 13:50:30 +0000 (00:50 +1100)]
gl/download: add support for the bt709 color matrix
Matthew Waters [Mon, 24 Mar 2014 13:34:13 +0000 (00:34 +1100)]
gl/upload: add support for the bt709 color matrix
Matthew Waters [Mon, 24 Mar 2014 12:09:20 +0000 (23:09 +1100)]
gl: remove explicit reference to X_CFLAGS
They are in GL_CFLAGS if required
Matthew Waters [Sun, 23 Mar 2014 12:43:28 +0000 (23:43 +1100)]
gl/upload: remove the legacy GL 1.x upload path
uploading requires shaders and fbos available in GL2.
Julien Isorce [Sun, 23 Mar 2014 11:02:08 +0000 (11:02 +0000)]
gl: fallback to glGetString if GL_NUM_EXTENSIONS fails
Need it on MacOSX 10.7.5
Matthew Waters [Sat, 22 Mar 2014 14:02:03 +0000 (01:02 +1100)]
gl: and update the Makefile
Matthew Waters [Sat, 22 Mar 2014 13:38:16 +0000 (00:38 +1100)]
gl: reorganize the extension headers by function rather than api
Matthew Waters [Fri, 21 Mar 2014 09:29:49 +0000 (20:29 +1100)]
gl/win32: use the correct include and gst-indent
Wang Xin-yu (王昕宇) [Tue, 18 Mar 2014 01:16:25 +0000 (09:16 +0800)]
gl: use wglCreateContextAttribsARB to create share context
https://bugzilla.gnome.org/show_bug.cgi?id=726494
Matthew Waters [Mon, 17 Mar 2014 19:43:35 +0000 (20:43 +0100)]
gl/mixer: fix download check for failure
Matthew Waters [Mon, 17 Mar 2014 19:40:51 +0000 (20:40 +0100)]
gl: silence a critical if upstream does not provide us with meta params
Julien Isorce [Wed, 19 Mar 2014 13:48:10 +0000 (13:48 +0000)]
gl: silence warnings building for RPI related to 'vcos_*'
Similar than
1190a79b199584cfc4dd62c474531c32cfbba425
Julien Isorce [Wed, 19 Mar 2014 13:45:35 +0000 (13:45 +0000)]
gl: keep only one occurence of '#include <EGL/egl.h>'
To simply maintainance if we need to put specific includes around it.
Руслан Ижбулатов [Tue, 18 Mar 2014 00:08:50 +0000 (00:08 +0000)]
gl: fix the use of always-defined macros
After
2a0f0399ae226089c2ba07b1b904741b856f37af GST_GL_* macros are always
defined to 0 or 1. Don't use #ifdef ... or #if defined() on them.
https://bugzilla.gnome.org/show_bug.cgi?id=726591
Matthew Waters [Mon, 17 Mar 2014 14:16:13 +0000 (15:16 +0100)]
gl: add GModule libs for win32
Matthew Waters [Mon, 17 Mar 2014 14:06:25 +0000 (15:06 +0100)]
gl: only link against gstegl if we are using egl
Assuming if we are building egl that the egl library is built
Matthew Waters [Mon, 17 Mar 2014 13:37:13 +0000 (14:37 +0100)]
gl: add path of the gstegl library
Temporary until we merge the two libraries
Matthew Waters [Mon, 17 Mar 2014 13:26:31 +0000 (14:26 +0100)]
Revert "gl: add dep on gstegl"
It was already in _LIBADD
This reverts commit
b10a3530804335fc3b9494603ef78ce9417c3bc8.
Matthew Waters [Mon, 17 Mar 2014 13:11:14 +0000 (14:11 +0100)]
gl: add dep on gstegl
Temporary until we merge the two libraries
Edward Hervey [Mon, 17 Mar 2014 13:06:22 +0000 (14:06 +0100)]
gl/cocoa: Fix debug statements and platform
Edward Hervey [Mon, 17 Mar 2014 11:04:40 +0000 (12:04 +0100)]
gl: Fix static build with objective-C
--tag=CC is needed for static build
Matthew Waters [Mon, 17 Mar 2014 09:56:39 +0000 (10:56 +0100)]
gl: Add EGLDisplay display subclass
Matthew Waters [Mon, 17 Mar 2014 09:44:32 +0000 (10:44 +0100)]
gl/window: add a dummy window class
Effective for the case where we have a platform that does not
require a native window. We require a mainloop to run the GL
commands which is currently operated by GstGLWindow.
Matthew Waters [Mon, 17 Mar 2014 07:10:50 +0000 (08:10 +0100)]
gl: fix undeclared symbol when building without GST_DEBUG
Matthew Waters [Sun, 16 Mar 2014 17:55:03 +0000 (18:55 +0100)]
gl: fix a double unref of the query when building without X
Matthew Waters [Sun, 16 Mar 2014 16:21:38 +0000 (17:21 +0100)]
gl: silence a compiler warning about missing prototypes
Matthew Waters [Fri, 14 Mar 2014 18:03:36 +0000 (19:03 +0100)]
gl/utils: add x11 GstContext handling
https://bugzilla.gnome.org/show_bug.cgi?id=726360
Matthew Waters [Sun, 16 Mar 2014 14:34:11 +0000 (15:34 +0100)]
gl: define GL_NUM_EXTENSIONS if not defined
Matthew Waters [Sun, 16 Mar 2014 14:06:37 +0000 (15:06 +0100)]
gl: silence all the compiler warnings
Matthew Waters [Sun, 16 Mar 2014 10:23:16 +0000 (11:23 +0100)]
move gl elements to ext subdirectory
Matthew Waters [Sat, 15 Mar 2014 14:55:46 +0000 (15:55 +0100)]
[906/906] filter: warn about trying to share with multiple contexts at once
Matthew Waters [Sat, 15 Mar 2014 13:06:40 +0000 (14:06 +0100)]
[905/906] Add GL context sharing support for non-gstgl elements
Matthew Waters [Sat, 15 Mar 2014 12:55:39 +0000 (13:55 +0100)]
[904/906] mixer: ask for display handles on pad activation
Matthew Waters [Sat, 15 Mar 2014 12:51:44 +0000 (13:51 +0100)]
[903/906] api: add GstGLPlatform to/from string
Matthew Waters [Sat, 15 Mar 2014 10:25:43 +0000 (11:25 +0100)]
[902/906] context: implement glGetStringi handling for GL core contexts/GLES3
Matthew Waters [Wed, 12 Mar 2014 12:46:58 +0000 (23:46 +1100)]
[901/906] glx: use the display handle from the global display
Intel drivers require the display handles be the same for context
sharing to occur. Also solves some cases of use after free of the
display when integrating with gstreamer-vaapi.
See https://bugs.freedesktop.org/show_bug.cgi?id=41736 for the intel bug.
Matthew Waters [Wed, 12 Mar 2014 12:44:28 +0000 (23:44 +1100)]
[900/906] tests/gstglcontext: reduce the number of frames displayed
Was causing timeouts on intel hardware due to vsync handling.
Matthew Waters [Wed, 12 Mar 2014 12:43:12 +0000 (23:43 +1100)]
[899/906] egl: warn if we resort to display handles from the window
Matthew Waters [Tue, 4 Mar 2014 12:28:01 +0000 (23:28 +1100)]
[897/906] api: plugin a small memory leak
Found by adrien.schwartzentruber@gmail.com
Matthew Waters [Sun, 2 Mar 2014 00:48:54 +0000 (11:48 +1100)]
[896/906] utils: use the vtable for deleting the texture
Matthew Waters [Fri, 28 Feb 2014 06:42:51 +0000 (17:42 +1100)]
[895/906] context: call window_class->close last
We should destroy resources before closing the display connection
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725048
Wang Xin-yu (王昕宇) [Tue, 25 Feb 2014 01:27:26 +0000 (09:27 +0800)]
[894/906] gl: add missing G_BEGIN_DECLS/G_END_DECLS
https://bugzilla.gnome.org/show_bug.cgi?id=725111
Matthew Waters [Mon, 24 Feb 2014 12:55:58 +0000 (23:55 +1100)]
[893/906] x11: close both of the display's we use
(the comment doesn't seem to apply anymore)
https://bugzilla.gnome.org/show_bug.cgi?id=725048
Matthew Waters [Sun, 23 Feb 2014 00:44:51 +0000 (11:44 +1100)]
[892/906] silence a compiler warning on older gcc versions (4.6)
Matthew Waters [Mon, 10 Feb 2014 21:57:29 +0000 (08:57 +1100)]
[891/906] context: add support for wrapping external contexts
Matthew Waters [Wed, 27 Nov 2013 06:52:46 +0000 (17:52 +1100)]
[890/906] x11: add display subclass
GstGLDisplayX11 holds the display connection and name. Each thread requires
it's own X11 Display connection (initialised from name) due to the fact that
we do not want to call XInitThreads(). Doing so would result in segfaults
when integrating with GUI toolkits Gtk, Qt, etc.
The Display connection is for OpenGL platforms where a constant display is
required in order to share contexts (egl). In the case of a wrapped context
(added later), we do not have GstGLWindow to retreive the display from so a
'master' connection is used instead.