Matthew Waters [Wed, 5 Oct 2016 07:28:48 +0000 (18:28 +1100)]
gluploadelement: fix leak of upload library object
When only linking the element, the upload object will be created from
_transform_caps() but will never be unreffed as the only case is in _stop().
Add an unref if non-NULL to a new finalize handler for this case.
Matthew Waters [Thu, 29 Sep 2016 01:45:57 +0000 (11:45 +1000)]
tests/gl: make sure all GL commands are executed on the GL thread
e.g. the final glGetError() must also be completed on the GL thread
Matthew Waters [Wed, 28 Sep 2016 08:04:21 +0000 (18:04 +1000)]
gl/win32: remove egl implementation
It hasn't been used in ages and is dead code.
Gwang Yoon Hwang [Thu, 5 May 2016 06:53:57 +0000 (15:53 +0900)]
gl/dispmanx: Implements set_render_rectangle to adjust the position of window
We cannot set the x, y coordinate of the video frame at the dispmanx at
this point. We need to teach dispmanx backend to understand about
set_render_rectangle API to draw a video with other UI.
This patch keeps the current behavior which places video frame at the
center of the display if there is no set_render_rectangle call to the
dispmanx window.
https://bugzilla.gnome.org/show_bug.cgi?id=766018
Matthew Waters [Wed, 28 Sep 2016 05:20:25 +0000 (15:20 +1000)]
gl: add necessary padding bytes to all public structs
Matthew Waters [Thu, 22 Sep 2016 08:19:36 +0000 (18:19 +1000)]
gldisplay: also free the GWeakRef when removing dead contexts
Otherwise we leak GWeakRef's.
Found with make -C tests/check libs/gstglcontext.valgrind
Matthew Waters [Mon, 19 Sep 2016 06:54:43 +0000 (16:54 +1000)]
glcolorbalance: reconfigure on passthrough changes
Fixes an assertion when moving from passthrough to non-passthrough
Without an explicit reconfigure, glfiter won't have created the GL
resources such as the FBO, GL bufferpool, etc and basetransform will
allocate sysmem buffers instead.
Matthew Waters [Fri, 9 Sep 2016 13:24:01 +0000 (23:24 +1000)]
meson/gl: use separate deps for gl and glx
e.g. passing with_gl_api=gles2 would still build the glx code but not be
linking against the libGL library which is where the glX* functions are
located and would result in a linker error.
Solved by checking for the libGL library if either opengl or glx may be
needed and then disabling the corresponding deps as requested.
Matthew Waters [Fri, 9 Sep 2016 01:08:53 +0000 (11:08 +1000)]
meson: add some starting build files for GL
Currently only works on linux with egl/glx + wayland/x11 but the general
principals have been layed out for adding the other GL platforms/winsys'.
Alistair Buxton [Wed, 7 Sep 2016 19:11:55 +0000 (20:11 +0100)]
gl/examples: Really remove references to $(GST_PLUGINS_GL_*).
These seem to have been missed in the previous commit to this file.
https://bugzilla.gnome.org/show_bug.cgi?id=771023
Alistair Buxton [Wed, 7 Sep 2016 19:07:26 +0000 (20:07 +0100)]
gl: Remove duplicate GL_CFLAGS in Makefile.am.
https://bugzilla.gnome.org/show_bug.cgi?id=771021
Alessandro Decina [Mon, 5 Sep 2016 04:44:24 +0000 (14:44 +1000)]
glupload: create the GstGLUpload object in ::transform_caps
Previously it was created in the init function and destroyed in ::stop, which
lead to segfaults when reusing the element.
Now the upload object is created in ::transform_caps if it is NULL, which is the
earliest we need it. The other vfuncs already bail out if the upload object is
NULL, which means that negotiation wasn't done.
Jan Schmidt [Tue, 30 Aug 2016 18:26:43 +0000 (04:26 +1000)]
gl: Remove extra duplicate typedef of GstGLFramebuffer
It's triggering a warning building git master on OSX
Matthew Waters [Mon, 29 Aug 2016 06:57:42 +0000 (16:57 +1000)]
tests/glupload: support opengl3 properly instead of spewing GL errors
Matthew Waters [Mon, 29 Aug 2016 06:52:44 +0000 (16:52 +1000)]
gl/pkgconfig: add the lib include dir to the list of includes
714d8aa in core removed this include dir from it's pkgconfig file.
https://bugzilla.gnome.org/show_bug.cgi?id=770523
Alessandro Decina [Mon, 29 Aug 2016 05:43:10 +0000 (15:43 +1000)]
glupload: fix tests and check for the new RECONFIGURE behaviour
The tests were broken since 91fea30, which changed glupload to return
GST_GL_UPLOAD_RECONFIGURE if the texture target in the input buffers doesn't
match the texture-target configured in the output caps.
This commit fixes that and adds more checks for the new behaviour.
Alessandro Decina [Mon, 22 Aug 2016 07:18:27 +0000 (17:18 +1000)]
gstglupload: make the GLMemoryUpload method output the correct texture-target
Now when used with video/x-raw as input, the GLMemoryUpload method checks for
->tex_target in input GLMemory(es) and sets the output texture-target
accordingly.
Fixes video corruption with a pipeline like avfvideosrc ! video/x-raw !
glimagesink where on macos avfvideosrc pushes RECTANGLE textures but glupload
was configuring texture-target=2D as output.
Jan Schmidt [Thu, 25 Aug 2016 16:07:27 +0000 (02:07 +1000)]
gl: Update glvideomixer doc
Jan Schmidt [Thu, 25 Aug 2016 16:06:00 +0000 (02:06 +1000)]
gl: Add/update docs for glviewconvert, glstereomix
Add some example pipelines for glstereomix, and fix up
the example pipelines for glviewconvert
Jan Schmidt [Thu, 25 Aug 2016 14:29:34 +0000 (00:29 +1000)]
glstereomix: Fix caps negotiation
The videoaggregator negotiation sequence changed some time
back and broke glstereomix. Instead of doing nego incorrectly
in the find_best_format() vfunc, do it directly in the
update_caps() method.
Jan Schmidt [Thu, 25 Aug 2016 05:26:49 +0000 (15:26 +1000)]
glviewconvert: Fix texture target fixation
Don't set the chosen texture-target into the wrong structure.
The input caps may not be writable, and in any case - the
intention was to configure the othercaps. Also, remove an
extra unref - the othercaps ref is consumed by
gst_caps_make_writable already.
Xabier Rodriguez Calvar [Tue, 26 Jul 2016 17:55:13 +0000 (19:55 +0200)]
glvideoflip: implement GstVideoDirection interface
It implements now this interface with its video-direction
property. Values are changed to GstVideoOrientationMethod but they have
the same value than the originals.
https://bugzilla.gnome.org/show_bug.cgi?id=768687
Nirbheek Chauhan [Fri, 12 Aug 2016 15:51:45 +0000 (21:21 +0530)]
Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson
With contributions from:
Tim-Philipp Müller <tim@centricular.com>
Matej Knopp <matej.knopp@gmail.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)
Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded
... and many more. For more details see:
http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html
Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
Matthew Waters [Fri, 19 Aug 2016 05:35:49 +0000 (15:35 +1000)]
gltransformation: rewrite the inverse transformation logic
It now returns the correct values for both orthographic and perspective
projections and takes into account the aspect ratio of the video, handles
the Y-flipping in GL and by us and uses some more helpers from graphene.
Matthew Waters [Fri, 1 Jul 2016 06:18:55 +0000 (16:18 +1000)]
glwindow: marshal gst_gl_window_resize through the window loop
saves having every caller do it themselves.
Matthew Waters [Thu, 30 Jun 2016 13:06:43 +0000 (23:06 +1000)]
gl/wayland: use multi-threaded safe event wayland API
Multiple threads may be accessing the wayland fd at the same time which
requires the use of special wayland API to deal with to ensure nobody
will steal reads and cause a stall for anyone else.
Matthew Waters [Thu, 30 Jun 2016 14:15:55 +0000 (00:15 +1000)]
gl/examples/fxtest: fix up for wayland support
- Pass the wayland display to gst
- Redrawing on resize is no longer needed.
Matthew Waters [Tue, 16 Aug 2016 10:33:21 +0000 (20:33 +1000)]
gl/egl: fix inverted typedef
2b6841d had an inverted typedef defining ginptr and EGLAttrib. Fix that.
Matthew Waters [Tue, 16 Aug 2016 06:51:02 +0000 (16:51 +1000)]
gl/build: add configure check for possibly missing EGLAttrib
Fixes the build on older android targets.
Song Bing [Wed, 13 Jul 2016 09:15:44 +0000 (17:15 +0800)]
gl/egl/dmabuf: Wrong attribute list type for EGL 1.5
For EGL 1.5 spec, the attribute list type should be EGLAttrib.
https://bugzilla.gnome.org/show_bug.cgi?id=768602
Vincent Penquerc'h [Mon, 15 Aug 2016 15:14:25 +0000 (16:14 +0100)]
glcontext: fix race joining thread on finalize
https://bugzilla.gnome.org/show_bug.cgi?id=769939
Matthew Waters [Thu, 4 Aug 2016 13:14:41 +0000 (23:14 +1000)]
glcolorconvert: add missing rgb16 and bgr16 video formats in switch
Fixes an assertion that code should not be reached
https://bugzilla.gnome.org/show_bug.cgi?id=769462
Haihua Hu [Wed, 27 Jul 2016 02:55:01 +0000 (10:55 +0800)]
glwindow: Fix glimagesink cannot show frame when connect to qmlglsrc
When connect to qmlglsrc, x11 event loop will be replace by qt event loop
which will cause the window cannot receive event from xserver, such as resize
https://bugzilla.gnome.org/show_bug.cgi?id=768160
Hyunjun Ko [Tue, 2 Aug 2016 08:21:20 +0000 (17:21 +0900)]
glupload: Use bufferpool to allocate new buffer in GLTextureUploadMeta
To improve performace of upload with GLTextureUploadMeta,
use bufferpool instead of allocating new buffer every time.
https://bugzilla.gnome.org/show_bug.cgi?id=769293
Matthew Waters [Wed, 27 Jul 2016 04:48:50 +0000 (14:48 +1000)]
glwindow: move unsetting queue_resize to _resize() instead of _draw()
Makes infinitely more sense and implementation were expecting that behaviour
anyway and would enter a resize, draw, resize, draw, ... cycle instead of only
resizing once.
Haihua Hu [Mon, 1 Aug 2016 06:12:35 +0000 (14:12 +0800)]
glimagesink: Fix horizontal/vertical flip matrizes
They were swapped.
https://bugzilla.gnome.org/show_bug.cgi?id=769371
Matthew Waters [Tue, 26 Jul 2016 06:01:19 +0000 (16:01 +1000)]
caopengllayersink: remove unused to_quit variable
It was always 0 and never set to anything meaningful.
Matthew Waters [Tue, 26 Jul 2016 05:57:54 +0000 (15:57 +1000)]
glframebuffer: add compatibility definition for GL_DEPTH_STENCIL_ATTACHMENT
GLES2 doesn't have it defined...
Matthew Waters [Fri, 15 Jul 2016 03:39:54 +0000 (13:39 +1000)]
glfilter: rewrite subclasses for filter_texture() occuring on GL thread
There's no need for the jump to an extra thread in most cases, especially
when relying solely on a shader to render. We can use the provided
render_to_target() functions to simplify filter writing.
Matthew Waters [Tue, 12 Jul 2016 05:34:24 +0000 (15:34 +1000)]
glutils: remove unused GstGLDisplayProjection
Matthew Waters [Tue, 12 Jul 2016 05:29:29 +0000 (15:29 +1000)]
glcontext: remove not thread-safe get/set_error()
Use GError's instead if necessary.
Matthew Waters [Tue, 12 Jul 2016 02:59:57 +0000 (12:59 +1000)]
glframebuffer: rewrite for a more consistent API
Facilities are given to create fbo's and attach GL memory (renderbuffers
or textures). It also keeps track of the renderable size for use with
effective use with glViewport().
Matthew Waters [Mon, 11 Jul 2016 14:30:22 +0000 (00:30 +1000)]
gl: use GLMemory for accessing textures everywhere
This simplifies and consolidates a lot of duplicated code creating
and modifying textures.
Matthew Waters [Mon, 11 Jul 2016 12:44:16 +0000 (22:44 +1000)]
glfilter: rename draw_texture to draw_fullscreen_quad
And remove unused arguments.
Matthew Waters [Mon, 11 Jul 2016 12:31:04 +0000 (22:31 +1000)]
gl: add memory type for renderbuffer's
Soon to be used for framebuffers for e.g. depth buffers or throwaway color
buffers.
Matthew Waters [Mon, 11 Jul 2016 12:28:42 +0000 (22:28 +1000)]
glformat: define our own set of formats from the GL defines
also add some depth/stencil formats
Matthew Waters [Mon, 11 Jul 2016 12:24:43 +0000 (22:24 +1000)]
gleffects: fix xray to use the correct function
Instead of duplicating the sin effect
Matthew Waters [Mon, 11 Jul 2016 11:29:10 +0000 (21:29 +1000)]
glbasememory: assert for a valid allocator instead of segfaulting
Tim-Philipp Müller [Mon, 18 Jul 2016 16:43:23 +0000 (17:43 +0100)]
gl: wayland: improve debug message when connecting to display
And another copy'n'paste-o.
https://bugzilla.gnome.org/show_bug.cgi?id=768929
Matthew Waters [Thu, 30 Jun 2016 11:50:12 +0000 (21:50 +1000)]
glviewconvert: fix transformation matrix usage
Calling glUniformMatrix before the shader is bound is invalid and
would result in errors like:
GL_INVALID_OPERATION in glUniformMatrix(program not linked)
Move glUniformMatrix() to after the gst_gl_shader_use() call.
Matthew Waters [Thu, 30 Jun 2016 04:04:36 +0000 (14:04 +1000)]
glupload: fix raw data uploader with addition of GstVideoGLTextureType
Fixes regression from
989200820d43c78fb179d7984827800d83787390
https://bugzilla.gnome.org/show_bug.cgi?id=768217
Olivier Crête [Thu, 30 Jun 2016 03:55:18 +0000 (23:55 -0400)]
glvideoconvert: RG/LA is available in OpenGL ES 3, so let that through
Matthew Waters [Fri, 24 Jun 2016 03:41:11 +0000 (13:41 +1000)]
Revert "Revert "gl/eagl: try getting a gles3 context""
This reverts commit
eb142736318463e6e553c21707ba0d716f85a46f.
vtdec now successfully outputs textures that can be converted by
glcolorconvert in GLES3 contexts.
Matthew Waters [Tue, 28 Jun 2016 03:51:22 +0000 (13:51 +1000)]
glmemory: add the texture type to allocate to parameters
Rather than assuming something. e.g. zerocopy on iOS with GLES3 requires
the use of Luminance/Luminance Alpha formats and does not work with
Red/RG textures.
Matthew Waters [Tue, 28 Jun 2016 03:09:51 +0000 (13:09 +1000)]
glcolorconvert: don't assume Red/RG textures will be used
Take the used texture type from the memory instead.
Fixes conversion from multi-planar YUV formats with two components per plane
(NV12, NV21, YUY2, UYVY, GRAY16_*, etc) with Luminance Alpha input textures.
This is also needed for zerocopy decoding on iOS with GLES 3.x.
Matthew Waters [Tue, 28 Jun 2016 03:02:32 +0000 (13:02 +1000)]
glcontext: correct precondition for get_gl_version
The intention was to assert if both maj and min were NULL (as there would be no
point calling the function). Instead if either maj or min were NULL, the assert
would occur.
Fix that.
Sebastian Dröge [Thu, 23 Jun 2016 12:57:58 +0000 (15:57 +0300)]
eglimage: Only register debug category if dmabuf support is enabled
It's not used otherwise currently and causes compiler warnings.
Wang Xin-yu (王昕宇) [Tue, 22 Mar 2016 08:51:53 +0000 (16:51 +0800)]
glcontext/wgl: try wglCreateContextAttribsARB even not gl3 core profile
https://bugzilla.gnome.org/show_bug.cgi?id=764018
Matthew Waters [Tue, 21 Jun 2016 08:28:46 +0000 (18:28 +1000)]
glcontext: fix get_current_gl_api() on win32
Another case of incorrect calling conventions.
Using this function on win32 would corrupt the stack pointer and end in
massive hilarity.
Matthew Waters [Wed, 15 Jun 2016 02:47:05 +0000 (12:47 +1000)]
glsl: fixup external-oes shaders by mangling the required extension
Newer devices require using a different GLSL extension for accessing
external-oes textures in a shader using the texture() functions.
While the GL_OES_EGL_image_external_essl3 should supposedly be supported
on a any GLES3 android device, the extension was defined after a lot of the
older drivers were built so they will not know about it. Thus there are two
possible interpretations of which of texture[2D]() should be supported for
external-oes textures. Strict adherence to the GL_OES_EGL_image_external
extension spec which uses texture2D() or following GLES3's pattern, also
allowing texture() as a function for accessing external-oes textures
This adds another mangling pass to convert
#extension GL_OES_EGL_image_external : ...
into
#extension GL_OES_EGL_image_external_essl3 : ...
on GLES3 and when the GL_OES_EGL_image_external_essl3 extension is supported.
Only uses texture() when the GLES3 and the GL_OES_EGL_image_external_essl3
extension is supported for external-oes textures.
Uses GLES2 + texture2D() + GL_OES_EGL_image_external in all other external-oes
cases.
https://bugzilla.gnome.org/show_bug.cgi?id=766993
Guillaume Desmottes [Thu, 19 May 2016 10:31:56 +0000 (13:31 +0300)]
glimagesink: fix query leak in test
https://bugzilla.gnome.org/show_bug.cgi?id=766663
Guillaume Desmottes [Thu, 19 May 2016 10:29:15 +0000 (13:29 +0300)]
glimagesink: properly setup/teardown tests
tcase_add_checked_fixture() is suppose to call the setup and teardown
functions so the tests don't have to do it manually.
https://bugzilla.gnome.org/show_bug.cgi?id=766663
Guillaume Desmottes [Thu, 19 May 2016 10:09:41 +0000 (13:09 +0300)]
glupload: fix shader leak in test
https://bugzilla.gnome.org/show_bug.cgi?id=766663
Sergey Borovkov [Thu, 14 Apr 2016 15:14:32 +0000 (18:14 +0300)]
qml: Enable qmlglsink for eglfs
https://bugzilla.gnome.org/show_bug.cgi?id=763044
Matthew Waters [Wed, 15 Jun 2016 14:46:57 +0000 (00:46 +1000)]
tests/glcontext: update test for gen,del_texture removal
Haihua Hu [Tue, 14 Jun 2016 05:48:09 +0000 (13:48 +0800)]
gleffects: fix little rectangle that appears at the center of squeeze and tunnel effects
These two shader will calculate the vector length and use it as denominator.
But length could be zero which will cause undefine behaviour. Add protection for
this condition
https://bugzilla.gnome.org/show_bug.cgi?id=767635
Matthew Waters [Wed, 15 Jun 2016 08:10:59 +0000 (18:10 +1000)]
glsl: add some debugging
Matthew Waters [Wed, 15 Jun 2016 06:08:57 +0000 (16:08 +1000)]
glutils: remove unused functions for texture creation/deletion
Everyone uses GstGLMemory now and any future code should as well.
Matthew Waters [Wed, 15 Jun 2016 05:47:47 +0000 (15:47 +1000)]
glfilter: remove unused class fields in/out_tex_id
The functionality is not used by any subclass nor are the values set anywhere.
Matthew Waters [Wed, 15 Jun 2016 05:08:39 +0000 (15:08 +1000)]
gldeinterlace: remove dead code accessing filter->in_tex_id
It's not set by anyone or anything and gldeinterlace is the only user of it now.
Matthew Waters [Wed, 15 Jun 2016 04:40:40 +0000 (14:40 +1000)]
gl/upload/meta: remove unneeded texture deletion
The textures are managed by the GstGLMemory inside the output buffer. Freeing
them prematurely may result in a use-after-free.
Guillaume Desmottes [Tue, 17 May 2016 14:14:49 +0000 (17:14 +0300)]
gst-libs: gl, video: use MAY_BE_LEAKED flag
https://bugzilla.gnome.org/show_bug.cgi?id=767162
Havard Graff [Sat, 28 May 2016 19:36:04 +0000 (21:36 +0200)]
gl: glquery: cast to silence compiler warning
https://bugzilla.gnome.org/show_bug.cgi?id=766973
Havard Graff [Sat, 28 May 2016 19:35:37 +0000 (21:35 +0200)]
gltestsrc: gltestsrc.h already defines GstGLTestSrc
And redefinition is not allowed.
https://bugzilla.gnome.org/show_bug.cgi?id=766973
Matthew Waters [Thu, 26 May 2016 10:16:07 +0000 (20:16 +1000)]
gldisplay: always unref the context on a collision
Otherwise we will leak GstGLContext's when adding the same context more than
once.
Fixes a regression caused by
5f9d10f6036068502ad23e1ec86a73e341801ae1 in the
gstglcontext unit test that failed with:
Assertion 'tmp == NULL' failed
Nicolas Dufresne [Fri, 20 May 2016 18:34:37 +0000 (14:34 -0400)]
caopengllayersink: Don't cache buffer pool
Pools cannot be used by the two elements at the same time.
https://bugzilla.gnome.org/show_bug.cgi?id=766611
Xavier Claessens [Wed, 25 May 2016 13:09:01 +0000 (09:09 -0400)]
gl: win32: Add debug category in gstglcontext_wgl.c
https://bugzilla.gnome.org/show_bug.cgi?id=766867
Haihua Hu [Mon, 16 May 2016 12:02:28 +0000 (20:02 +0800)]
glimagesink: support video rotation using transform matrix
Add "rotate-method" to glimagesink and apply transform matrix
to vertex coordinate to control rotation.
https://bugzilla.gnome.org/show_bug.cgi?id=765795
Matthew Waters [Tue, 24 May 2016 13:39:27 +0000 (23:39 +1000)]
glvideomixer: fix race retrieving the GL context from the display
_get_gl_context() can be called concurrently from either propose_allocation() or
decide_allocation(). If it so happens that this happens at the same time,
the check for whether we already had a GL context was outside the lock. Inside
the lock and loop, the first thing that happens is that we unref the current GL
context (if valid) as if there was a conflict adding it to the display. If the
timing was unlucky, subsequent use of the GL context would be referencing an
already unreffed GL context object resulting in a critical:
g_object_ref: assertion 'object->ref_count > 0' failed
https://bugzilla.gnome.org/show_bug.cgi?id=766703
Matthew Waters [Tue, 24 May 2016 13:38:22 +0000 (23:38 +1000)]
gldisplay: add some debugging about retrieving GL contexts
Sebastian Dröge [Wed, 25 May 2016 07:01:38 +0000 (10:01 +0300)]
eglimage: Re-add accidentially removed GST_DEFINE_MINI_OBJECT_TYPE()
Sebastian Dröge [Mon, 23 May 2016 17:11:17 +0000 (20:11 +0300)]
eglimage: Ensure that the debug category is always initalized
Before the initializer was only run if dmabuf support was used.
https://bugzilla.gnome.org/show_bug.cgi?id=766794
Arjen Veenhuizen [Tue, 24 May 2016 13:30:09 +0000 (23:30 +1000)]
gltransformation: make the pivot-z property READWRITE
Instead of just being READABLE.
https://bugzilla.gnome.org/show_bug.cgi?id=766818
Guillaume Desmottes [Mon, 23 May 2016 07:40:58 +0000 (10:40 +0300)]
gltestsrc: fix src_impl leak
https://bugzilla.gnome.org/show_bug.cgi?id=766661
Tim-Philipp Müller [Mon, 23 May 2016 23:55:11 +0000 (00:55 +0100)]
g-i: pass compiler env to g-ir-scanner
It's what introspection.mak does as well. Should
fix spurious build failures on gnome-continuous.
Guillaume Desmottes [Thu, 19 May 2016 14:05:33 +0000 (17:05 +0300)]
gltestsrc: fix shaders ref counting
The gltestsrc element uses two shaders: color_shader and snow_shader.
Those are alternatively assigned to the SrcShader->shader pointer and
their reference was transferred to it. Only the SrcShader->shader was
unreffed (in _src_shader_deinit()) so only one shader was properly
freed, the other one was leaked.
Fixed this by giving an extra ref to SrcShader->shader and unreffing the
2 shaders in _src_smpte_free().
https://bugzilla.gnome.org/show_bug.cgi?id=766661
Guillaume Desmottes [Thu, 19 May 2016 13:55:31 +0000 (16:55 +0300)]
glmosaic: fix shader leak
gst_gl_mosaic_init_shader() is called twice with test_glmosaic so the
first shader was leaked.
https://bugzilla.gnome.org/show_bug.cgi?id=766661
Xavier Claessens [Mon, 16 May 2016 21:11:53 +0000 (17:11 -0400)]
gl: win32: Unparent internal window before destroying it
For some reason DestroyWindow() deadlock if it's called from
parent window's KeyPress event.
https://bugzilla.gnome.org/show_bug.cgi?id=766533
Xavier Claessens [Mon, 16 May 2016 19:26:53 +0000 (15:26 -0400)]
gl: win32: Don't steal parent focus when creating internal window
This fix regression introduced by
0acc18c60f6f962cc6553f6047fdb64891bab544.
https://bugzilla.gnome.org/show_bug.cgi?id=766520
Matthew Waters [Sun, 15 May 2016 10:14:41 +0000 (13:14 +0300)]
gldisplay: demote no platform display debug to info
Avoids confusing everyone with a warning that's not always fatal.
https://bugzilla.gnome.org/show_bug.cgi?id=746933
Matthew Waters [Sat, 14 May 2016 13:32:06 +0000 (16:32 +0300)]
gltransformation: use the affine transformation meta if available downstream
We can avoid a render pass if downstream supports the affine transformation meta
and increase the performance of some pipelines involving gltransformation.
Implemented by checking for the affine transformation in the allocation query
from downstream and combining our matrix with that of upstream's (or creating
our own).
Matthew Waters [Sat, 14 May 2016 13:27:26 +0000 (16:27 +0300)]
gl: take the affine transformation in NDC
Provide a function to get the affine matrix in the meta in terms of NDC
coordinates and use as a standard opengl matrix.
Also advertise support for the affine transformation meta in the allocation
query.
Matthew Waters [Sat, 14 May 2016 12:50:57 +0000 (15:50 +0300)]
glbasemixer: actually attempt to propose an allocation upstream
We were always failing the allocation query as a flag was never being set to
signal a successful negotiation. Fix by setting the required flag on a
successful caps event from upstream.
Matthew Waters [Wed, 4 May 2016 02:17:59 +0000 (12:17 +1000)]
gl/egl: replace gsteglimagememory with an EGLImage wrapper
That can be passed to GstGLMemoryEGL.
This also ports the dmabuf uploader to GstEGLImage and GstGLMemoryEGL.
Gwang Yoon Hwang [Thu, 21 Jan 2016 13:18:17 +0000 (22:18 +0900)]
gl: implement GstGLMemoryEGL
Because current GstEGLImageMemory does not inherit GstGLMemory, GLUpload
allocates additional GLMemory and upload the decoded contents from the decoder
which uses EGLImage (e.g. gst-omx in RPi).
This work adds GstGLMemoryEGL to avoid this overhead. Decoders allocate
GstGLMemoryEGL and decode its contents to the EGLImage of GstGLMemoryEGL. And
GLUpload uses this memory without allocation of additional textures and blit
operations.
[Matthew Waters]: gst-indent the sources and fix a critical retreiving the egl
display from the memory.
https://bugzilla.gnome.org/show_bug.cgi?id=760916
Matthew Waters [Tue, 3 May 2016 15:16:51 +0000 (01:16 +1000)]
glmemory: add wrapped data pointers to setup_buffer
Allows creating wrapped memories with GstGLAllocationParams.
The wrapped pointers will be set in the parameters before being passed
to the memory allocation function.
Matthew Waters [Tue, 3 May 2016 14:19:44 +0000 (00:19 +1000)]
glbasememory: take a pointer as the wrapped gpu handle
Allows passing arbitrary data to wrap the the specific memory implementation
which is required for some memory implementations.
Matthew Waters [Tue, 3 May 2016 09:58:00 +0000 (19:58 +1000)]
gl: fix gles3 header usage for older platforms
Some platforms provide an old version of GLES2/gl2.h and GLES2/gl2ext.h that
will fail when including GLES3/gl3.h due to missing typedef's.
Seen on the RPi.
Haihua Hu [Fri, 8 Apr 2016 08:47:15 +0000 (16:47 +0800)]
gl: enable gldeinterlace on OpenGL ES
1.Porting the exist deinterlace shader and OpenGL callback
to be compatible with OpenGL ES.
2.Add a our blur vertical shader to gldeinterlace.
3.Add a property named “method” to let user choose which
deinterlace function to use. Default to choose blur vertical
method for better performance.
[Matthew Waters]: fix name of greedyh in method property (was greedhy) and port
to git master.
https://bugzilla.gnome.org/show_bug.cgi?id=764873
Sebastian Dröge [Tue, 19 Apr 2016 16:43:03 +0000 (19:43 +0300)]
glviewconvert: Port more things to GLES/GL 3 compatibility
And move the shader mangling code into a single place instead of having a copy
in glcolorconvert and glviewconvert.
https://bugzilla.gnome.org/show_bug.cgi?id=765266