platform/upstream/gstreamer.git
6 years agogl: win32: do not call SetParent in release_parent_win_id()
Xavier Claessens [Thu, 21 May 2015 19:30:34 +0000 (15:30 -0400)]
gl: win32: do not call SetParent in release_parent_win_id()

When called from gst_gl_window_win32_close(), internal window
could not exist, and if it does it's going to be destroyed just
after that anyway. Also it causes window_proc() to be called
and crash because it gets a NULL context.

When called from gst_gl_window_win32_set_window_handle() we are
going to set another parent anyway, and it's probably better to
reparent directly instead of passing by a NULL parent which could
cause the internal window to popup briefly.

https://bugzilla.gnome.org/show_bug.cgi?id=749601

6 years agogl: win32: remove unused code
Xavier Claessens [Thu, 21 May 2015 19:30:00 +0000 (15:30 -0400)]
gl: win32: remove unused code

https://bugzilla.gnome.org/show_bug.cgi?id=749601

6 years agogl: win32: fix crash when finalizing GstGLContext
Xavier Claessens [Wed, 20 May 2015 21:09:21 +0000 (17:09 -0400)]
gl: win32: fix crash when finalizing GstGLContext

gst_gl_context_finalize() is calling gst_gl_window_win32_quit()
which was posting a message. But then window_proc takes window's
context and get a NULL.

Now that we've got a GMainLoop we can do like other backends and
simply call g_main_loop_quit().

This also remove duplicated code to release the parent window and
potential crash there because parent_proc could be NULL if we never
created the internal window. That could happen for example if setting
state to READY then setting a window_handle, and go back to NULL state.

https://bugzilla.gnome.org/show_bug.cgi?id=749601

6 years agogl: win32: Fix leaked GstGLContext
Xavier Claessens [Wed, 20 May 2015 21:06:42 +0000 (17:06 -0400)]
gl: win32: Fix leaked GstGLContext

https://bugzilla.gnome.org/show_bug.cgi?id=749601

6 years agogl: win32: set the parent window when creating internal window
Xavier Claessens [Wed, 20 May 2015 19:30:49 +0000 (15:30 -0400)]
gl: win32: set the parent window when creating internal window

When _set_window_handle() was called in READY state, it wasn't
set to the internal window created later.

https://bugzilla.gnome.org/show_bug.cgi?id=749601

6 years agogl: win32: use a GMainContext to dispatch win32 messages
Xavier Claessens [Wed, 20 May 2015 19:29:50 +0000 (15:29 -0400)]
gl: win32: use a GMainContext to dispatch win32 messages

gst_gl_window_win32_send_message_async() could be called before the
internal window is created so we cannot use PostMessage there.

x11 and wayland backends both create a custom GSource for this,
so there is no reason to not do that for win32.

https://bugzilla.gnome.org/show_bug.cgi?id=749601

6 years agoglupload: Don't leak all memory uploaded via raw uploads.
Jan Schmidt [Thu, 21 May 2015 14:27:36 +0000 (00:27 +1000)]
glupload: Don't leak all memory uploaded via raw uploads.

Remove an extra ref missed when switching over to not
reusing output textures

6 years agocompositor/glvideomixer: Don't calculate PAR/DAR with unset GstVideoInfos
Sebastian Dröge [Thu, 21 May 2015 13:24:48 +0000 (16:24 +0300)]
compositor/glvideomixer: Don't calculate PAR/DAR with unset GstVideoInfos

Otherwise we divide by zero.

6 years agoglcontext: require a shader version to initialize.
Matthew Waters [Thu, 21 May 2015 05:05:33 +0000 (15:05 +1000)]
glcontext: require a shader version to initialize.

It's very near pointless to try our GL implementation without shaders.

https://bugzilla.gnome.org/show_bug.cgi?id=749284

6 years agoFix flags order in GL examples for uninstalled build
Jan Schmidt [Tue, 19 May 2015 16:38:53 +0000 (02:38 +1000)]
Fix flags order in GL examples for uninstalled build

6 years agocompositor/glvideomixer: fix up par handling
Matthew Waters [Wed, 20 May 2015 14:56:01 +0000 (00:56 +1000)]
compositor/glvideomixer: fix up par handling

We were using the wrong formula

https://bugzilla.gnome.org/show_bug.cgi?id=749634

6 years agogl: fix crash on windows with intel driver
Xavier Claessens [Tue, 19 May 2015 14:43:28 +0000 (10:43 -0400)]
gl: fix crash on windows with intel driver

https://bugzilla.gnome.org/show_bug.cgi?id=749430

6 years agocaopengllayersink: static const the indices array
Matthew Waters [Tue, 19 May 2015 14:50:37 +0000 (00:50 +1000)]
caopengllayersink: static const the indices array

the contents will never change anyway.

6 years agocaopengllayersink: correctly use the sync meta across multiple contexts
Matthew Waters [Tue, 19 May 2015 14:28:52 +0000 (00:28 +1000)]
caopengllayersink: correctly use the sync meta across multiple contexts

1. Set the sync point after the (possible) upload has occured
2. Wait in the correct GL context (the draw context)

Note: We don't add the GL sync meta to the input buffer as it's not
writable and a copy would be expensive.

Similar to the change with the same name for glimagesink

6 years agocaopengllayersink: update for GL3 element array buffer usage
Matthew Waters [Tue, 19 May 2015 14:28:07 +0000 (00:28 +1000)]
caopengllayersink: update for GL3 element array buffer usage

fixes blank output

6 years agoglimagesink: correctly use the sync meta across multiple contexts
Matthew Waters [Tue, 19 May 2015 06:22:00 +0000 (16:22 +1000)]
glimagesink: correctly use the sync meta across multiple contexts

1. Set the sync point after the (possible) upload has occured
2. Wait in the correct GL context (the draw context)

Note: We don't add the GL sync meta to the input buffer as it's not
writable and a copy would be expensive.

6 years agogl/calayer: provide a current wrapped GstGLContext for callbacks
Matthew Waters [Tue, 19 May 2015 06:19:41 +0000 (16:19 +1000)]
gl/calayer: provide a current wrapped GstGLContext for callbacks

So that the draw and resize callbacks can get the current GstGLContext.

6 years agoglsyncmeta: ensure that the Fence is going to be executed
Matthew Waters [Tue, 19 May 2015 06:14:39 +0000 (16:14 +1000)]
glsyncmeta: ensure that the Fence is going to be executed

Otherwise it could stay client side without being submitted to the GL
server resulting in another context waiting on a Fence that will never
become signalled causing a deadlock.

6 years agoglupload: don't reuse output textures for raw data upload
Matthew Waters [Tue, 19 May 2015 01:47:23 +0000 (11:47 +1000)]
glupload: don't reuse output textures for raw data upload

Causes stale textures to be used further down the chain.

6 years agoglframebuffer: don't clear the framebuffer
Matthew Waters [Tue, 19 May 2015 01:11:02 +0000 (11:11 +1000)]
glframebuffer: don't clear the framebuffer

Breaks attempting to blend with the destination buffer and should be done
explicitly by the callback anyway.

6 years agoglbasefilter: track gl_start/stop correctly
Matthew Waters [Tue, 19 May 2015 01:09:54 +0000 (11:09 +1000)]
glbasefilter: track gl_start/stop correctly

Don't start multiple times without calling gl_stop.

6 years agoglimagesink: free the vertex buffer when done
Matthew Waters [Thu, 14 May 2015 11:21:01 +0000 (21:21 +1000)]
glimagesink: free the vertex buffer when done

fixes a memory leak

6 years agoglcontext/cocoa: implement GL3 core context selection
Matthew Waters [Thu, 22 Jan 2015 07:00:36 +0000 (18:00 +1100)]
glcontext/cocoa: implement GL3 core context selection

6 years agotests/gl: fix typo
Matthew Waters [Thu, 14 May 2015 08:35:35 +0000 (18:35 +1000)]
tests/gl: fix typo

6 years agogl: remove useless gl{En,Dis}able (GL_TEXTURE_*) calls
Matthew Waters [Thu, 14 May 2015 06:42:09 +0000 (16:42 +1000)]
gl: remove useless gl{En,Dis}able (GL_TEXTURE_*) calls

We are using shaders everywhere and so they are not needed

6 years agoglimagesink: cleanup properties
Matthew Waters [Thu, 14 May 2015 05:10:59 +0000 (15:10 +1000)]
glimagesink: cleanup properties

remove unused "display-name"
ensure defaults between the bin/element are the same

6 years agogleffects: only try the GL2 shader init path if we have a GL2 context
Matthew Waters [Thu, 14 May 2015 04:56:30 +0000 (14:56 +1000)]
gleffects: only try the GL2 shader init path if we have a GL2 context

6 years agoglshader: attempt to detect the gles2 inside opengl3 case
Matthew Waters [Tue, 12 May 2015 12:04:26 +0000 (22:04 +1000)]
glshader: attempt to detect the gles2 inside opengl3 case

This is necessary to use gles2 shaders in a GL 3 core context on
OS X which fails without a proper #version being set on the shaders.

6 years agoglshader: remove references to gl3 specific shaders
Matthew Waters [Tue, 12 May 2015 07:55:43 +0000 (17:55 +1000)]
glshader: remove references to gl3 specific shaders

We rely specifically on gles2 shaders being supported by the GL
implementation with GL3 core profile.

6 years agogl: element buffers are part of vao state
Matthew Waters [Fri, 1 May 2015 02:04:28 +0000 (12:04 +1000)]
gl: element buffers are part of vao state

Use them as such.  They are also required for GL3 core profile support
with glDrawElements on OS X.

6 years agoglmemory: properly detect (hopefully) the correct ext_rg/arb_rg variant
Matthew Waters [Thu, 7 May 2015 05:25:10 +0000 (12:25 +0700)]
glmemory: properly detect (hopefully) the correct ext_rg/arb_rg variant

GL_EXT_texture_rg is only valid for GLES2. GLES3 uses similar wording to
the GL_ARB_texture_rg which requires a sized internal format that the
GL_EXT_texture_rg does not require.

https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_rg.txt
https://www.opengl.org/registry/specs/ARB/texture_rg.txt

6 years agoglcontext: propagate the version/extension failure upwards
Matthew Waters [Wed, 13 May 2015 13:55:28 +0000 (23:55 +1000)]
glcontext: propagate the version/extension failure upwards

Otherwise the calling code has no idea that the context failed to
be created fully.

https://bugzilla.gnome.org/show_bug.cgi?id=749284

6 years agogl: don't deadlock on context creation failure
Matthew Waters [Wed, 13 May 2015 13:54:52 +0000 (23:54 +1000)]
gl: don't deadlock on context creation failure

https://bugzilla.gnome.org/show_bug.cgi?id=749284

6 years agoglmixerbin: Don't unref pad templates
Sebastian Dröge [Wed, 13 May 2015 12:42:15 +0000 (15:42 +0300)]
glmixerbin: Don't unref pad templates

Otherwise we unref the reference that is owned by the element class.

6 years agoglvideomixer: implement par handling
Matthew Waters [Wed, 13 May 2015 07:11:55 +0000 (17:11 +1000)]
glvideomixer: implement par handling

We were previously ignoring it completely

6 years agoglvideomixer: don't upload the vertex data every frame
Matthew Waters [Wed, 13 May 2015 07:10:42 +0000 (17:10 +1000)]
glvideomixer: don't upload the vertex data every frame

Add the missing cache tracking statement.

6 years agogluploadelement: Remove uneeded header and defines
Nicolas Dufresne [Tue, 12 May 2015 20:36:58 +0000 (16:36 -0400)]
gluploadelement: Remove uneeded header and defines

6 years agogltestsrc: Use default get_caps implementation
Nicolas Dufresne [Mon, 11 May 2015 19:02:02 +0000 (15:02 -0400)]
gltestsrc: Use default get_caps implementation

The custom code is wrong as it ignores the templates, which leads to
missing fields in the result. Instead, simply use the default get_caps
implementation which does it correctly (get the template, intersect
with filter and return).

https://bugzilla.gnome.org/show_bug.cgi?id=749237

6 years agoglmixer: Implement GstVideoAggregator::find_best_format()
Sebastian Dröge [Mon, 11 May 2015 12:54:52 +0000 (15:54 +0300)]
glmixer: Implement GstVideoAggregator::find_best_format()

Without this, we will fixate weird pixel-aspect-ratios like 1/2147483647. But
in the end, all the negotiation code in videoaggregator needs a big cleanup
and videoaggregator needs to get rid of the software-mixer specific things
everywhere.

6 years agogl: demote upload/convert/download elements to none
Matthew Waters [Mon, 11 May 2015 12:53:09 +0000 (22:53 +1000)]
gl: demote upload/convert/download elements to none

Copy paste error

6 years agogl: expose internal glvideomixerelement\
Matthew Waters [Mon, 11 May 2015 12:37:44 +0000 (22:37 +1000)]
gl: expose internal glvideomixerelement\

We might want more control over the exact pipeline
Also reduces overhead

6 years agogl: expose internal glimagesinkelement
Matthew Waters [Mon, 11 May 2015 12:35:18 +0000 (22:35 +1000)]
gl: expose internal glimagesinkelement

We might want more control over the exact pipeline.
Also reduces overhead.

6 years agoRevert "Revert "glimagesink: add pixel-aspect-ratio property on the bin""
Sebastian Dröge [Wed, 6 May 2015 13:47:27 +0000 (15:47 +0200)]
Revert "Revert "glimagesink: add pixel-aspect-ratio property on the bin""

This reverts commit d96e43b034a03fe54633907bc1bf2a26fe5f95fb.

6 years agoRevert "Revert "glimagesink: forward ALL the properties on the bin""
Sebastian Dröge [Wed, 6 May 2015 13:47:20 +0000 (15:47 +0200)]
Revert "Revert "glimagesink: forward ALL the properties on the bin""

This reverts commit 59fb0f830f08e3e59f87f83df8fa3c2d9f3d9741.

6 years agoRevert "Revert "glimagesink: implement as a bin""
Sebastian Dröge [Wed, 6 May 2015 13:47:04 +0000 (15:47 +0200)]
Revert "Revert "glimagesink: implement as a bin""

This reverts commit be938f92d94e8acccf593128281f6e09213600a0.

6 years agoRevert "gl: readd glupload/download onto element pads"
Sebastian Dröge [Wed, 6 May 2015 13:46:49 +0000 (15:46 +0200)]
Revert "gl: readd glupload/download onto element pads"

This reverts commit 87d8270f302b03f63ce04f986d824892a2c131fd.

6 years agoRevert "Revert "glvideomixer: implement with glmixerbin""
Sebastian Dröge [Wed, 6 May 2015 13:43:32 +0000 (15:43 +0200)]
Revert "Revert "glvideomixer: implement with glmixerbin""

This reverts commit b4bd11f2f3a60224d188b27ab55b278077cb1217.

6 years agoglsyncmeta: fixup size declaration
Matthew Waters [Tue, 5 May 2015 04:44:25 +0000 (14:44 +1000)]
glsyncmeta: fixup size declaration

6 years agoglimagesink: handle the local_context query
Matthew Waters [Mon, 4 May 2015 13:42:36 +0000 (23:42 +1000)]
glimagesink: handle the local_context query

so that upstream elements can get the GL context from glimagesink

6 years agoglcolorconvert: Improve passthrough check when no conversion is needed.
Jan Schmidt [Sun, 3 May 2015 13:08:15 +0000 (23:08 +1000)]
glcolorconvert: Improve passthrough check when no conversion is needed.

Make the passthrough check contingent on only the fields we
can modify being unchanged, and pre-compute it when caps
change instead of checking on each buffer. Makes the passthrough
more lenient if consumers are lax about making input and output
caps complete.

6 years agogl: readd glupload/download onto element pads
Matthew Waters [Thu, 30 Apr 2015 01:15:40 +0000 (11:15 +1000)]
gl: readd glupload/download onto element pads

Allows insertion of gl elements into non-gl pipelines without converter
(upload/download) elements.

https://bugzilla.gnome.org/show_bug.cgi?id=743974

6 years agoRevert "glvideomixer: implement with glmixerbin"
Matthew Waters [Wed, 29 Apr 2015 12:55:00 +0000 (22:55 +1000)]
Revert "glvideomixer: implement with glmixerbin"

This reverts commit 0fb56738a14391f248aa0be8756adeaf978baa0c.

6 years agoRevert "glimagesink: implement as a bin"
Matthew Waters [Wed, 29 Apr 2015 12:38:00 +0000 (22:38 +1000)]
Revert "glimagesink: implement as a bin"

This reverts commit 8a0017e21d5f9a8507f0593c6b24f723aa415258.

6 years agoRevert "glimagesink: forward ALL the properties on the bin"
Matthew Waters [Wed, 29 Apr 2015 12:32:33 +0000 (22:32 +1000)]
Revert "glimagesink: forward ALL the properties on the bin"

This reverts commit 4be45e5f30dc6121f2769323603447f591ca4a0a.

6 years agoRevert "glimagesink: add pixel-aspect-ratio property on the bin"
Matthew Waters [Wed, 29 Apr 2015 12:32:20 +0000 (22:32 +1000)]
Revert "glimagesink: add pixel-aspect-ratio property on the bin"

This reverts commit 2ba6bb9b9325b63f58a9ff0b2c82fa28759dcabc.

6 years agoglimagesink: Cache caps for passing to the client draw call
Jan Schmidt [Tue, 28 Apr 2015 16:30:05 +0000 (02:30 +1000)]
glimagesink: Cache caps for passing to the client draw call

Don't convert the GstVideoInfo to caps on every draw call,
just cache the caps and pass them into the GstSample.

6 years agoglupload: Make upload method static caps non-const.
Jan Schmidt [Tue, 28 Apr 2015 16:20:09 +0000 (02:20 +1000)]
glupload: Make upload method static caps non-const.

Retrieving a GstStaticCaps does a one time internal
initialisation and caches it - they can't be stored as
const structures.

6 years agoglmemory: remove uneeded unref
Matthew Waters [Tue, 28 Apr 2015 10:46:52 +0000 (20:46 +1000)]
glmemory: remove uneeded unref

The call to _gl_mem_alloc_data will unref and NULLify 'dest' for us.
We just need to return.

https://bugzilla.gnome.org/show_bug.cgi?id=744246

6 years agoglimagesink: Use gst_pad_get_pad_template_caps in ::get_caps()
Matthieu Bouron [Tue, 28 Apr 2015 07:37:59 +0000 (09:37 +0200)]
glimagesink: Use gst_pad_get_pad_template_caps in ::get_caps()

6 years agoglupload: provide the sink template caps that could be used
Matthew Waters [Tue, 28 Apr 2015 10:11:07 +0000 (20:11 +1000)]
glupload: provide the sink template caps that could be used

https://bugzilla.gnome.org/show_bug.cgi?id=746399

6 years agoegl: Use maximum bits per color instead of minimum
Xavier Claessens [Mon, 27 Apr 2015 14:11:41 +0000 (10:11 -0400)]
egl: Use maximum bits per color instead of minimum

https://bugzilla.gnome.org/show_bug.cgi?id=748425

6 years agoglfiltercube: Don't initialize multiple shaders on renegotiation
Matthieu Bouron [Mon, 27 Apr 2015 12:49:59 +0000 (14:49 +0200)]
glfiltercube: Don't initialize multiple shaders on renegotiation

6 years agoglimagesink: Remove unused stop function
Matthieu Bouron [Mon, 27 Apr 2015 08:24:00 +0000 (10:24 +0200)]
glimagesink: Remove unused stop function

6 years agoglimagesink: unref the pool in the correct place
Matthew Waters [Mon, 27 Apr 2015 06:04:50 +0000 (16:04 +1000)]
glimagesink: unref the pool in the correct place

Otherwise we could hold a pool to a context that is never going to be used.

https://bugzilla.gnome.org/show_bug.cgi?id=748405

6 years agogltransformation: Unref shader in ::stop()
Matthieu Bouron [Mon, 27 Apr 2015 08:01:53 +0000 (10:01 +0200)]
gltransformation: Unref shader in ::stop()

6 years agogl: unref display/other-context in the correct place
Matthew Waters [Mon, 27 Apr 2015 05:20:56 +0000 (15:20 +1000)]
gl: unref display/other-context in the correct place

Otherwise state changes from PLAYING->READY->PAUSED will cause there to
to be no display configured on the element.

https://bugzilla.gnome.org/show_bug.cgi?id=748405

6 years agoglfilter: De-camelcase onInitFBO() vfunc
Sebastian Dröge [Sun, 26 Apr 2015 19:42:03 +0000 (21:42 +0200)]
glfilter: De-camelcase onInitFBO() vfunc

6 years agoglfilter: Remove onStart/onStop vfuncs, and unused onReset()
Sebastian Dröge [Sun, 26 Apr 2015 19:39:06 +0000 (21:39 +0200)]
glfilter: Remove onStart/onStop vfuncs, and unused onReset()

onStart/onStop are just duplicates of the basetransform ones, onReset
was never called but was used everywhere when stop should've been used.

6 years agogltransformation: don't initialize multiple shaders on renegotiation
Lubosz Sarnecki [Tue, 21 Apr 2015 07:43:58 +0000 (09:43 +0200)]
gltransformation: don't initialize multiple shaders on renegotiation

https://bugzilla.gnome.org/show_bug.cgi?id=748407

* delete shader if one exists
* set it to NULL after unrefing

6 years agoglcolorconvert: Fix compiler warning
Sebastian Dröge [Sun, 26 Apr 2015 19:11:17 +0000 (21:11 +0200)]
glcolorconvert: Fix compiler warning

gstglcolorconvertelement.c:230:19: error: unused variable 'in_structure'
      [-Werror,-Wunused-variable]
    GstStructure *in_structure = gst_caps_get_structure (caps, 0);
                  ^

6 years agoglbasefilter: Unref other context in finalize, and display in READY->NULL
Matthew Waters [Sun, 26 Apr 2015 18:33:41 +0000 (20:33 +0200)]
glbasefilter: Unref other context in finalize, and display in READY->NULL

https://bugzilla.gnome.org/show_bug.cgi?id=748405

6 years agoglcolorconvert: Keep colorimetry and chroma-site fields if passthrough
Matthieu Bouron [Sun, 19 Apr 2015 17:16:55 +0000 (19:16 +0200)]
glcolorconvert: Keep colorimetry and chroma-site fields if passthrough

https://bugzilla.gnome.org/show_bug.cgi?id=748141

6 years agoglimagesink: balance change_state display ref/unref
Matthew Waters [Fri, 24 Apr 2015 07:13:10 +0000 (17:13 +1000)]
glimagesink: balance change_state display ref/unref

the display was being unreffed on the incorrect state change causing
invalid state when changing from PLAYING/PAUSED->READY->PAUSED/PLAYING.

6 years agoglupload: Release glupload buffer when caps are changed
Matthieu Bouron [Thu, 23 Apr 2015 14:47:40 +0000 (16:47 +0200)]
glupload: Release glupload buffer when caps are changed

https://bugzilla.gnome.org/show_bug.cgi?id=748371

6 years agoglmixer: Possible null pointer dereference
Vineeth T M [Wed, 22 Apr 2015 09:54:45 +0000 (18:54 +0900)]
glmixer: Possible null pointer dereference

While printing error message when context fails, error variable is not being used anymore
so it will lead to null pointer dereference

https://bugzilla.gnome.org/show_bug.cgi?id=748287

6 years agogleffects: Create element for each effect
Michał Dębski [Sun, 5 Apr 2015 18:18:56 +0000 (20:18 +0200)]
gleffects: Create element for each effect

https://bugzilla.gnome.org/show_bug.cgi?id=746209

6 years agogleffects: Merge laplacian filter into effects
Michał Dębski [Sun, 22 Mar 2015 10:22:52 +0000 (11:22 +0100)]
gleffects: Merge laplacian filter into effects

https://bugzilla.gnome.org/show_bug.cgi?id=746209

6 years agogleffects: Merge sobel filter into effects
Michał Dębski [Sun, 22 Mar 2015 10:20:49 +0000 (11:20 +0100)]
gleffects: Merge sobel filter into effects

https://bugzilla.gnome.org/show_bug.cgi?id=746209

6 years agogleffects: Merge blur filter into effects
Michał Dębski [Sun, 22 Mar 2015 10:13:30 +0000 (11:13 +0100)]
gleffects: Merge blur filter into effects

https://bugzilla.gnome.org/show_bug.cgi?id=746209

6 years agogleffects: Correct attributes for hconv and vconv shaders
Michał Dębski [Sat, 21 Mar 2015 22:50:33 +0000 (23:50 +0100)]
gleffects: Correct attributes for hconv and vconv shaders

Width and height were switched for glow shaders. For blur
filter attributes names were obsolete.

https://bugzilla.gnome.org/show_bug.cgi?id=746209

6 years agogleffects: Fix fisheye shader - pass float to sqrt
Michał Dębski [Sat, 21 Mar 2015 22:21:13 +0000 (23:21 +0100)]
gleffects: Fix fisheye shader - pass float to sqrt

On OSX passing literal int to sqrt() in GLSL results in error.

https://bugzilla.gnome.org/show_bug.cgi?id=746209

6 years agogltransformation: fix shader memory leak
Lubosz Sarnecki [Tue, 21 Apr 2015 05:28:58 +0000 (07:28 +0200)]
gltransformation: fix shader memory leak

6 years agoglwindow: track context activation properly
Matthew Waters [Tue, 21 Apr 2015 02:25:11 +0000 (12:25 +1000)]
glwindow: track context activation properly

We only need to deactivate/reactivate the context iff it was already
active.

6 years agogldisplay: synchronize the searching and creation of GstGLContext's
Matthew Waters [Tue, 21 Apr 2015 02:19:46 +0000 (12:19 +1000)]
gldisplay: synchronize the searching and creation of GstGLContext's

Ootherwise we could end up with multiple elements in different chains
each creating a context.  Fixes context creation with glvideomixer.

6 years agoglmixer: fix caps leak in gst_gl_mixer_pad_sink_getcaps()
Guillaume Desmottes [Wed, 15 Apr 2015 13:22:37 +0000 (15:22 +0200)]
glmixer: fix caps leak in gst_gl_mixer_pad_sink_getcaps()

Caps refcounting was all wrong in this function. Rewrote it and add some
comments to make it clearer.

Fix caps leaks with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=747915

Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
6 years agoglmixer: unref owned caps when finalizing the mixer
Guillaume Desmottes [Thu, 16 Apr 2015 12:21:16 +0000 (14:21 +0200)]
glmixer: unref owned caps when finalizing the mixer

Fix a caps leak with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=747915

Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
6 years agoglmixer: pass the proper free function to frames and buffers array
Guillaume Desmottes [Wed, 15 Apr 2015 13:16:33 +0000 (15:16 +0200)]
glmixer: pass the proper free function to frames and buffers array

'array_buffers' contain borrowed GstBuffer and so shouldn't have a free
function. 'frames' is the one containing GstGLMixerFrameData and so should use
_free_glmixer_frame_data as free function.

Fix GstGLMixerFrameData leaks with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=747913

Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
6 years agogldownloadelement: Download *from* OpenGL, not into
Sebastian Dröge [Fri, 17 Apr 2015 13:20:12 +0000 (15:20 +0200)]
gldownloadelement: Download *from* OpenGL, not into

6 years agoglcontext: Make gst_gl_context_egl_activate fail if the old surface could not be...
Matthieu Bouron [Fri, 17 Apr 2015 12:24:28 +0000 (14:24 +0200)]
glcontext: Make gst_gl_context_egl_activate fail if the old surface could not be destroyed

https://bugzilla.gnome.org/show_bug.cgi?id=746251

6 years agogluploadelement: Unref GstGLUpload object and caps in ::stop()
Matthieu Bouron [Fri, 17 Apr 2015 08:38:16 +0000 (10:38 +0200)]
gluploadelement: Unref GstGLUpload object and caps in ::stop()

Fix leak of the GstGLUpload object.

https://bugzilla.gnome.org/show_bug.cgi?id=748033

6 years agogl: Remove some empty ::finalize() implementations
Sebastian Dröge [Fri, 17 Apr 2015 12:09:47 +0000 (14:09 +0200)]
gl: Remove some empty ::finalize() implementations

6 years agogldownloadelement: Fix element description
Sebastian Dröge [Fri, 17 Apr 2015 12:06:03 +0000 (14:06 +0200)]
gldownloadelement: Fix element description

6 years agogldownloadelement: Remove unused ::finalize() implementation
Sebastian Dröge [Fri, 17 Apr 2015 12:05:44 +0000 (14:05 +0200)]
gldownloadelement: Remove unused ::finalize() implementation

6 years agoglcolorconvertelement: Also unref caps in ::stop() already
Sebastian Dröge [Fri, 17 Apr 2015 12:03:21 +0000 (14:03 +0200)]
glcolorconvertelement: Also unref caps in ::stop() already

They are not useful anymore afterwards, so keeping them until ::finalize()
might only cause someone to use them later and then fail.

6 years agoglcolorconvertelement: fix GstGLColorConvert leak
Guillaume Desmottes [Wed, 15 Apr 2015 12:49:02 +0000 (14:49 +0200)]
glcolorconvertelement: fix GstGLColorConvert leak

convert->convert was never unreffed.

This can be reproduce with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=747911

6 years agoglcontext: Make gst_gl_context_egl_activate fail if the surface could not be created
Matthieu Bouron [Thu, 16 Apr 2015 08:42:45 +0000 (10:42 +0200)]
glcontext: Make gst_gl_context_egl_activate fail if the surface could not be created

Also add some error logging.

6 years agoglcolorconvert: Fix last commit
Sebastian Dröge [Sat, 11 Apr 2015 17:35:48 +0000 (19:35 +0200)]
glcolorconvert: Fix last commit

6 years agogl: Remove iOS/EAGL workaround for R/RG textures
Sebastian Dröge [Sat, 11 Apr 2015 17:17:00 +0000 (19:17 +0200)]
gl: Remove iOS/EAGL workaround for R/RG textures

This should be unneeded now after https://bugzilla.gnome.org/show_bug.cgi?id=732507

6 years agoglcolorconvert: Add correct check for RG/R textures in glcolorconvert too
Sebastian Dröge [Sat, 11 Apr 2015 17:14:34 +0000 (19:14 +0200)]
glcolorconvert: Add correct check for RG/R textures in glcolorconvert too

https://bugzilla.gnome.org/show_bug.cgi?id=732507

6 years agoglbasefilter: avoid segfault when gl platform is not available
Anton Obzhirov [Tue, 31 Mar 2015 16:10:45 +0000 (17:10 +0100)]
glbasefilter: avoid segfault when gl platform is not available

https://bugzilla.gnome.org/show_bug.cgi?id=747124