platform/upstream/gstreamer.git
6 years agoglimagesinkbin: Add allocation query for GstVideoOverlayComposition
Lubosz Sarnecki [Mon, 20 Jul 2015 18:24:22 +0000 (14:24 -0400)]
glimagesinkbin: Add allocation query for GstVideoOverlayComposition

Adds an GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE query to glupload
and glimagesink.  Detects the query from the downstream elements, so
it is executed only when downstream supports the overlay API.

This makes pipelines with textoverlay ! glupload ! gldownload ! xvimagesink possible.
Uses allocation meta struct for passing the window size upstream.

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

6 years agoglcolorconvert: Apply GstVideoOverlayCompositionMeta buffer to converted buffer
Lubosz Sarnecki [Mon, 20 Apr 2015 11:17:09 +0000 (13:17 +0200)]
glcolorconvert: Apply GstVideoOverlayCompositionMeta buffer to converted buffer

Since glcolorconvert creates a new GstBuffer,
without the GstVideoOverlayCompositionMeta data,
it needs to be copied to not be dropped.

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

6 years agoglupload: Detect overlay meta buffers correctly
Lubosz Sarnecki [Thu, 18 Jun 2015 11:34:58 +0000 (13:34 +0200)]
glupload: Detect overlay meta buffers correctly

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

6 years agoglimagesinkbin: Add GstVideoOverlayCompositionMeta caps features
Lubosz Sarnecki [Thu, 18 Jun 2015 03:43:50 +0000 (05:43 +0200)]
glimagesinkbin: Add GstVideoOverlayCompositionMeta caps features

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

6 years agoglimagesink: Upload and draw overlays with GstGLOverlayCompositor
Lubosz Sarnecki [Thu, 18 Jun 2015 04:04:37 +0000 (06:04 +0200)]
glimagesink: Upload and draw overlays with GstGLOverlayCompositor

Receives the GstOverlayComposition buffer in the glimagesink and draws them.

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

6 years agogloverlaycompositor: Add GstGLOverlayCompositor class
Lubosz Sarnecki [Tue, 30 Jun 2015 15:59:12 +0000 (17:59 +0200)]
gloverlaycompositor: Add GstGLOverlayCompositor class

Manages the GstGLCompositionOverlay objects,
caches already uploaded overlays and draws them.

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

6 years agoglcompositionoverlay: Add compatibility for GL contexts without glGenVertexArrays
Lubosz Sarnecki [Thu, 18 Jun 2015 12:15:01 +0000 (14:15 +0200)]
glcompositionoverlay: Add compatibility for GL contexts without glGenVertexArrays

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

6 years agoglcompositionoverlay: Add class for managing GstVideoOverlayCompositionOverlay buffers
Lubosz Sarnecki [Sat, 13 Jun 2015 13:35:47 +0000 (15:35 +0200)]
glcompositionoverlay: Add class for managing GstVideoOverlayCompositionOverlay buffers

Add a class to store and manage the OpenGL texture,
vertex buffer and GstVideoOverlayRectangle.
Transforms overlay coordinate space to vertex buffer space with aspect ratios in mind.

= Example Pipelines =

Simple pipeline

gst-launch-1.0 videotestsrc ! \
  textoverlay text="Hello World" font-desc="sans bold 30" ! \
  glimagesink

Display 3 static overlays at different positions

gst-launch-1.0 videotestsrc ! \
  textoverlay text="text1" valignment="top" font-desc="sans bold 30" ! \
  textoverlay text="text2" halignment="right" font-desc="sans bold 30" ! \
  textoverlay text="text3" halignment="left" font-desc="sans bold 30" ! \
  glimagesink

Display subtitle file over testsrc

gst-launch-1.0 videotestsrc ! \
  textoverlay name=foo filesrc location=foo.srt ! subparse ! queue ! foo. foo. ! \
  glimagesink

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

6 years agoglupload: Move debug init to top of the file
Lubosz Sarnecki [Thu, 18 Jun 2015 09:33:29 +0000 (11:33 +0200)]
glupload: Move debug init to top of the file

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

6 years agoglmemory: check for pbo availability before attempting pbo download
Matthew Waters [Mon, 20 Jul 2015 08:19:02 +0000 (18:19 +1000)]
glmemory: check for pbo availability before attempting pbo download

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

6 years agoglcontext: fix get_current_gl_api on x11/nvidia drivers
Matthew Waters [Sat, 18 Jul 2015 07:19:18 +0000 (17:19 +1000)]
glcontext: fix get_current_gl_api on x11/nvidia drivers

They require to get_proc_address some functions through the
platform specific {glX,egl}GetProcAddress rather than the default
GL library symbol lookup.

6 years agoglcontext: consolidate get_proc_address function definition
Matthew Waters [Sat, 18 Jul 2015 07:08:36 +0000 (17:08 +1000)]
glcontext: consolidate get_proc_address function definition

Pass the GstGLAPI directly.

6 years agoglcolorconvertelement: propagate failure to convert buffer upstream
Matthew Waters [Fri, 17 Jul 2015 07:47:37 +0000 (17:47 +1000)]
glcolorconvertelement: propagate failure to convert buffer upstream

Rather than just silently continuing

6 years agoglcontext/glx: try creating a context with the highest version
Matthew Waters [Fri, 17 Jul 2015 03:48:00 +0000 (13:48 +1000)]
glcontext/glx: try creating a context with the highest version

nvidia drivers return the exact version in glGstString (GL_VERSION)
we request on creation so start with the highest known version and
work our way down.

6 years agoglcontext: track sharedness with a cookie
Matthew Waters [Wed, 15 Jul 2015 14:37:58 +0000 (00:37 +1000)]
glcontext: track sharedness with a cookie

The previous approach of traversing the other_context weak ref tree was
1. Less performant
2. Incorrect for context destruction removing a link in the tree

Example of 2:
c1 = context_create (NULL)
c2 = context_create (c1)
c3 = context_create (c2)
context_can_share (c1, c3) == TRUE
context_destroy (c2)
unref (c2)
context_can_share (c1, c3) returns FALSE when it should be TRUE!

This does not remove the restriction that context sharedness can only
be tracked between GstGLContext's.

6 years agoglcontext: use the debug object variant for completeness
Matthew Waters [Wed, 15 Jul 2015 14:33:17 +0000 (00:33 +1000)]
glcontext: use the debug object variant for completeness

6 years agouploadelement: Protect against NULL pointer
Nicolas Dufresne [Thu, 16 Jul 2015 20:47:05 +0000 (16:47 -0400)]
uploadelement: Protect against NULL pointer

I notice that if you stop the pipeline during a renegotiation
the upload may be NULL while an allocation query is being run.
In that scenario, returning FALSE to the allocation query is the
best thing.

6 years agoglupload: memcpy on raw data upload
Matthew Waters [Tue, 14 Jul 2015 07:40:32 +0000 (17:40 +1000)]
glupload: memcpy on raw data upload

Anything else requires keeping track of the GstVideoFrame mapping
across possible multiple buffers to ensure correct data pointer
usage.

6 years agoglbasebuffer: add some debug and zero the data pointers on init
Matthew Waters [Tue, 14 Jul 2015 07:39:59 +0000 (17:39 +1000)]
glbasebuffer: add some debug and zero the data pointers on init

6 years agogl/eagl: Don't call anything synchronously from the main thread
Sebastian Dröge [Mon, 6 Jul 2015 10:28:05 +0000 (13:28 +0300)]
gl/eagl: Don't call anything synchronously from the main thread

This will deadlock if the main thread is the one who creates the GstGLContext.
All things we call from the main thread should be possible from any thread.

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

6 years agodownload: only start a download transfer for sysmem caps features
Matthew Waters [Tue, 7 Jul 2015 12:35:47 +0000 (22:35 +1000)]
download: only start a download transfer for sysmem caps features

6 years agoglsyncmeta: transform func: return FALSE if not supported or failed
Hyunjun Ko [Tue, 7 Jul 2015 01:57:26 +0000 (10:57 +0900)]
glsyncmeta: transform func: return FALSE if not supported or failed

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

6 years agoandroid: add missing egl.h include
Matthew Waters [Tue, 7 Jul 2015 06:39:09 +0000 (16:39 +1000)]
android: add missing egl.h include

6 years agogltransformation: correct vao usage
Matthew Waters [Tue, 7 Jul 2015 05:30:17 +0000 (15:30 +1000)]
gltransformation: correct vao usage

keep the vao bound after uploading the new vertex data

fixes a mesa GL error "no vertex array object bound" on caps changes

6 years agogl: consolidate egl header includes to egl-only headers
Matthew Waters [Tue, 16 Jun 2015 07:49:34 +0000 (07:49 +0000)]
gl: consolidate egl header includes to egl-only headers

They may conflict with other headers.

6 years agoglvideomixer, glmixer: Add description and klass
Olivier Crête [Fri, 3 Jul 2015 16:17:42 +0000 (12:17 -0400)]
glvideomixer, glmixer: Add description and klass

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

6 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

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

6 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

6 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

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

6 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

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

6 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

6 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

6 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

6 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

6 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

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

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

6 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

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

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

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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

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

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

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

6 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

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

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

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

6 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

6 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

6 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

6 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

6 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

6 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

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

6 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'

6 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

6 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

6 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

6 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

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

6 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

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

6 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

6 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

6 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

6 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

6 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 = {
                                        ^

6 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));

6 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

6 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

6 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

6 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

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

6 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

6 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

6 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

6 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

6 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

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

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

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

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

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

6 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

6 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

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

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