platform/upstream/gst-plugins-base.git
7 years agogl: initialize output params to 0 before calling gl functions
Julien Isorce [Thu, 2 Jul 2015 09:26:18 +0000 (10:26 +0100)]
gl: initialize output params to 0 before calling gl functions

The client side API of the Chromium's GPU Process has asserts
in debug mode that check that output params are initialized to 0.

7 years agogl: Don't leak pool if set_config failed
Nicolas Dufresne [Fri, 26 Jun 2015 19:34:35 +0000 (15:34 -0400)]
gl: Don't leak pool if set_config failed

7 years agoglfilter: Don't cache buffer pool
Nicolas Dufresne [Fri, 26 Jun 2015 19:33:33 +0000 (15:33 -0400)]
glfilter: Don't cache buffer pool

Caching and sharing to multiple element the same pool prevents
renegotiation from passthrough to not passthrough.

7 years agoglimagesink: use g_clear_error instead of g_error_free
Vineeth TM [Thu, 2 Jul 2015 08:08:26 +0000 (17:08 +0900)]
glimagesink: use g_clear_error instead of g_error_free

replace g_error_free with g_clear_error, as it internally
checks if error variable is valid or not.

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

7 years agogl: add missing break
Luis de Bethencourt [Mon, 29 Jun 2015 15:10:39 +0000 (16:10 +0100)]
gl: add missing break

gst_gl_view_convert_element_set_property() is missing a break at the end
of the PROP_OUTPUT_DOWNMIX_MODE case. Adding it.

CID #1308949

7 years agoglimagesink: Don't leak pool
Nicolas Dufresne [Fri, 26 Jun 2015 18:12:22 +0000 (14:12 -0400)]
glimagesink: Don't leak pool

gst_query_add_allocation_pool is transfer none. Also unref
if there was a configuration error.

7 years agoRevert "gl/window/x11: don't create our own X11 display"
Sebastian Dröge [Tue, 23 Jun 2015 14:46:39 +0000 (16:46 +0200)]
Revert "gl/window/x11: don't create our own X11 display"

This reverts commit 5697b6b89b4b2a15c45bd47be940a17f4412ea11.

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

7 years agoRevert "eagl: Don't dispatch_sync() to the main thread if we are on the main thread"
Sebastian Dröge [Tue, 23 Jun 2015 12:16:39 +0000 (14:16 +0200)]
Revert "eagl: Don't dispatch_sync() to the main thread if we are on the main thread"

This reverts commit 0bff481011cf74c59869b511393d1696b570e3d5.

It wasn't supposed to be merged and also doesn't fix the problem.

7 years agoeagl: Don't dispatch_sync() to the main thread if we are on the main thread
Sebastian Dröge [Tue, 23 Jun 2015 09:05:06 +0000 (11:05 +0200)]
eagl: Don't dispatch_sync() to the main thread if we are on the main thread

This will otherwise deadlock.

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

7 years agogl: Include texParameterf in the GL function table
John Ludwig [Tue, 23 Jun 2015 08:31:44 +0000 (10:31 +0200)]
gl: Include texParameterf in the GL function table

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

7 years agoglmemory: fix consistency about pbo availability.
Julien Isorce [Mon, 22 Jun 2015 13:06:04 +0000 (14:06 +0100)]
glmemory: fix consistency about pbo availability.

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

7 years agogldisplay: add gst_gl_display_create_context
Julien Isorce [Mon, 15 Jun 2015 15:09:54 +0000 (16:09 +0100)]
gldisplay: add gst_gl_display_create_context

It also emits a create-context signal so that an application
can provide an external GstGLContext backend.

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

7 years agoglcontext: move display from priv
Julien Isorce [Mon, 15 Jun 2015 15:36:26 +0000 (16:36 +0100)]
glcontext: move display from priv

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

7 years agoRevert "glcontext: add gst_gl_context_set_display helper"
Julien Isorce [Thu, 18 Jun 2015 09:55:28 +0000 (10:55 +0100)]
Revert "glcontext: add gst_gl_context_set_display helper"

This reverts commit 71b8103cbd16fff9cf5a65cf517083cb794aa3b5.

7 years agoRevert "gl: add GstGLContextGPUProcess backend"
Julien Isorce [Thu, 18 Jun 2015 09:52:18 +0000 (10:52 +0100)]
Revert "gl: add GstGLContextGPUProcess backend"

This reverts commit b377112ee38912d316e77b4e2102041389dc0051.

7 years agoglimagesink: Remove duplicate, useless line of code
Jan Schmidt [Fri, 19 Jun 2015 04:35:37 +0000 (14:35 +1000)]
glimagesink: Remove duplicate, useless line of code

7 years agoopengl: glstero* are only built with full OpenGL
Nicolas Dufresne [Fri, 19 Jun 2015 02:11:05 +0000 (22:11 -0400)]
opengl: glstero* are only built with full OpenGL

Don't try to register the elements unless they are built.

7 years agoglviewconvert: Fix GLES2 compatibility
Nicolas Dufresne [Thu, 18 Jun 2015 22:09:55 +0000 (18:09 -0400)]
glviewconvert: Fix GLES2 compatibility

7 years agoglviewconvert: Fix broken validity check
Nicolas Dufresne [Thu, 18 Jun 2015 22:02:21 +0000 (18:02 -0400)]
glviewconvert: Fix broken validity check

7 years ago3dvideo: Add simple gtk example stereoscopic video player
Jan Schmidt [Fri, 29 May 2015 17:09:17 +0000 (03:09 +1000)]
3dvideo: Add simple gtk example stereoscopic video player

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

7 years agogl: Add glviewconvert, glstereomix and glstereosplit elements
Jan Schmidt [Fri, 29 May 2015 16:29:04 +0000 (02:29 +1000)]
gl: Add glviewconvert, glstereomix and glstereosplit elements

Conversion elements for transforming multiview/stereoscopic video

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

7 years agoglimagesink: Support multiview/stereoscopic video
Jan Schmidt [Fri, 29 May 2015 16:26:32 +0000 (02:26 +1000)]
glimagesink: Support multiview/stereoscopic video

Support video with multiview info in the caps, transform
it to mono anaglyph by default, but allow for configuring
other output modes and handoff to the app via
the draw signal.

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

7 years agogl libs: Add glviewconvert helper object
Jan Schmidt [Fri, 29 May 2015 16:21:43 +0000 (02:21 +1000)]
gl libs: Add glviewconvert helper object

Add API for a helper object that can convert between different
stereoscopic video representations, and later do filtering
of multiple view streams.

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

7 years agoglimagesink: add missing handle-events/ignore-alpha property to the bin
Matthew Waters [Mon, 15 Jun 2015 12:43:54 +0000 (22:43 +1000)]
glimagesink: add missing handle-events/ignore-alpha property to the bin

7 years agogl/examples: update qt examples for api changes
Matthew Waters [Mon, 15 Jun 2015 06:47:15 +0000 (16:47 +1000)]
gl/examples: update qt examples for api changes

7 years agoglmixerbin: implement proper dynamic pad removal
Matthew Waters [Sat, 13 Jun 2015 08:43:04 +0000 (18:43 +1000)]
glmixerbin: implement proper dynamic pad removal

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

7 years agoglimagesink: Don't do pool caching
Nicolas Dufresne [Sat, 13 Jun 2015 00:14:37 +0000 (20:14 -0400)]
glimagesink: Don't do pool caching

We now know that pool caching can cause renegotiation issues
when an element in the pipeline change from passthrough to not
passthrough. As it's not needed, don't cache existing pools.

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

7 years agoglmemory: separate pbo transfer from texture transfers
Matthew Waters [Thu, 11 Jun 2015 08:26:50 +0000 (18:26 +1000)]
glmemory: separate pbo transfer from texture transfers

When supported, the potentially longer pbo upload/download can be
initiated before the texture upload/download, potentially increasing
throughput.

7 years agoglmemory: implement on top of glbasebuffer
Matthew Waters [Wed, 10 Jun 2015 06:36:15 +0000 (16:36 +1000)]
glmemory: implement on top of glbasebuffer

Provides convenient access to PBO usage.

Currently texture updates are coupled tightly to data transfers.

7 years agogl: new glbasebuffer GstMemory object
Matthew Waters [Wed, 10 Jun 2015 06:24:59 +0000 (16:24 +1000)]
gl: new glbasebuffer GstMemory object

Provides generic handling of GL buffer objects accessible using
the GL bind points (GL_ARRAY_BUFFER, GL_PIXEL_*_BUFFER).

Implementation based off the current GstGLMemory.

7 years agogl/prototypes: add some buffer function prototypes
Matthew Waters [Wed, 10 Jun 2015 06:23:36 +0000 (16:23 +1000)]
gl/prototypes: add some buffer function prototypes

7 years agogl/window/x11: only listen on the X Display when needed
Matthew Waters [Fri, 12 Jun 2015 03:14:57 +0000 (13:14 +1000)]
gl/window/x11: only listen on the X Display when needed

5697b6b89b4b2a15c45bd47be940a17f4412ea11 causes us to possibly listen
on a toolkit provided Display connection.  We thus could eat their
precious winsys events.  Only listen if we need to
(!foreign_display or videooverlay).

7 years agogl: Add support for multiple views in upload, colour convert and download
Jan Schmidt [Fri, 29 May 2015 16:15:51 +0000 (02:15 +1000)]
gl: Add support for multiple views in upload, colour convert and download

Support multiple attached views on input/output buffers
by processing each one, not just the first.

7 years agogl/window/x11: don't create our own X11 display
Matthew Waters [Thu, 11 Jun 2015 14:32:00 +0000 (00:32 +1000)]
gl/window/x11: don't create our own X11 display

It's not needed anymore with most window operations occuring in the
GL thread.

7 years agogl/window/x11: handle_events() may be called before the window has been created
Matthew Waters [Thu, 11 Jun 2015 14:30:58 +0000 (00:30 +1000)]
gl/window/x11: handle_events() may be called before the window has been created

Fixes an XIO fatal error

7 years agogl: move basesink properties from glimagesinkbin to glsinkbin
Matthew Waters [Thu, 11 Jun 2015 14:29:23 +0000 (00:29 +1000)]
gl: move basesink properties from glimagesinkbin to glsinkbin

7 years agogl: Use gst_object_ref_sink() for gl{filter,mixer,src}bin too
Sebastian Dröge [Thu, 11 Jun 2015 13:22:04 +0000 (15:22 +0200)]
gl: Use gst_object_ref_sink() for gl{filter,mixer,src}bin too

7 years agoglsinkbin: Use gst_object_ref_sink() for consistency with the video-sink property...
Sebastian Dröge [Thu, 11 Jun 2015 13:17:02 +0000 (15:17 +0200)]
glsinkbin: Use gst_object_ref_sink() for consistency with the video-sink property on playbin

7 years agogl: OES_vertex_array_object is improperly implemented on PowerVR SGX 544MP
Sebastian Dröge [Wed, 10 Jun 2015 09:42:06 +0000 (11:42 +0200)]
gl: OES_vertex_array_object is improperly implemented on PowerVR SGX 544MP

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

7 years agoFix a common typo: retreive -> retrieve
Thiago Santos [Fri, 5 Jun 2015 12:35:39 +0000 (09:35 -0300)]
Fix a common typo: retreive -> retrieve

Seems to have been copy pasted around a few places

7 years agogl/dispmanx: Fix build
Philippe Normand [Thu, 4 Jun 2015 07:40:19 +0000 (09:40 +0200)]
gl/dispmanx: Fix build

7 years agogl/example: fix build error when compiling cocoa-videooverlay
Julien Isorce [Wed, 3 Jun 2015 21:21:30 +0000 (22:21 +0100)]
gl/example: fix build error when compiling cocoa-videooverlay

libtool: error: ignoring unknown tag OBJC
and
clang: error: argument unused during compilation: '-pthread'

7 years agogl/window/dispmanx: fix compiler warning
Matthew Waters [Thu, 4 Jun 2015 05:01:16 +0000 (15:01 +1000)]
gl/window/dispmanx: fix compiler warning

7 years agogl/window: use the default main loop implementation for all backends
Matthew Waters [Thu, 4 Jun 2015 02:16:35 +0000 (12:16 +1000)]
gl/window: use the default main loop implementation for all backends

fixes glimagsink being unable to display.

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

7 years agoglwindow_cocoa: use parent default implementation
Julien Isorce [Wed, 3 Jun 2015 20:22:09 +0000 (21:22 +0100)]
glwindow_cocoa: use parent default implementation

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

7 years agoglsyncmeta: Set new sync point when copying
Jan Schmidt [Tue, 2 Jun 2015 14:31:42 +0000 (00:31 +1000)]
glsyncmeta: Set new sync point when copying

Set a new sync point when copying instead of
transferring the (non-refcounted) GL sync object
from the source meta.

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

7 years agoglsyncmeta: Add some debug output
Jan Schmidt [Tue, 2 Jun 2015 13:59:50 +0000 (23:59 +1000)]
glsyncmeta: Add some debug output

7 years agoglmemory: provide compatibility definition for GLES2 for GL_RGBA8
Matthew Waters [Tue, 2 Jun 2015 07:24:18 +0000 (17:24 +1000)]
glmemory: provide compatibility definition for GLES2 for GL_RGBA8

7 years agogl: consolidate internal_rgba_format into glmemory
Matthew Waters [Tue, 2 Jun 2015 06:32:03 +0000 (16:32 +1000)]
gl: consolidate internal_rgba_format into glmemory

Expose some useful value format conversion functions available in
GstGLMemory.

7 years agoglcontext_gpu_process: close the window when done
Julien Isorce [Mon, 1 Jun 2015 13:07:37 +0000 (14:07 +0100)]
glcontext_gpu_process: close the window when done

7 years agoglwindow_gpu_process: avoid empty struct
Julien Isorce [Mon, 1 Jun 2015 13:05:58 +0000 (14:05 +0100)]
glwindow_gpu_process: avoid empty struct

7 years agoglwindow: move main loop/context creation back to init/finalize
Julien Isorce [Mon, 1 Jun 2015 11:58:11 +0000 (12:58 +0100)]
glwindow: move main loop/context creation back to init/finalize

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

7 years agoexamples: Fix gl usage without wayland support
Edward Hervey [Mon, 1 Jun 2015 12:05:06 +0000 (14:05 +0200)]
examples: Fix gl usage without wayland support

Not all platforms have wayland support. Handle that gracefully at
compile time

7 years agogl: Fix compiler warning
Sebastian Dröge [Sun, 31 May 2015 19:30:23 +0000 (21:30 +0200)]
gl: Fix compiler warning

gstglwindow_wayland_egl.c:246:41: error: unused variable 'surface_listener' [-Werror,-Wunused-const-variable]
static const struct wl_surface_listener surface_listener = {
                                        ^

7 years agoglwindow: fix compiler error
Matthew Waters [Sun, 31 May 2015 06:53:14 +0000 (16:53 +1000)]
glwindow: fix compiler error

gstglwindow.c:1118:544: error: 'return' with no value, in function returning non-void [-Werror]
   g_return_if_fail (GST_GL_IS_WINDOW (window));

7 years agogl/examples: update gtk examples for glupload
Matthew Waters [Sun, 31 May 2015 05:42:48 +0000 (15:42 +1000)]
gl/examples: update gtk examples for glupload

7 years agogl/examples: update gtk examples for wayland
Matthew Waters [Sun, 31 May 2015 05:40:15 +0000 (15:40 +1000)]
gl/examples: update gtk examples for wayland

7 years agogl/wayland: implement setting the render rectangle
Matthew Waters [Fri, 29 May 2015 08:06:27 +0000 (18:06 +1000)]
gl/wayland: implement setting the render rectangle

Places our subsurface at the rectangle provided position

7 years agoglwindow: handle gst_video_overlay_set_render_rectangle
Matthew Waters [Fri, 29 May 2015 08:03:52 +0000 (18:03 +1000)]
glwindow: handle gst_video_overlay_set_render_rectangle

7 years agogl/wayland: don't block the event loop after poll
Matthew Waters [Fri, 29 May 2015 08:01:29 +0000 (18:01 +1000)]
gl/wayland: don't block the event loop after poll

Use the dispatch_pending set of functions which just run the currently
queued up events instead of potentially waiting for an event to occur.

7 years agotests/gl/gtk: implement setting a wayland display/surface
Matthew Waters [Wed, 27 May 2015 06:42:55 +0000 (16:42 +1000)]
tests/gl/gtk: implement setting a wayland display/surface

7 years agogl/wayland: implement basic video overlay support via subsurfaces
Matthew Waters [Wed, 27 May 2015 06:39:06 +0000 (16:39 +1000)]
gl/wayland: implement basic video overlay support via subsurfaces

Currently does not position the subsurface relative to the parent surface at all

7 years agogl/wayland: allow a NULL wl_event_queue
Matthew Waters [Wed, 27 May 2015 05:44:33 +0000 (15:44 +1000)]
gl/wayland: allow a NULL wl_event_queue

perform operations on the default wl_display event queue in that case

7 years agogl/utils: implement wayland display GstContext
Matthew Waters [Wed, 27 May 2015 05:43:06 +0000 (15:43 +1000)]
gl/utils: implement wayland display GstContext

requried for sharing GL contexts or subsurface support

7 years agogl/wayland: run each window on a separate queue
Matthew Waters [Fri, 22 May 2015 06:07:49 +0000 (16:07 +1000)]
gl/wayland: run each window on a separate queue

Based on patch by Julien Isorce <julien.isorce@collabora.co.uk>

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

7 years agogl: Don't leak temp strings in _RGB_pixel_order()
Jan Schmidt [Fri, 29 May 2015 16:19:25 +0000 (02:19 +1000)]
gl: Don't leak temp strings in _RGB_pixel_order()

Fix a memory leak of temporary strings when computing
swizzling of RGB formats.

7 years agoglfilter: Add transform_internal_caps() vfunc
Jan Schmidt [Fri, 29 May 2015 16:29:47 +0000 (02:29 +1000)]
glfilter: Add transform_internal_caps() vfunc

Add a vfunc that is called by glfilter before it sets
caps features and intersects with the peer caps, and
move removing the size from caps into its default
implementation. Allows sub-classes to do more
sophisticated management of the size fields in case they
don't support arbitrary resizing or have distinct
preferences.

7 years agoglfilter: Don't remove size fields from caps
Jan Schmidt [Fri, 29 May 2015 16:23:44 +0000 (02:23 +1000)]
glfilter: Don't remove size fields from caps

Instead of removing size fields, set them to the full range
like videoscale does, so the caps are clearly unfixed in
all cases.

7 years agogl: add GstGLContextGPUProcess backend
Julien Isorce [Wed, 27 May 2015 09:58:10 +0000 (10:58 +0100)]
gl: add GstGLContextGPUProcess backend

It builds its GL vtable from a proc address provided
by the application.

7 years agogl: add and use gst_gl_internal_format_rgba
Julien Isorce [Wed, 27 May 2015 15:28:39 +0000 (16:28 +0100)]
gl: add and use gst_gl_internal_format_rgba

Previously when compiling GstGL with both GL and GLES2,
GL_RGBA8 was picked from GL/gl.h. But a clash may happen at
runtime when one is selecting GLES2.

gst_gl_internal_format_rgba allows to check at runtime
if it should use GL_RGBA or GL_RGBA8.

7 years agoglwindow_x11: use parent default implementation
Julien Isorce [Wed, 27 May 2015 13:10:16 +0000 (14:10 +0100)]
glwindow_x11: use parent default implementation

7 years agoglcontext_glx: rename variable from window to context
Julien Isorce [Wed, 27 May 2015 10:16:32 +0000 (11:16 +0100)]
glcontext_glx: rename variable from window to context

7 years agoglwindow: initialize debug in class_init
Julien Isorce [Wed, 27 May 2015 10:11:55 +0000 (11:11 +0100)]
glwindow: initialize debug in class_init

Useful if one uses gst_gl_window_x11_new directly
instead of gst_gl_window_new.

7 years agoglcontext: initialize debug in class_init
Julien Isorce [Wed, 27 May 2015 10:07:38 +0000 (11:07 +0100)]
glcontext: initialize debug in class_init

Useful if one uses gst_gl_context_egl_new directly
instead of gst_gl_context_new.

7 years agoglcontext: add gst_gl_context_set_display helper
Julien Isorce [Wed, 27 May 2015 09:55:20 +0000 (10:55 +0100)]
glcontext: add gst_gl_context_set_display helper

7 years agoglcontext: add missing _CAST after G_TYPE_CHECK_CLASS
Julien Isorce [Wed, 27 May 2015 14:25:40 +0000 (15:25 +0100)]
glcontext: add missing _CAST after G_TYPE_CHECK_CLASS

7 years agoglwindow: add missing _CAST after G_TYPE_CHECK_CLASS
Julien Isorce [Wed, 27 May 2015 09:51:54 +0000 (10:51 +0100)]
glwindow: add missing _CAST after G_TYPE_CHECK_CLASS

7 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

7 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.

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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.

7 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

7 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

7 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