platform/upstream/gstreamer.git
6 years agoglwindow: provides some default implementations to factorize with all backends
Julien Isorce [Tue, 26 May 2015 17:38:39 +0000 (18:38 +0100)]
glwindow: provides some default implementations to factorize with all backends

6 years agogleffects: 'for' loop initial declaration
Luis de Bethencourt [Wed, 27 May 2015 12:05:11 +0000 (13:05 +0100)]
gleffects: 'for' loop initial declaration

'for' loop initial declarations are not allowed in C89, moving the declarations
to before the 'for' loops.

6 years agogloverlay: fix a leak
Xavier Claessens [Tue, 26 May 2015 20:47:47 +0000 (16:47 -0400)]
gloverlay: fix a leak

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

6 years agogloverlay: properly handle errors while loading file
Xavier Claessens [Tue, 26 May 2015 19:10:28 +0000 (15:10 -0400)]
gloverlay: properly handle errors while loading file

Post an error on the bus if anything bad happens while reading
and parsing the image file.

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

6 years agogloverlay: remove unused type_file field
Xavier Claessens [Tue, 26 May 2015 19:04:34 +0000 (15:04 -0400)]
gloverlay: remove unused type_file field

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

6 years agogl: propagate return value from filter and filter_texture
Xavier Claessens [Tue, 26 May 2015 19:01:37 +0000 (15:01 -0400)]
gl: propagate return value from filter and filter_texture

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

6 years agogleffects: properly initialize the shaders across contexts implementing multiple...
Matthew Waters [Tue, 26 May 2015 02:47:40 +0000 (12:47 +1000)]
gleffects: properly initialize the shaders across contexts implementing multiple API's

6 years agogleffects_laplacian: fix shader compilation in gl3/gles2
Matthew Waters [Tue, 26 May 2015 02:44:47 +0000 (12:44 +1000)]
gleffects_laplacian: fix shader compilation in gl3/gles2

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

6 years agogl/wayland: remove dead event source code
Matthew Waters [Fri, 22 May 2015 03:12:09 +0000 (13:12 +1000)]
gl/wayland: remove dead event source code

6 years agogl/wayland: add GstGLDisplayWayland
Matthew Waters [Thu, 21 May 2015 07:48:31 +0000 (17:48 +1000)]
gl/wayland: add GstGLDisplayWayland

Simple implementation split from GstGLWindowWayland

Can now have multiple glimagesink elements all displaying output
linked via GL or otherwise (barring GL platform limitations).

The intel driver is racy and can crash setting up the two glimagesink contexts.

e.g.
videotestsrc ! tee name=t ! queue ! glupload ! glimagesinkelement
  t. ! queue ! gleffects_blur ! glimagesinkelement

videotestsrc ! glupload ! glfiltercube ! tee name=t ! queue ! glimagesinkelement
  t. ! queue ! gleffects_blur ! glimagesinkelement

6 years agogltransformation: fix DrawElements call for element array buffers
Matthew Waters [Mon, 25 May 2015 07:27:58 +0000 (17:27 +1000)]
gltransformation: fix DrawElements call for element array buffers

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

6 years agogl/calayer: provide the exact GL api version for the wrapped context
Matthew Waters [Fri, 22 May 2015 15:00:18 +0000 (01:00 +1000)]
gl/calayer: provide the exact GL api version for the wrapped context

Otherwise we could end up being mistaken for the diference between a
gl3 and a gl2 context resulting in a failure getting the list of
extensions from the wrapped context due to the difference between
glGetString and glGetStringi for the GL_EXTENSIONS token.

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

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