Matthew Waters [Tue, 20 Oct 2015 17:44:50 +0000 (04:44 +1100)]
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)
Matthew Waters [Thu, 15 Oct 2015 20:03:06 +0000 (07:03 +1100)]
glimagesink: create a context in NULL_READY
So that it's possible for decoders et al. to request the OpenGL context
in their READY_PAUSED transition with decodebin/playbin.
Matthew Waters [Tue, 20 Oct 2015 16:59:33 +0000 (03:59 +1100)]
gl: remove unneeded shader variable parsing code
Matthew Waters [Tue, 20 Oct 2015 16:23:30 +0000 (03:23 +1100)]
glshaderelement: implement setting arbitrary uniforms
Currently float and int are supported by default. vec2, vec3, vec4
and mat4 are supported if graphene is used. Of course if one wants
to set custom uniforms they can also be set using the create-shader
signal.
Matthew Waters [Mon, 19 Oct 2015 04:15:30 +0000 (15:15 +1100)]
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'
Matthew Waters [Sat, 17 Oct 2015 04:26:46 +0000 (15:26 +1100)]
glshaderelement: implement on-demand create-shader signalling
One may not have an GstGLContext available or current in the thread where one
would need to update the shader. Support this by signalling create-shader
whenever the one-shot 'update-shader' is set to TRUE.
Matthew Waters [Fri, 16 Oct 2015 15:42:47 +0000 (02:42 +1100)]
gl/calayer: don't leak a gl shader object
We will always overwrite the ca_sink->redisplay_shader without freeing the
object.
Matthew Waters [Thu, 15 Oct 2015 15:57:19 +0000 (02:57 +1100)]
glslstage: add brackets around pointer dereference referencing an array
While technically, i is always 0 and *vertex_sources[i++] is equivalant
to (*vertex_sources)[i++]. Be future-proof in the case of code
moves/changes/etc.
CID 1327406
Matthew Waters [Thu, 15 Oct 2015 12:47:11 +0000 (23:47 +1100)]
gl/caopengllayersink: port to new GstGLShader API
fixes build error:
"undefined symbols for architecture:
gst_gl_shader_compile_with_default_vf_and_check"
Matthew Waters [Thu, 15 Oct 2015 11:42:26 +0000 (22:42 +1100)]
gl/tests: port glcontext test to opengl
Now uses vao's and vbo's when possible like the rest of the gstgl library.
Matthew Waters [Fri, 4 Sep 2015 06:16:51 +0000 (16:16 +1000)]
glshader: port element to GstGLSLStage
- Provide a shader property to set the full shader pipeline
- Provide vertex and fragment properties for just providing simple
shader sources.
Matthew Waters [Fri, 4 Sep 2015 06:02:32 +0000 (16:02 +1000)]
glshader: port to using GstGLSLStage objects for string management
A GstGLShader is now simply a collection of stages that are
compiled and linked together into a program. The uniform/attribute
interface has remained the same.
Matthew Waters [Fri, 4 Sep 2015 04:36:47 +0000 (14:36 +1000)]
glsl: add a shader stage object GstGLSLStage
Represents a stage (vertex, geometry, fragment, etc) in the shader
pipeline.
Matthew Waters [Thu, 3 Sep 2015 14:09:09 +0000 (00:09 +1000)]
gl/shader/variables: include generic gl.h header
Otherwise we may miss some forward declarations
Fixes build error: undefined reference to GstGLSLStage
Matthew Waters [Thu, 20 Aug 2015 05:11:06 +0000 (15:11 +1000)]
gl: add some GLSL utility functions
Specifically parsing/setting GLSL versions and the shader related
function table.
Guillaume Desmottes [Tue, 13 Oct 2015 10:40:04 +0000 (12:40 +0200)]
gl: fix leak in gst_gl_insert_debug_marker()
The string allocated by g_vasprintf() was leaked.
Reproduced using the
validate.file.compositor.simple.play_15s.synchronized validate scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=756492
Nirbheek Chauhan [Tue, 6 Oct 2015 15:53:11 +0000 (21:23 +0530)]
glvideomixer: Proxy the ignore-eos videoaggregator property as well
Identical to how the z-order property is proxied
Vineeth TM [Thu, 20 Aug 2015 07:03:29 +0000 (16:03 +0900)]
gstreamer: bad: Fix memory leaks when context parse fails
When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.
And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.
https://bugzilla.gnome.org/show_bug.cgi?id=753854
Matthew Waters [Thu, 1 Oct 2015 15:01:42 +0000 (01:01 +1000)]
gl: move debugging related functions to their own file
Matthew Waters [Thu, 1 Oct 2015 13:20:19 +0000 (23:20 +1000)]
glcolorscale: use glbasefilter vfuncs
Uses less code \o/
Fixes legacy opengl rendering \o/
Antoine Jacoutot [Wed, 30 Sep 2015 06:36:15 +0000 (08:36 +0200)]
gl: Pass GL_CFLAGS to g-ir-scanner
This unbreaks building when some headers are under a non-standard path.
e.g. /usr/X11R6/include as on OpenBSD.
https://bugzilla.gnome.org/show_bug.cgi?id=755850
Matthew Waters [Wed, 30 Sep 2015 05:17:38 +0000 (15:17 +1000)]
glcontext: fixup strstr lengths so we don't overrun
Matthew Waters [Wed, 30 Sep 2015 03:31:50 +0000 (13:31 +1000)]
glupload: remove useless release_buffer
It's a leftover from when we weren't outputting GstBuffer's and
returning raw texture id's.
Matthew Waters [Tue, 29 Sep 2015 15:53:53 +0000 (01:53 +1000)]
glutils: use gst_element_set_context for setting display/other_context
1. So we get tracking inside GstElement properly when e.g. adding to a bin
2. Removes redundant code. Now only one place where
GstContext->GstGLDisplay/GstGLContext transformation occurs
3. Fixes a memory leak in the process
4. Make the retrieval of debug categories thread safe
Matthew Waters [Thu, 17 Sep 2015 06:59:16 +0000 (16:59 +1000)]
gl/eagl: use the default GL context debug category
Matthew Waters [Mon, 28 Sep 2015 12:31:09 +0000 (22:31 +1000)]
gl: set the context on the element on a context query
Otherwise it's possible to lose the context information if the
context is only propagated through queries.
Matthew Waters [Mon, 28 Sep 2015 12:20:29 +0000 (22:20 +1000)]
gl: chain up to the parent class for GstElement::set_context
https://bugzilla.gnome.org/show_bug.cgi?id=705579
Matthew Waters [Mon, 31 Aug 2015 09:21:54 +0000 (19:21 +1000)]
gl: sprinkle some debug markers to ease debugging
Matthew Waters [Mon, 31 Aug 2015 09:18:23 +0000 (19:18 +1000)]
gl/utils: add a function to insert a debug marker
These markers are visible in tools that record the GL function calls
such as apitrace, et al.
Makes it easier to match up GL draw commands with specific elements.
Matthew Waters [Mon, 31 Aug 2015 09:17:21 +0000 (19:17 +1000)]
gl: add some debugging prototypes
Matthew Waters [Sat, 26 Sep 2015 09:19:50 +0000 (19:19 +1000)]
glwindow: remove unused draw_unlocked function
The functionality is provided by draw anyway and is leftover from
X11's specific threading requirements that no longer apply.
Julien Isorce [Fri, 25 Sep 2015 09:32:00 +0000 (10:32 +0100)]
glfilter: use GL_ELEMENT_ARRAY_BUFFER for vbo indices
Fixes this error with chromium gpu process:
GL_INVALID_OPERATION, glBindBuffer: buffer bound to more than 1 target
https://bugzilla.gnome.org/show_bug.cgi?id=755618
Julien Isorce [Thu, 17 Sep 2015 13:17:09 +0000 (14:17 +0100)]
glmemory: fix texture leak in _gl_mem_copy
https://bugzilla.gnome.org/show_bug.cgi?id=755456
Matthew Waters [Mon, 21 Sep 2015 08:04:40 +0000 (08:04 +0000)]
gl/dispmanx: fix rendering with recent resize state tracking
557ca6fda5f831be4aba5819bf7b30b296e575cd didn't change to the
necessary gst_gl_window_resize() call for the dispmanx backend.
Jan Schmidt [Thu, 17 Sep 2015 14:20:13 +0000 (00:20 +1000)]
Don't throw compiler warnings with G_DISABLE_ASSERT
Disable code that warns about unused variables when G_DISABLE_ASSERT
is defined, as it is in tarballs and pre-releases.
Matthew Waters [Thu, 17 Sep 2015 12:17:24 +0000 (22:17 +1000)]
gl/caopengllayer: fix non-existent selector warning
557ca6fda5f831be4aba5819bf7b30b296e575cd introduced the queueResize
call without implementing the selector
Jan Schmidt [Thu, 17 Sep 2015 11:31:39 +0000 (21:31 +1000)]
glwindow: Fix g_return_val_if_fail in a void function
Matthew Waters [Thu, 17 Sep 2015 07:22:47 +0000 (17:22 +1000)]
glimagesink: request a resize on caps/3d mode changes
Fixes incorrect aspect ratio on OSX when changing caps or the 3d
output mode.
https://bugzilla.gnome.org/show_bug.cgi?id=755111
Matthew Waters [Thu, 17 Sep 2015 07:06:37 +0000 (17:06 +1000)]
glwindow: add API to request a resize event on the next draw
- glimagesink needs to be able to resize the viewport on aspect ratio
changes resulting from either caps changes or 3d output mode changes.
- Performing a glViewport outside the GstGLWindow::resize callback
will not have the winsys' stack of viewports required to correctly
place the output frame.
Provide a function to request a resize on the next draw event from the
winsys.
Also track size changes inside the base GstGLWindow class rather
than in each subclass.
https://bugzilla.gnome.org/show_bug.cgi?id=755111
Matthew Waters [Thu, 17 Sep 2015 06:55:11 +0000 (16:55 +1000)]
gl/uploadelement: fail earlier if we could not upload the buffer
Matthew Waters [Thu, 17 Sep 2015 06:05:21 +0000 (16:05 +1000)]
gl/x11: store the correct dimension from the resize events
small typo s/width/height/
Vineeth T M [Thu, 17 Sep 2015 04:35:02 +0000 (13:35 +0900)]
gl: Fix GError leaks during failures
https://bugzilla.gnome.org/show_bug.cgi?id=755140
Matthew Waters [Wed, 16 Sep 2015 07:28:05 +0000 (17:28 +1000)]
glimagesink: avoid updating the viewport in the draw loop
Fixes flashes/incorrect aspect ratio when resizing glimagesink on OSX.
Tim-Philipp Müller [Tue, 15 Sep 2015 10:34:12 +0000 (11:34 +0100)]
gl: bufferpool take into account video stride alignment requirements
when allocating memory. Fixes crashes with avdec_h265 in the AVX2
code path which requires 32-byte stride alignment, but the
GstAllocationParams only specified a 16-byte alignment.
https://bugzilla.gnome.org/show_bug.cgi?id=754120
Matthew Waters [Wed, 9 Sep 2015 13:53:57 +0000 (23:53 +1000)]
gl/api: use public rather than private define
HAVE_IOS is only defined for the build of this module so
attempting to use gstgl in iOS would result in incorrect GL
includes.
Use GST_GL_HAVE_PLATFORM_EAGL instead for choosing the iOS GL
header.
Sebastian Dröge [Wed, 9 Sep 2015 06:33:01 +0000 (09:33 +0300)]
gl/eagl: Also unbind renderbuffer after setting up framebuffer
https://bugzilla.gnome.org/show_bug.cgi?id=754757
Sebastian Dröge [Wed, 9 Sep 2015 06:27:17 +0000 (09:27 +0300)]
gl/eagl: Don't make context uncurrent just to make it current again in the next line
Also binding the framebuffer again is unnecessary then as it was just bound a
few lines before while the context was current.
https://bugzilla.gnome.org/show_bug.cgi?id=754757
Tim-Philipp Müller [Mon, 31 Aug 2015 17:06:31 +0000 (18:06 +0100)]
gtk, qt, gl: fix typo in debug and error messages
Nicolas Dufresne [Mon, 24 Aug 2015 23:47:01 +0000 (19:47 -0400)]
glupload: Use base class metadata copy function
This allow properly copying selected meta, like the composition
overlay. Note that output buffer need to be readable, but GlUpload
keeps a ref. For now, simply drop GlUpload ref after perform,
leaving that ref has no purpose. The method shall be removed
in the future.
https://bugzilla.gnome.org/show_bug.cgi?id=754047
Nicolas Dufresne [Mon, 24 Aug 2015 23:28:10 +0000 (19:28 -0400)]
glcolorconvert: Use base transform metadata copy
Use base class default method instead of only copying flags and
timestamp. This way, selected meta's like compostion overlay will
be passed downstream as expected.
https://bugzilla.gnome.org/show_bug.cgi?id=754047
Sebastian Dröge [Tue, 25 Aug 2015 07:09:14 +0000 (10:09 +0300)]
gl/eagl: Unref context after setting a window handle
gst_gl_window_get_context() returns a new reference.
Hopefully fixes https://bugzilla.gnome.org/show_bug.cgi?id=753758
Nicolas Dufresne [Fri, 21 Aug 2015 20:42:18 +0000 (13:42 -0700)]
glimagesink: update display size before sending event
This is minor issue, as the reconfigure event is asynchronous.
Basically, update width/height before sending the event.
Nicolas Dufresne [Fri, 21 Aug 2015 00:27:34 +0000 (17:27 -0700)]
gl: Let base transform relay the meta api for us
During allocation query, when this element is not passthrough, it must
relay the overlay compostion meta and it's parameters. Fortunatly, base
transform can do this for us.
https://bugzilla.gnome.org/show_bug.cgi?id=753850
Justin Kim [Fri, 21 Aug 2015 05:07:32 +0000 (14:07 +0900)]
glcontext: add specific error message when missing GL_SHADING_LANGUAGE_VERSION
GL_SHADING_LANGUAGE_VERSION was introduced since ES 2.0, but in some
android emulator doesn't support this feature. To prevent confusion for
developer, the error message need to be more clear.
https://bugzilla.gnome.org/show_bug.cgi?id=753905
hoonhee.lee [Fri, 21 Aug 2015 07:31:41 +0000 (16:31 +0900)]
caopengllayersink: Don't chain up to parent's query handling twice for DRAIN query
https://bugzilla.gnome.org/show_bug.cgi?id=753913
Matthew Waters [Mon, 17 Aug 2015 16:35:58 +0000 (18:35 +0200)]
glbasefilter: only call gl_{stop,start} if the context changed
Removes the redundant GL object creation/deletion on every
decide_allocation call which is being called for every caps change.
Thus reduces the required GL state changes on reconfigure events
which are being sent by glimagesink/xvimagesink
Nicolas Dufresne [Sun, 16 Aug 2015 16:13:12 +0000 (18:13 +0200)]
glupload: Recalculate offset and size in raw upload
As we only expose the mapped portion of the frame into the GL
memory object (and not the original padding) we need to
re-calculate the size and offset.
Edward Hervey [Fri, 14 Aug 2015 10:25:19 +0000 (12:25 +0200)]
checks: Ensure thread-safe libX11/GL when running tests
Nicolas Dufresne [Sat, 15 Aug 2015 13:02:33 +0000 (15:02 +0200)]
gloverlaycompositor: Also disable the blend when done
Nicolas Dufresne [Sat, 15 Aug 2015 12:31:15 +0000 (14:31 +0200)]
glsink: Enable sync meta on pools we offer
As the upload is asynchronous, we need to enable the sync meta to
gain correct rendering. The buffer pool receiver don't know about
that.
Nicolas Dufresne [Fri, 14 Aug 2015 15:36:48 +0000 (17:36 +0200)]
glimagesink: Move overlay rendering after video rendering
This is mostly cosmetic, but heoretically it reduces the amount of
required object in the context at one point. It also avoids potential
conflicts.
Sebastian Dröge [Sat, 15 Aug 2015 08:03:07 +0000 (10:03 +0200)]
opengl: Change GLclampd to double
GLclampd does not exist on GLES, only desktop GL.
Martin Kelly [Fri, 14 Aug 2015 17:32:14 +0000 (10:32 -0700)]
opengl: add missing ClearDepth prototype
The ClearDepth call is missing.
https://bugzilla.gnome.org/show_bug.cgi?id=753639
Matthew Waters [Tue, 11 Aug 2015 22:20:10 +0000 (00:20 +0200)]
glimagesink: take into account non 1/1 par for navigation
The current code was ignoring the par/dar aspect when transforming
from window coordinates to stream coordinates resulting in incorrect
coordinates being sent upstream in the navigation events.
Nicolas Dufresne [Mon, 10 Aug 2015 18:48:58 +0000 (14:48 -0400)]
gl: Add opengl_version.h to the list of sources
Adding this private header to the list of sources. We don't want to make
this header public, but we need it in the list of sources otherwise it
won't be included in the tarball. This fixes make distcheck.
This regression was introduced by commit
1a6fe3db
Matthew Waters [Mon, 10 Aug 2015 14:38:32 +0000 (16:38 +0200)]
gl: use gles2 shaders everywhere
This effectively limits a glfilter subclass to be > GL(ES) 2.0.
rather than a possible GL 1.4.
Matthew Waters [Mon, 10 Aug 2015 13:44:54 +0000 (15:44 +0200)]
glcontext/wgl: implement gl3 core profile context selection
Lubosz Sarnecki [Sat, 28 Feb 2015 00:07:44 +0000 (01:07 +0100)]
gltransformation: implement pivot point for rotation and scale
https://bugzilla.gnome.org/show_bug.cgi?id=744763
Add a pivot vector for setting the origin of rotations and scales.
With the pivot point the rotation and scale operations can have
different origins. This adds the ability to rotate around different points.
Currently the default (0, 0) pivot point is possible,
a rotation around the center, and zooming into and out of the center.
With an pivot point this is optional.
I defined the following image coordinates for the pivot point:
(-1,1) ------------------------- (1,1)
| |
| |
| |
| (0,0) |
| |
| |
| |
(-1,-1) ------------------------- (1,-1)
Example:
Rotate the video at the bottom left corner
gst-launch-1.0 videotestsrc \
! gltransformation \
scale-x=0.5 \
scale-y=0.5 \
rotation-z=25.0 \
pivot-x=-1.0 \
pivot-y=-1.0 \
! glimagesink
The pivot-z option defines the pivot point in 3D space.
This only affects rotation, since we have no Z data to scale.
With this option a video can be rotated around a point in 3D space.
Example:
Rotate around point behind the video:
gst-launch-1.0 videotestsrc \
! gltransformation \
rotation-x=10.0 \
pivot-z=-4.0 \
! glimagesink
Nicolas Dufresne [Sat, 8 Aug 2015 18:45:42 +0000 (14:45 -0400)]
gloverlaycompositor: Add shader to convert BGRA/ARGB -> RGBA
Depending on the bytes order we will get BGRA (little) and ARGB (big)
from the composition overlay buffer while our GL code expects RGBA. Add
a fragment shader that do this conversion.
https://bugzilla.gnome.org/show_bug.cgi?id=752842
Matthew Waters [Sat, 8 Aug 2015 15:22:05 +0000 (17:22 +0200)]
gl/syncmeta: implement synchronisation without glFenceSync
Uses glFinish as that's the best we have for lesser OpenGL versions.
Matthew Waters [Sat, 8 Aug 2015 13:30:43 +0000 (15:30 +0200)]
tests/glcontext: fix INVALID_ENUM GL error in test
Matthew Waters [Sat, 8 Aug 2015 13:21:03 +0000 (15:21 +0200)]
context/glx: only use glXCreateContextAttribs for OpenGL 3 contexts
mesa for example when creating a GL 3.1 compatibility context
overrides our context profile selection to create a core context.
Matthew Waters [Mon, 3 Aug 2015 09:48:16 +0000 (19:48 +1000)]
glvideomixer: swap control binding proxy
The ref_object and object parameters were the wrong way around.
For the typical use case where an application is setting a
GstControlBinding on the returned ghost pad:
1. our control binding would be removed when the new one was set
2. sync_values calls were not being forwarded from the internal
pad to the ghost pad.
If an application attempts to perform other control binding
operations (get_* family of functions) on the internal pad, they
will also be forwarded to the ghost pad where a possible
GstControlBinding will provide the necessary values.
Luis de Bethencourt [Thu, 30 Jul 2015 10:12:21 +0000 (11:12 +0100)]
gstglfilterbin: remove unused variable
res is set multiple times but never used or returned. Removing it.
Sebastian Dröge [Wed, 29 Jul 2015 18:10:57 +0000 (19:10 +0100)]
glupload: Remove debug output from gst_gl_upload_transform_caps()
We can't know if the GstGLUpload type is initialized at this point already,
and thus our debug category might not be initialized yet... and cause an
assertion here.
As we don't print debug output for any of the other transform functions, let's
defer this problem for now.
Luis de Bethencourt [Wed, 29 Jul 2015 16:48:58 +0000 (17:48 +0100)]
glstereomix: remove redundant initialization
v is initialized in the for loop init, no need to do it twice. Removing
first initialization.
Nicolas Dufresne [Tue, 28 Jul 2015 15:20:40 +0000 (11:20 -0400)]
glcolorconvert-test: Test notify function for setup_wrapped
gst_gl_memory_setup_wrapped() now takes a destroy notify function. This
destroy notify is called to track the memory life time, hence will
notify each time a memory get destroyed. This test check that the
callback count is correct.
Nicolas Dufresne [Tue, 28 Jul 2015 15:06:43 +0000 (11:06 -0400)]
glcolorconvert-test: Fix build
Nicolas Dufresne [Tue, 28 Jul 2015 12:59:24 +0000 (08:59 -0400)]
glupload: Add fixme about using bufferpool for raw
http://bugzilla.gnome.org/show_bug.cgi?id=752937
Nicolas Dufresne [Mon, 27 Jul 2015 20:58:22 +0000 (16:58 -0400)]
glupload: Keep input frame mapped as long as needed
When performing a raw upload, we need to keep the raw data mapped as
long as needed.
https://bugzilla.gnome.org/show_bug.cgi?id=752937
Nicolas Dufresne [Mon, 27 Jul 2015 19:58:10 +0000 (15:58 -0400)]
Revert "glupload: memcpy on raw data upload"
This reverts commit
82c0189b2842e8729e82a4e73491dffc977bc7c2.
https://bugzilla.gnome.org/show_bug.cgi?id=752937
Matthew Waters [Mon, 27 Jul 2015 11:54:27 +0000 (21:54 +1000)]
glcontext/wgl: fix defenition of gst_gl_context_wgl_new
gstglcontext_wgl.c: In function 'gst_gl_context_wgl_new':
gstglcontext_wgl.c:83:40: error: 'display' undeclared (first use in this function)
Matthew Waters [Mon, 27 Jul 2015 10:03:05 +0000 (20:03 +1000)]
gl/cocoa: fix definition of gst_gl_context_new
gstglcontext_cocoa.m:75:1: error: conflicting types for 'gst_gl_context_cocoa_new'
Matthew Waters [Mon, 27 Jul 2015 10:00:47 +0000 (20:00 +1000)]
gl/win32: fix definition of gst_gl_window_win32_new
Matthew Waters [Mon, 27 Jul 2015 08:21:19 +0000 (18:21 +1000)]
wayland: fail window open if the display is the correct type
Errors out cleanly if a wayland compositor is not running
Matthew Waters [Fri, 24 Jul 2015 07:00:27 +0000 (17:00 +1000)]
glwindow: pass display to implementation's _new()
So they have to opportunity to fail if they cannot handle the
display connection.
https://bugzilla.gnome.org/show_bug.cgi?id=752743
Matthew Waters [Fri, 24 Jul 2015 06:11:38 +0000 (16:11 +1000)]
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
Julien Isorce [Sun, 5 Jul 2015 23:52:06 +0000 (00:52 +0100)]
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
Jan Schmidt [Mon, 27 Jul 2015 06:36:40 +0000 (16:36 +1000)]
glupload: Check that caps contain desired caps features
Use 'contains' checks instead of equality checks on caps features
to allow for uploading when caps also contain GstVideoOverlayComposition
meta.
https://bugzilla.gnome.org/show_bug.cgi?id=752912
Julien Isorce [Sun, 5 Jul 2015 23:45:45 +0000 (00:45 +0100)]
gl: move GL_NUM_EXTENSIONS definition after gl.h
https://bugzilla.gnome.org/show_bug.cgi?id=752743
Julien Isorce [Thu, 23 Jul 2015 22:59:22 +0000 (23:59 +0100)]
caopengllayersink: remove unused label context_creation_error
Build error introduced by commit
5457e55f255518d679b59a170951e299ecd8c5f6
https://bugzilla.gnome.org/show_bug.cgi?id=750310
Tim-Philipp Müller [Thu, 23 Jul 2015 10:18:47 +0000 (11:18 +0100)]
glimagesink: fix allocation meta structure leak
gst_query_add_allocation_meta() does not take ownership
of the structure, for some reason.
CID 1312135
Luis de Bethencourt [Thu, 23 Jul 2015 09:57:26 +0000 (10:57 +0100)]
glupload: fix memory leak
GstCapsFeatures need to be freed with gst_caps_features_free() after use.
CID #1312136, CID #1312136
Olivier Crête [Fri, 3 Jul 2015 00:10:50 +0000 (20:10 -0400)]
glvideomixer: Add GstControlBinding proxy
This is used to proxy GstControlBinding to the pad on the
parent object. This avoid having to sync the values in the proxy pad,
this is too early if you have a queue between the pad and the actual
aggregation operation.
https://bugzilla.gnome.org/show_bug.cgi?id=734060
Nicolas Dufresne [Wed, 22 Jul 2015 20:58:12 +0000 (16:58 -0400)]
glupload: Forward composition meta even without params
When the sink does not know the window size (e.g not created yet)
it will not add any param to the the composition meta. This is no
reason not to forward this meta API. Fixes issue where it could not
attach until we resize the window.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Nicolas Dufresne [Wed, 22 Jul 2015 19:56:34 +0000 (15:56 -0400)]
gloverlaycompositor: Keep memory pointer alive
Keep the composition memory pointer alive while it's being
wrapped inside a GstGLMemory object.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Nicolas Dufresne [Wed, 22 Jul 2015 18:17:42 +0000 (14:17 -0400)]
gloverlaycompositor: Pass buffer stride
The overlay pixel buffer stride was not given back
to the GL image.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Nicolas Dufresne [Wed, 22 Jul 2015 18:05:34 +0000 (14:05 -0400)]
gloverlaycompositor: Hide GstCompsitionOverlay object
This object is only used inside the compositor and does not
need to be expose in libgstgl API.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Nicolas Dufresne [Wed, 22 Jul 2015 17:33:12 +0000 (13:33 -0400)]
libgstgl: Makefile style fix
Nicolas Dufresne [Wed, 22 Jul 2015 03:48:25 +0000 (23:48 -0400)]
composition-overlay: Positions are relative to texture
The coordinate are relative to the texture dimension and not
the window dimension now. There is no need to pass the window
dimension or to update the overlay if the dimension changes.
https://bugzilla.gnome.org/show_bug.cgi?id=745107