Luis de Bethencourt [Tue, 12 Apr 2016 10:14:22 +0000 (11:14 +0100)]
gltestsrc: don't dereference null pointer
funcs can be NULL, it is one of the two conditions of the OR statement
above, so confirm it isn't before dereferencing with funcs->free.
CID 1358388
Matthew Waters [Wed, 6 Apr 2016 04:15:40 +0000 (04:15 +0000)]
glupload: keep the parent buffer around when converting EGLImage to 2D textures
e.g. receiving and releasing a buffer from OMX too early will potentially
cause textures to be overwritten while/before they are displayed.
Matthew Waters [Mon, 11 Apr 2016 16:43:45 +0000 (16:43 +0000)]
glbasemixer: chain up to the parent implementation
Alessandro Decina [Sun, 10 Apr 2016 22:34:00 +0000 (08:34 +1000)]
libgstgl: cocoa, eagl: use libdispatch to schedule GL calls
Use libdispatch instead of GMainLoop to dispatch GL calls. libdispatch is more
optimized and cuts a lot of poll()/pthread_* overhead.
Alessandro Decina [Sun, 10 Apr 2016 22:02:45 +0000 (08:02 +1000)]
glwindow: reduce the number of GMutexes and GConds in send_message()
Don't create many short lived locks/conds in gst_gl_window_send_message. This is
a micro optimization to save a bunch of pthread_* calls which are expensive on
OSX/iOS and possibly other platforms.
Matthew Waters [Mon, 4 Apr 2016 10:55:51 +0000 (20:55 +1000)]
videoaggregator: repect the result of find_best_format in the default update_caps
We weren't using the result of find_best_format at all.
Also, move the find_best_format usage to the default update_caps() to make
sure that it is also overridable.
https://bugzilla.gnome.org/show_bug.cgi?id=764363
Matthew Waters [Wed, 23 Mar 2016 03:16:11 +0000 (03:16 +0000)]
glvideomixer: add support for the affine transformation meta
Matthew Waters [Wed, 23 Mar 2016 03:14:40 +0000 (03:14 +0000)]
glimagesink: support the affine transformation meta for any texture target
Matthew Waters [Tue, 5 Apr 2016 06:22:49 +0000 (16:22 +1000)]
glmixer: set the current texture to 0 before mapping
If we fail mapping, we don't want to use undefined video data in the subclass.
Matthew Waters [Mon, 4 Apr 2016 03:43:30 +0000 (13:43 +1000)]
glmixerbin: proxy the start-time-* properties from aggregator
Matthew Waters [Tue, 22 Mar 2016 07:19:03 +0000 (07:19 +0000)]
eglimage: perform eglCreateImage in the gl thread
while calling eglCreateImage without a GL context current in the executing
thread works on the RPi, some other implementations will return errors.
Marshall the eglCreateImage to the GL thread to appease these implementations.
Matthew Waters [Fri, 1 Apr 2016 03:58:56 +0000 (14:58 +1100)]
glviewconvert: support outputting to multiple draw buffers on GLES3
A similar change that was done to glcolorconvert adding the necessary shader
mangling.
Matthew Waters [Thu, 31 Mar 2016 08:50:28 +0000 (19:50 +1100)]
glcolorconvert: implement multiple render targets for GLES3
There are numerous slight differences required between Desktop GL and GLES3 for
multiple render targets.
1. gl_FragData doesn't exist at all and one is required to use
'layout (location = ?) out ...' instead.
2. gl_FragColor doesn't exist, same as 1
3. texture2D() has been deprecated
Fortunately most of these have been taken care of with GL3 and the shader
mangling already exists so just expand the conditions they are used in. The
gl_FragData issue requires a new mangle pass though. We also use this new
pass on desktop GL for consistency.
Matthew Waters [Thu, 31 Mar 2016 13:23:25 +0000 (00:23 +1100)]
gl/build: add missing '\' at the end of the line in MakeFile.am
Otherwise the following elements aren't included in the correct variable.
Fixes error in 'make distcheck' failing to find gstgltestsrc.h
Matthew Waters [Thu, 31 Mar 2016 09:00:37 +0000 (20:00 +1100)]
glcolorconvert: don't use the predefined variable name sample
Using 'sample' as a variable name is an error in GLES3
Matthew Waters [Tue, 22 Mar 2016 12:10:24 +0000 (23:10 +1100)]
gl/examples: fix switchvideooverlay for wayland
and call XInitThreads() for X11
Matthew Waters [Mon, 21 Mar 2016 04:25:21 +0000 (15:25 +1100)]
gl/examples: remove duplicated videooverlay example
filtervideooverlay proved the exact same example (only with a extra glfiltercube).
Matthew Waters [Mon, 21 Mar 2016 04:23:41 +0000 (15:23 +1100)]
gl/examples/3d: additions for wayland support
Matthew Waters [Thu, 17 Mar 2016 12:50:00 +0000 (23:50 +1100)]
gldifferencematte: port to gl3/gles2
Matthew Waters [Fri, 26 Feb 2016 09:55:47 +0000 (20:55 +1100)]
gltestsrc: port to gles2/gl3
This makes gltestsrc work everywhere \o/
- workaround RPi returning invalid values for positive coords in the
checker shader
- reduce the number of iterations in the mandelbrot shader for gles2
https://bugzilla.gnome.org/show_bug.cgi?id=751540
Matthew Waters [Fri, 26 Feb 2016 05:57:47 +0000 (16:57 +1100)]
gltestsrc: port smpte pattern to shaders
Loosely based on patch by
Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
https://bugzilla.gnome.org/show_bug.cgi?id=751540
Matthew Waters [Fri, 26 Feb 2016 01:02:15 +0000 (12:02 +1100)]
gltestsrc: implement the circular method
https://bugzilla.gnome.org/show_bug.cgi?id=759801
Matthew Waters [Thu, 25 Feb 2016 10:18:31 +0000 (21:18 +1100)]
gltestsrc: add a generic src framework
Any unsupported pattern (circular) results in an error
Matthew Waters [Mon, 29 Feb 2016 09:15:24 +0000 (20:15 +1100)]
glsterosplit: remove internal glupload/glcolorconvert
They are provided separately as elements and no other element contains the
internal references to glupload/glcolorconvert.
Matthew Waters [Thu, 31 Mar 2016 08:43:04 +0000 (19:43 +1100)]
gl: add support for building against GLES3 headers
with a fallback to GLES2 headers if available.
Matthew Waters [Thu, 31 Mar 2016 08:38:12 +0000 (19:38 +1100)]
glmemory: add checking the read implementation format/type on gles2 platforms
By default, reading GL_RED or GL_RG us unsupported by glReadPixels unless
exposed through GL_COLOR_READ_IMPLEMENTATION_FORMAT/TYPE. This allows
downloading multiple-planar video frames where possible.
Matthew Waters [Thu, 31 Mar 2016 08:35:09 +0000 (19:35 +1100)]
glbasememory: rollback map state when subclass map fails
Otherwise our state doesn't reflect reality.
Matthew Waters [Thu, 31 Mar 2016 08:31:00 +0000 (19:31 +1100)]
glmemorypbo: unmap pbo memory on pbo read error
Otherwise we are returning failure with a dangling map!
Also only unset the NEED_DOWNLOAD flag in download_transfer() if the read actually
succeeds.
Matthew Waters [Thu, 31 Mar 2016 08:25:32 +0000 (19:25 +1100)]
glshader: add glBindFragDataLocation
There are some cases where it's needed for binding in/out variables in shaders.
e.g. glsl 150 (gl 3.2) doesn't support the 'layout (location = ?)' specifiers in
the shader source so we have to bind them ourselves.
Vineeth TM [Fri, 4 Mar 2016 06:50:26 +0000 (15:50 +0900)]
bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
Sebastian Dröge [Thu, 24 Mar 2016 12:08:46 +0000 (14:08 +0200)]
gl/gtk: Fix compiler warning in example
fxtest.c: In function ‘main’:
fxtest.c:190:3: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
GtkWidget *window;
^~~~~~~~~
Matthew Waters [Tue, 22 Mar 2016 07:20:59 +0000 (07:20 +0000)]
gl/proto: sync operations are available on GLES 3.0
Without the GST_GL_API_GLES2 bit set, we will not even attempt to look
for the function pointers in the core library and will fallback to
glFlush/glFinish.
Matthew Waters [Thu, 17 Mar 2016 11:43:12 +0000 (22:43 +1100)]
glmemory: unset GL_UNPACK_ROW_LENGTH in opengl3
If the user uploads their own texture without setting the unpack length, then
then the result will have the appearance of stride mismanagement due to
an incorrect row length.
Matthew Waters [Thu, 17 Mar 2016 05:34:42 +0000 (16:34 +1100)]
gl/examples/qt: restrict the GL API to opengl where needed
Until the examples are ported to opengl3/gles2, they will not work with any
other GL api.
Matthew Waters [Thu, 17 Mar 2016 05:31:52 +0000 (16:31 +1100)]
gl/examples/gtk: call XInitThreads
Fixes some sporadic X11 threading assertions.
Matthew Waters [Wed, 16 Mar 2016 16:06:05 +0000 (03:06 +1100)]
glutils: remove custom code for setting caps features
Just use gst_caps_set_features() instead.
Matthew Waters [Wed, 16 Mar 2016 14:52:00 +0000 (01:52 +1100)]
glfilter: only allow the same src/sink caps when we are in passthrough mode
If we are given caps with extra features (like the overlay composition
features), we can only deal with that when we are in passthrough mode.
Previously we were bailing entirely and not allowing passthrough filter elements
with things like textoverlay.
Fixes the following pipeline (assuming glfilter supports passthrough):
gl ! textoverlay ! glfilter ! ... ! glimagesinkelement
https://bugzilla.gnome.org/show_bug.cgi?id=763756
Matthew Waters [Wed, 16 Mar 2016 11:48:00 +0000 (22:48 +1100)]
glupload: deal with the ANY caps feature correctly
When transforming, xplode it out into the necessary caps features both
with and without the passthough features.
Fixes negotiation in the following class of pipelines:
gl ! textoverlay ! glupload ! glimagesinkelement
https://bugzilla.gnome.org/show_bug.cgi?id=763756
Matthew Waters [Wed, 16 Mar 2016 11:16:34 +0000 (22:16 +1100)]
glstereo{mix,split}: allow running on GLES 2/3
It's mostly supported for GLES 2.x, fully supported on GLES 3.x
Matthew Waters [Thu, 10 Mar 2016 14:40:39 +0000 (01:40 +1100)]
gleffects; give each effect a unique long name and description
Gives applications that scrape the factory details more detailed and unique
details on the exact element.
https://bugzilla.gnome.org/show_bug.cgi?id=760566
Matthew Waters [Thu, 10 Mar 2016 06:46:05 +0000 (17:46 +1100)]
glshader: some compatibility changes for GL 1.4
GL 1.4 (with GL_ARB_shader_objects) doesn't have glIsProgram or glIsShader
equivalents. As they are simply assertions, skip them when there isn't a
valid function pointer.
Matthew Waters [Wed, 9 Mar 2016 13:29:41 +0000 (00:29 +1100)]
glfilterapp: update for the use of shaders
Fixes black output when placed in pipelines (using the default drawing).
https://bugzilla.gnome.org/show_bug.cgi?id=763365
Matthew Waters [Wed, 9 Mar 2016 13:27:53 +0000 (00:27 +1100)]
glfilter: retrieve the shader attributes from the GL thread
Otherwise we will receive bogus values
https://bugzilla.gnome.org/show_bug.cgi?id=763365
Matthew Waters [Wed, 9 Mar 2016 13:24:48 +0000 (00:24 +1100)]
gl/examples/cube*: choose opengl by default
The examples don't work with any other GL API.
Also fix the yuv example to not translate the cube out of the clipping area.
Matthew Waters [Wed, 9 Mar 2016 13:23:14 +0000 (00:23 +1100)]
gl/examples/fxtest: add needed glupload to the pipeline
Fixes a negotiation failure in the example
Vineeth TM [Wed, 9 Mar 2016 02:58:43 +0000 (11:58 +0900)]
glimagesink: Fix window memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=763356
Matthew Waters [Mon, 7 Mar 2016 15:06:46 +0000 (02:06 +1100)]
glvideomixer: signal continuation in reset
We want to iterate over all the pads, not just the first one. Fix by returning
TRUE in the GstAggregatorPadForeachFunc.
Removes a GST_IS_GL_CONTEXT() assertion on shutdown with >2 inputs
using gst-launch.
Matthew Waters [Mon, 7 Mar 2016 13:35:22 +0000 (00:35 +1100)]
gldisplay: make readding the same context a no-op
With
e38af2304427db908a16bbae0e60aa68be1ba5b5 returning the correct contexts,
gst_gl_display_add_context() was susceptible to causing infinte loops when
adding the same GstGLContext more than once. Fix and add a test for
gst_gl_display_add_context().
Fixes glvideomixer gst-validate tests.
Sebastian Dröge [Mon, 7 Mar 2016 06:52:54 +0000 (08:52 +0200)]
Revert "libgstgl: cocoa, eagl: don't marshal GL calls to the context thread"
This reverts commit
797d6415dfd6e111efb2cab544958a67cbf22b17.
We're frozen for 1.8.0 release and this change might have bigger impact.
Alessandro Decina [Mon, 7 Mar 2016 05:03:25 +0000 (16:03 +1100)]
libgstgl: cocoa, eagl: don't marshal GL calls to the context thread
Execute GL calls without marshalling them to the context thread. In the cocoa
and eagl backends calling gst_gl_context_activate is cheap and therefore calling
it on the current thread and serializing GL calls with a per-context lock is
more efficient (faster and has less overhead) than marshalling everything to the
context thread.
This optimization cuts a large overhead in g_poll (continuously waking up the
context thread) and in g_mutex_*/g_cond_* (waiting for results from the context
thread).
Mark Nauwelaerts [Sat, 5 Mar 2016 16:16:24 +0000 (17:16 +0100)]
gldisplay: really retrieve glcontext for a specific thread
When requesting a glcontext (regardless of thread), the result was correct.
However, when requesting current glcontext on a specific thread, it could
come up with a glcontext active on another thread.
https://bugzilla.gnome.org/show_bug.cgi?id=763168
Matthew Waters [Sun, 6 Mar 2016 08:35:38 +0000 (19:35 +1100)]
gl: misc docs fixes/additions
Matthew Waters [Sun, 6 Mar 2016 08:32:21 +0000 (19:32 +1100)]
gl*memory: document new functionality and objects
Mark Nauwelaerts [Sat, 5 Mar 2016 18:48:45 +0000 (19:48 +0100)]
glfilter: handle some more unfixed fields when fixating caps
Nicolas Dufresne [Fri, 4 Mar 2016 00:45:43 +0000 (19:45 -0500)]
glbasememory: Don't change maxsize at run-time
Maxsize is initialized once and should never change. Allocating data
should have no impact on the selected max size for this memory. This
causing memory map failure as the maxsize would become smaller then
size. This happened when using direct rendering in avviddec on GL that
does not support PBO transfer.
https://bugzilla.gnome.org/show_bug.cgi?id=763045
Matthew Waters [Wed, 17 Feb 2016 09:13:21 +0000 (20:13 +1100)]
eglimagememory: add compatibility definitions for EGL dmabuf
e.g. the RPi doesn't have them defined
Matthew Waters [Thu, 25 Feb 2016 21:34:11 +0000 (08:34 +1100)]
glcontext: add a method to add a context to another share group
Intended for use with wrapped contexts that are created shared with gst's
gl contexts in order to manage the internal sharegroup state correctly.
e.g. with caopengllayer (which is used in glimagesink and caopengllayersink
on OS X), we create a CGL context from the gst context and the sharing state
was not being correctly set on either GL context and gst_gl_context_is_shared()
was always returning FALSE.
With
11fb4fff80b63b9d67a731d4bb238b6c0a29d774 only flushing with multiple
shared contexts, the required flush was not occuring causing screen
corruption or stuttering.
Note: this didn't affect GST_GL_API=opengl pipelines
https://bugzilla.gnome.org/show_bug.cgi?id=762620
Wang Xin-yu (王昕宇) [Wed, 24 Feb 2016 02:45:17 +0000 (10:45 +0800)]
glmixer: iterator didn't advance in continue statement
Leading to a deadlock.
https://bugzilla.gnome.org/show_bug.cgi?id=760873
Matthew Waters [Mon, 22 Feb 2016 10:03:14 +0000 (21:03 +1100)]
gl: fix the build
2d287812 was incomplete
Matthew Waters [Mon, 22 Feb 2016 09:49:52 +0000 (20:49 +1100)]
gl: error out if the configured GL API is unsupported by our element
https://bugzilla.gnome.org/show_bug.cgi?id=759801
Julien Isorce [Thu, 18 Feb 2016 14:32:23 +0000 (14:32 +0000)]
uninstalled.pc: add support for non libtool build systems
Currently the .la path is provided which requires to use libtool as
mentioned in the GStreamer manual section-helloworld-compilerun.html.
It is fine as long as the application is built using libtool.
So currently it is not possible to compile a GStreamer application
within gst-uninstalled with CMake or other build system different
than autotools.
This patch allows to do the following in gst-uninstalled env:
gcc test.c -o test $(pkg-config --cflags --libs gstreamer-1.0 \
gstreamer-gl-1.0)
Previously it required to prepend libtool --mode=link
https://bugzilla.gnome.org/show_bug.cgi?id=720778
Julien Isorce [Thu, 18 Feb 2016 16:21:38 +0000 (16:21 +0000)]
gldebug: make sure debug is initialized when calling gst_gl_insert_debug_marker
Usually gl debug is initialized in gst_gl_context_create_thread.
But this function is not used when using the GstGLContextGPUProcess
from ChromiumGStreamerBackend.
Received signal 11 SEGV_MAPERR
000000000000
gst_debug_category_get_threshold
gst_gl_insert_debug_marker
gst_gl_base_filter_gl_start
Sebastian Dröge [Thu, 18 Feb 2016 08:33:20 +0000 (10:33 +0200)]
gl: Fix compiler warning about unused const variable with gcc 6
CC libgstgl_x11_la-gstglcontext_glx.lo
In file included from gstglcontext_glx.c:39:0:
../utils/opengl_versions.h:52:43: error: ‘gles2_versions’ defined but not used [-Werror=unused-const-variable]
static const struct { int major, minor; } gles2_versions[] = {
^~~~~~~~~~~~~~
Sebastian Dröge [Thu, 18 Feb 2016 08:29:21 +0000 (10:29 +0200)]
gl: Move private headers from SOURCES to noinst_HEADERS
Matthew Waters [Wed, 17 Feb 2016 02:00:46 +0000 (13:00 +1100)]
glfilter: insert the debug marker from the GL thread
https://bugzilla.gnome.org/show_bug.cgi?id=761538
Matthew Waters [Wed, 17 Feb 2016 00:42:23 +0000 (11:42 +1100)]
glimagesink: remove unsed reconfigure variable
Matthew Waters [Wed, 13 Jan 2016 02:17:56 +0000 (13:17 +1100)]
glimagesink: don't push a reconfigure event from the GL thread
Doing so may cause deadlocks when other elements attempt destroy or created
GL resources.
https://bugzilla.gnome.org/show_bug.cgi?id=760559
Wang Xin-yu (王昕宇) [Thu, 21 Jan 2016 02:40:36 +0000 (10:40 +0800)]
glvideomixer: don't leak pad's vertex buffer on release_pad
https://bugzilla.gnome.org/show_bug.cgi?id=760873
Matthew Waters [Tue, 16 Feb 2016 14:08:18 +0000 (01:08 +1100)]
glmixer: Remove usage of GstGLMixerFrameData
Subclasses can just iterate over the list of pads themselves
https://bugzilla.gnome.org/show_bug.cgi?id=760873
Matthew Waters [Wed, 13 Jan 2016 03:41:22 +0000 (14:41 +1100)]
glmixer: don't hold the object lock while calling into GL
Doing so can deadlock between the GL thread and the object lock e.g.
when performing reconfigure events in glimagesink on a resize event.
https://bugzilla.gnome.org/show_bug.cgi?id=760559
Sebastian Dröge [Tue, 16 Feb 2016 06:48:23 +0000 (08:48 +0200)]
gl: Remove leftover g_prints
One was commented out, but we also don't use // comments :)
Matthew Waters [Tue, 16 Feb 2016 03:41:37 +0000 (14:41 +1100)]
gldebug: use the correct spelling for behavior
The headers use the american spelling of behavior not the UK/AUS version with
the extra U.
Matthew Waters [Tue, 16 Feb 2016 02:58:42 +0000 (13:58 +1100)]
glcontext: don't enable GL debug for messages that won't be logged
This is an optimization to avoid pointless string processing.
Alessandro Decina [Tue, 16 Feb 2016 02:01:20 +0000 (13:01 +1100)]
glvideoflip: don't ignore method changes when caps aren't set (yet)
Tim-Philipp Müller [Wed, 10 Feb 2016 10:31:19 +0000 (10:31 +0000)]
gl: syncmeta: define GL_TIMEOUT_IGNORED in more portable way
Alessandro Decina [Wed, 10 Feb 2016 05:37:22 +0000 (16:37 +1100)]
gstglshader: cache uniform locations
Avoid redundant calls to glGetUniformLocation. The results can be cached once
the shader has been linked.
Alessandro Decina [Wed, 10 Feb 2016 02:08:43 +0000 (13:08 +1100)]
gstglcontext: micro optimization to gst_gl_context_thread_add
Invoke the callback right away when called on the context thread. Removes
overhead when nesting libgstgl calls (for example when working with the sync
meta).
Matthew Waters [Tue, 9 Feb 2016 02:08:21 +0000 (13:08 +1100)]
glsyncmeta: add compatibility definition for GL_TIMEOUT_IGNORED
Matthew Waters [Tue, 9 Feb 2016 01:14:04 +0000 (12:14 +1100)]
glsyncmeta: separate out gpu/cpu waits.
CPU waits are more expensive and are only required if the CPU is ever going to
access the data. GPU waits perform inter-context synchronisation and are cheaper
as they don't require CPU intervention.
Matthew Waters [Mon, 8 Feb 2016 01:23:12 +0000 (12:23 +1100)]
gleffects: identity: add the shader to the hash table
So that we don't recreate it every frame and leak memory.
https://bugzilla.gnome.org/show_bug.cgi?id=761578
Matthew Waters [Thu, 4 Feb 2016 23:43:49 +0000 (10:43 +1100)]
gl: add .def file for msvc builds
Also internalize some API from being exported.
Luis de Bethencourt [Thu, 4 Feb 2016 12:17:31 +0000 (12:17 +0000)]
glquery: remove unnecessary pointer check
All uses of query->context in gstglquery.c assume it exists. We can assume
this as well before unrefing it. Furthermore, gst_object_unref() will just
silently return if it ever were to not exist.
Matthew Waters [Thu, 4 Feb 2016 06:31:03 +0000 (17:31 +1100)]
glbasefilter: enable qos by default
Improves the responsiveness of the pipeline when resources are close/above the
limitations of the hardware.
Any subclass that wishes not to enable qos can do so themselves.
https://bugzilla.gnome.org/show_bug.cgi?id=761519
Matthew Waters [Tue, 2 Feb 2016 23:59:23 +0000 (10:59 +1100)]
gltransformation: reconfigure the src when changing to/from passthrough
Otherwise it's very possible that any GL resources have not been created yet.
Matthew Waters [Tue, 2 Feb 2016 23:52:08 +0000 (10:52 +1100)]
glvideoflip: correctly update the output caps on method changes
When changing methods we may need different output caps.
Matthew Waters [Tue, 2 Feb 2016 07:36:34 +0000 (18:36 +1100)]
Revert "gl/eagl: try getting a gles3 context"
This reverts commit
96b9666d596be115fd4b446ef846508b7fd05c24.
This reverts commit
d11385d167d8843604ea23a05e2dea40b8bbac35.
This breaks the texture sharing with the applemedia elements as
CVOpenGLESTextureCache seems to have an arbitrary restriction on GLES2 only.
Matthew Waters [Tue, 2 Feb 2016 05:21:14 +0000 (16:21 +1100)]
glcolorconvert: don't skip subset structures
We may need them to transform into a different set of formats.
Fixes YUV->YUV with two glcolorconverts, e.g:
format=I420 ! glcolorconvert ! glcolorconvert ! format=NV12
Matthew Waters [Tue, 2 Feb 2016 05:19:54 +0000 (16:19 +1100)]
glbasefilter: always call gl_start when not called already
Fixes elements transitioning out of passthrough mode using GL resources that
hadn'e been allocated yet.
Matthew Waters [Tue, 2 Feb 2016 04:14:25 +0000 (15:14 +1100)]
glcolorconvert: fix RGB,rectangle->planar YUV conversion
Converting to GRAY is no fun. Another case of normalized vs unnormalized
texture coordinates.
Matthew Waters [Tue, 2 Feb 2016 02:51:18 +0000 (13:51 +1100)]
glcolorconvert: fix YUY2/UYVY,rectangle->RGB conversion
1.0 / width does not offset by one pixel in rectangular textures (which use
unnormalized coordinates).
Provide the actual pixel offset as a uniform to the shader.
Matthew Waters [Tue, 2 Feb 2016 01:50:26 +0000 (12:50 +1100)]
glcolorconvert: perform better negotiation
1. Correctly describe what we can caps we can transform to/from.
i.e. no YUV->YUV or GRAY->YUV or YUV->GRAY (except for passthrough).
2. Prefer similar formats and ignore incompatible formats on fixation.
Julien Isorce [Mon, 1 Feb 2016 12:23:32 +0000 (12:23 +0000)]
gstglwindow: initialize navigation_loop to NULL
Useful when gst_gl_window.c::gst_gl_window_new is not used.
This is the case when using a custom GstGLWindow.
(ex: GstGLWindowGPUProcess from Chromium)
Tim-Philipp Müller [Mon, 1 Feb 2016 09:26:37 +0000 (09:26 +0000)]
gl: eagl: fix build
gstglcontext_eagl.m:238:45: error: too few arguments to function call,
expected at least 4, have 3
Alessandro Decina [Mon, 1 Feb 2016 04:13:03 +0000 (15:13 +1100)]
gldownload: allow video/x-raw as input
...and just passthrough. This is useful for pipelines where downstream must be
non-GL but upstream can optionally be GL.
Matthew Waters [Mon, 1 Feb 2016 01:57:32 +0000 (12:57 +1100)]
gl/eagl: try getting a gles3 context
Fallback to a gles2 context if that fails
Wang Xin-yu (王昕宇) [Thu, 21 Jan 2016 08:10:48 +0000 (16:10 +0800)]
glvideomixer: fix checker vbo leak
https://bugzilla.gnome.org/show_bug.cgi?id=760925
Wang Xin-yu (王昕宇) [Fri, 29 Jan 2016 02:35:15 +0000 (10:35 +0800)]
glprototypes: fix parameter type of glGenBuffers
The number of buffers should be GLsizei instead of GLuint.
https://bugzilla.gnome.org/show_bug.cgi?id=761272
Haihua Hu [Tue, 8 Dec 2015 06:09:58 +0000 (14:09 +0800)]
gleffects: fix gleffects fisheye shader compile error
On some embedded systems, sqrt() is not supported in the shader,
use the actual value of sqrt(2) instead.
Signed-off-by: Haihua Hu <b55597@freescale.com>
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=761271
Matthew Waters [Fri, 29 Jan 2016 03:03:26 +0000 (14:03 +1100)]
glvideomixer: par may not exist in the caps
Fixes a critical in the gst-validate tests:
gst_structure_fixate_field_nearest_fraction: assertion 'gst_structure_has_field
(structure, field_name)
Matthew Waters [Fri, 29 Jan 2016 01:45:57 +0000 (12:45 +1100)]
glcontext: back out unintended lost_context changes