Matthew Waters [Mon, 10 Aug 2015 13:44:54 +0000 (15:44 +0200)]
glcontext/wgl: implement gl3 core profile context selection
Lubosz Sarnecki [Sat, 28 Feb 2015 00:07:44 +0000 (01:07 +0100)]
gltransformation: implement pivot point for rotation and scale
https://bugzilla.gnome.org/show_bug.cgi?id=744763
Add a pivot vector for setting the origin of rotations and scales.
With the pivot point the rotation and scale operations can have
different origins. This adds the ability to rotate around different points.
Currently the default (0, 0) pivot point is possible,
a rotation around the center, and zooming into and out of the center.
With an pivot point this is optional.
I defined the following image coordinates for the pivot point:
(-1,1) ------------------------- (1,1)
| |
| |
| |
| (0,0) |
| |
| |
| |
(-1,-1) ------------------------- (1,-1)
Example:
Rotate the video at the bottom left corner
gst-launch-1.0 videotestsrc \
! gltransformation \
scale-x=0.5 \
scale-y=0.5 \
rotation-z=25.0 \
pivot-x=-1.0 \
pivot-y=-1.0 \
! glimagesink
The pivot-z option defines the pivot point in 3D space.
This only affects rotation, since we have no Z data to scale.
With this option a video can be rotated around a point in 3D space.
Example:
Rotate around point behind the video:
gst-launch-1.0 videotestsrc \
! gltransformation \
rotation-x=10.0 \
pivot-z=-4.0 \
! glimagesink
Nicolas Dufresne [Sat, 8 Aug 2015 18:45:42 +0000 (14:45 -0400)]
gloverlaycompositor: Add shader to convert BGRA/ARGB -> RGBA
Depending on the bytes order we will get BGRA (little) and ARGB (big)
from the composition overlay buffer while our GL code expects RGBA. Add
a fragment shader that do this conversion.
https://bugzilla.gnome.org/show_bug.cgi?id=752842
Matthew Waters [Sat, 8 Aug 2015 15:22:05 +0000 (17:22 +0200)]
gl/syncmeta: implement synchronisation without glFenceSync
Uses glFinish as that's the best we have for lesser OpenGL versions.
Matthew Waters [Sat, 8 Aug 2015 13:30:43 +0000 (15:30 +0200)]
tests/glcontext: fix INVALID_ENUM GL error in test
Matthew Waters [Sat, 8 Aug 2015 13:21:03 +0000 (15:21 +0200)]
context/glx: only use glXCreateContextAttribs for OpenGL 3 contexts
mesa for example when creating a GL 3.1 compatibility context
overrides our context profile selection to create a core context.
Matthew Waters [Mon, 3 Aug 2015 09:48:16 +0000 (19:48 +1000)]
glvideomixer: swap control binding proxy
The ref_object and object parameters were the wrong way around.
For the typical use case where an application is setting a
GstControlBinding on the returned ghost pad:
1. our control binding would be removed when the new one was set
2. sync_values calls were not being forwarded from the internal
pad to the ghost pad.
If an application attempts to perform other control binding
operations (get_* family of functions) on the internal pad, they
will also be forwarded to the ghost pad where a possible
GstControlBinding will provide the necessary values.
Luis de Bethencourt [Thu, 30 Jul 2015 10:12:21 +0000 (11:12 +0100)]
gstglfilterbin: remove unused variable
res is set multiple times but never used or returned. Removing it.
Sebastian Dröge [Wed, 29 Jul 2015 18:10:57 +0000 (19:10 +0100)]
glupload: Remove debug output from gst_gl_upload_transform_caps()
We can't know if the GstGLUpload type is initialized at this point already,
and thus our debug category might not be initialized yet... and cause an
assertion here.
As we don't print debug output for any of the other transform functions, let's
defer this problem for now.
Luis de Bethencourt [Wed, 29 Jul 2015 16:48:58 +0000 (17:48 +0100)]
glstereomix: remove redundant initialization
v is initialized in the for loop init, no need to do it twice. Removing
first initialization.
Nicolas Dufresne [Tue, 28 Jul 2015 15:20:40 +0000 (11:20 -0400)]
glcolorconvert-test: Test notify function for setup_wrapped
gst_gl_memory_setup_wrapped() now takes a destroy notify function. This
destroy notify is called to track the memory life time, hence will
notify each time a memory get destroyed. This test check that the
callback count is correct.
Nicolas Dufresne [Tue, 28 Jul 2015 15:06:43 +0000 (11:06 -0400)]
glcolorconvert-test: Fix build
Nicolas Dufresne [Tue, 28 Jul 2015 12:59:24 +0000 (08:59 -0400)]
glupload: Add fixme about using bufferpool for raw
http://bugzilla.gnome.org/show_bug.cgi?id=752937
Nicolas Dufresne [Mon, 27 Jul 2015 20:58:22 +0000 (16:58 -0400)]
glupload: Keep input frame mapped as long as needed
When performing a raw upload, we need to keep the raw data mapped as
long as needed.
https://bugzilla.gnome.org/show_bug.cgi?id=752937
Nicolas Dufresne [Mon, 27 Jul 2015 19:58:10 +0000 (15:58 -0400)]
Revert "glupload: memcpy on raw data upload"
This reverts commit
82c0189b2842e8729e82a4e73491dffc977bc7c2.
https://bugzilla.gnome.org/show_bug.cgi?id=752937
Matthew Waters [Mon, 27 Jul 2015 11:54:27 +0000 (21:54 +1000)]
glcontext/wgl: fix defenition of gst_gl_context_wgl_new
gstglcontext_wgl.c: In function 'gst_gl_context_wgl_new':
gstglcontext_wgl.c:83:40: error: 'display' undeclared (first use in this function)
Matthew Waters [Mon, 27 Jul 2015 10:03:05 +0000 (20:03 +1000)]
gl/cocoa: fix definition of gst_gl_context_new
gstglcontext_cocoa.m:75:1: error: conflicting types for 'gst_gl_context_cocoa_new'
Matthew Waters [Mon, 27 Jul 2015 10:00:47 +0000 (20:00 +1000)]
gl/win32: fix definition of gst_gl_window_win32_new
Matthew Waters [Mon, 27 Jul 2015 08:21:19 +0000 (18:21 +1000)]
wayland: fail window open if the display is the correct type
Errors out cleanly if a wayland compositor is not running
Matthew Waters [Fri, 24 Jul 2015 07:00:27 +0000 (17:00 +1000)]
glwindow: pass display to implementation's _new()
So they have to opportunity to fail if they cannot handle the
display connection.
https://bugzilla.gnome.org/show_bug.cgi?id=752743
Matthew Waters [Fri, 24 Jul 2015 06:11:38 +0000 (16:11 +1000)]
glcontext: pass display to implentation's _new()
This allows the context to fail creation based on incompatible
display type's. e.g. glx context with an wayland display handle.
https://bugzilla.gnome.org/show_bug.cgi?id=752743
Julien Isorce [Sun, 5 Jul 2015 23:52:06 +0000 (00:52 +0100)]
gl: support cgl, egl and glx within a same build
On osx, with the same build,
gst-launch-1.0 videotestsrc ! glimagesink works with:
GST_GL_PLATFORM=egl GST_GL_WINDOW=x11 GST_GL_API=gles2
GST_GL_PLATFORM=egl GST_GL_WINDOW=x11 GST_GL_API=opengl
GST_GL_PLATFORM=glx GST_GL_WINDOW=x11 GST_GL_API=opengl
GST_GL_PLATFORM=cgl GST_GL_WINDOW=cocoa GST_GL_API=opengl
GST_GL_PLATFORM=cgl GST_GL_WINDOW=cocoa GST_GL_API=opengl3
https://bugzilla.gnome.org/show_bug.cgi?id=752743
Jan Schmidt [Mon, 27 Jul 2015 06:36:40 +0000 (16:36 +1000)]
glupload: Check that caps contain desired caps features
Use 'contains' checks instead of equality checks on caps features
to allow for uploading when caps also contain GstVideoOverlayComposition
meta.
https://bugzilla.gnome.org/show_bug.cgi?id=752912
Julien Isorce [Sun, 5 Jul 2015 23:45:45 +0000 (00:45 +0100)]
gl: move GL_NUM_EXTENSIONS definition after gl.h
https://bugzilla.gnome.org/show_bug.cgi?id=752743
Julien Isorce [Thu, 23 Jul 2015 22:59:22 +0000 (23:59 +0100)]
caopengllayersink: remove unused label context_creation_error
Build error introduced by commit
5457e55f255518d679b59a170951e299ecd8c5f6
https://bugzilla.gnome.org/show_bug.cgi?id=750310
Tim-Philipp Müller [Thu, 23 Jul 2015 10:18:47 +0000 (11:18 +0100)]
glimagesink: fix allocation meta structure leak
gst_query_add_allocation_meta() does not take ownership
of the structure, for some reason.
CID 1312135
Luis de Bethencourt [Thu, 23 Jul 2015 09:57:26 +0000 (10:57 +0100)]
glupload: fix memory leak
GstCapsFeatures need to be freed with gst_caps_features_free() after use.
CID #1312136, CID #1312136
Olivier Crête [Fri, 3 Jul 2015 00:10:50 +0000 (20:10 -0400)]
glvideomixer: Add GstControlBinding proxy
This is used to proxy GstControlBinding to the pad on the
parent object. This avoid having to sync the values in the proxy pad,
this is too early if you have a queue between the pad and the actual
aggregation operation.
https://bugzilla.gnome.org/show_bug.cgi?id=734060
Nicolas Dufresne [Wed, 22 Jul 2015 20:58:12 +0000 (16:58 -0400)]
glupload: Forward composition meta even without params
When the sink does not know the window size (e.g not created yet)
it will not add any param to the the composition meta. This is no
reason not to forward this meta API. Fixes issue where it could not
attach until we resize the window.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Nicolas Dufresne [Wed, 22 Jul 2015 19:56:34 +0000 (15:56 -0400)]
gloverlaycompositor: Keep memory pointer alive
Keep the composition memory pointer alive while it's being
wrapped inside a GstGLMemory object.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Nicolas Dufresne [Wed, 22 Jul 2015 18:17:42 +0000 (14:17 -0400)]
gloverlaycompositor: Pass buffer stride
The overlay pixel buffer stride was not given back
to the GL image.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Nicolas Dufresne [Wed, 22 Jul 2015 18:05:34 +0000 (14:05 -0400)]
gloverlaycompositor: Hide GstCompsitionOverlay object
This object is only used inside the compositor and does not
need to be expose in libgstgl API.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Nicolas Dufresne [Wed, 22 Jul 2015 17:33:12 +0000 (13:33 -0400)]
libgstgl: Makefile style fix
Nicolas Dufresne [Wed, 22 Jul 2015 03:48:25 +0000 (23:48 -0400)]
composition-overlay: Positions are relative to texture
The coordinate are relative to the texture dimension and not
the window dimension now. There is no need to pass the window
dimension or to update the overlay if the dimension changes.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Lubosz Sarnecki [Wed, 22 Jul 2015 01:27:45 +0000 (21:27 -0400)]
gloverlaycompositor: Create own shader object
Make gloverlaycompositor independent of the shader used in the sink.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Nicolas Dufresne [Tue, 21 Jul 2015 22:47:56 +0000 (18:47 -0400)]
glimagesink: Properly handle compsositor life time
Should be created in READY_TO_PAUSED, not PAUSED_TO_PLAYING.
Should be cleared in PAUSED_TO_READY.
https://bugzilla.gnome.org/show_bug.cgi?id=745107
Julien Isorce [Tue, 21 Jul 2015 10:28:08 +0000 (11:28 +0100)]
caopengllayersink: use gst_gl_display_create_context
https://bugzilla.gnome.org/show_bug.cgi?id=750310
Julien Isorce [Tue, 21 Jul 2015 10:21:27 +0000 (11:21 +0100)]
glstereosplit: use gst_gl_display_create_context
Also unlock the lock on error.
https://bugzilla.gnome.org/show_bug.cgi?id=750310
Luis de Bethencourt [Tue, 21 Jul 2015 12:11:17 +0000 (13:11 +0100)]
gloverlaycompositor: for loop initial declarations are only allowed in C99 mode
Fixes compiler warnings
Julien Isorce [Fri, 19 Jun 2015 10:57:06 +0000 (11:57 +0100)]
gl: use gst_gl_display_create_context in more elements.
glbasefilter, glbasemixer and gltestsrc.
https://bugzilla.gnome.org/show_bug.cgi?id=750310
Matthew Waters [Tue, 21 Jul 2015 07:34:27 +0000 (17:34 +1000)]
gl/build: fix typo in _HEADERS resulting in installing the wrong file
/usr/include/gstreamer-1.0/gst/gl/gl.h:51:43: fatal error:
gst/gl/gstgloverlaycompositor.h: No such file or directory
Matthew Waters [Tue, 21 Jul 2015 05:39:35 +0000 (15:39 +1000)]
glcolorconvert: add RGB to NV12/NV21 conversion
Lubosz Sarnecki [Wed, 1 Jul 2015 12:01:45 +0000 (14:01 +0200)]
glimagesink: Send reconfigure event when window size changes
https://bugzilla.gnome.org/show_bug.cgi?id=745107
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
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
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
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
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
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
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
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
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
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
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.
Matthew Waters [Sat, 18 Jul 2015 07:08:36 +0000 (17:08 +1000)]
glcontext: consolidate get_proc_address function definition
Pass the GstGLAPI directly.
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
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.
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.
Matthew Waters [Wed, 15 Jul 2015 14:33:17 +0000 (00:33 +1000)]
glcontext: use the debug object variant for completeness
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.
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.
Matthew Waters [Tue, 14 Jul 2015 07:39:59 +0000 (17:39 +1000)]
glbasebuffer: add some debug and zero the data pointers on init
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
Matthew Waters [Tue, 7 Jul 2015 12:35:47 +0000 (22:35 +1000)]
download: only start a download transfer for sysmem caps features
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
Matthew Waters [Tue, 7 Jul 2015 06:39:09 +0000 (16:39 +1000)]
android: add missing egl.h include
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
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.
Olivier Crête [Fri, 3 Jul 2015 16:17:42 +0000 (12:17 -0400)]
glvideomixer, glmixer: Add description and klass
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.
Nicolas Dufresne [Fri, 26 Jun 2015 19:34:35 +0000 (15:34 -0400)]
gl: Don't leak pool if set_config failed
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.
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
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
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.
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
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.
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
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
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
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
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
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.
Julien Isorce [Thu, 18 Jun 2015 09:52:18 +0000 (10:52 +0100)]
Revert "gl: add GstGLContextGPUProcess backend"
This reverts commit
b377112ee38912d316e77b4e2102041389dc0051.
Jan Schmidt [Fri, 19 Jun 2015 04:35:37 +0000 (14:35 +1000)]
glimagesink: Remove duplicate, useless line of code
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.
Nicolas Dufresne [Thu, 18 Jun 2015 22:09:55 +0000 (18:09 -0400)]
glviewconvert: Fix GLES2 compatibility
Nicolas Dufresne [Thu, 18 Jun 2015 22:02:21 +0000 (18:02 -0400)]
glviewconvert: Fix broken validity check
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
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
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
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
Matthew Waters [Mon, 15 Jun 2015 12:43:54 +0000 (22:43 +1000)]
glimagesink: add missing handle-events/ignore-alpha property to the bin
Matthew Waters [Mon, 15 Jun 2015 06:47:15 +0000 (16:47 +1000)]
gl/examples: update qt examples for api changes
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
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
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.
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.
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.
Matthew Waters [Wed, 10 Jun 2015 06:23:36 +0000 (16:23 +1000)]
gl/prototypes: add some buffer function prototypes