Matthew Waters [Thu, 22 Jan 2015 07:00:36 +0000 (18:00 +1100)]
glcontext/cocoa: implement GL3 core context selection
Matthew Waters [Thu, 14 May 2015 08:35:35 +0000 (18:35 +1000)]
tests/gl: fix typo
Matthew Waters [Thu, 14 May 2015 06:42:09 +0000 (16:42 +1000)]
gl: remove useless gl{En,Dis}able (GL_TEXTURE_*) calls
We are using shaders everywhere and so they are not needed
Matthew Waters [Thu, 14 May 2015 05:10:59 +0000 (15:10 +1000)]
glimagesink: cleanup properties
remove unused "display-name"
ensure defaults between the bin/element are the same
Matthew Waters [Thu, 14 May 2015 04:56:30 +0000 (14:56 +1000)]
gleffects: only try the GL2 shader init path if we have a GL2 context
Matthew Waters [Tue, 12 May 2015 12:04:26 +0000 (22:04 +1000)]
glshader: attempt to detect the gles2 inside opengl3 case
This is necessary to use gles2 shaders in a GL 3 core context on
OS X which fails without a proper #version being set on the shaders.
Matthew Waters [Tue, 12 May 2015 07:55:43 +0000 (17:55 +1000)]
glshader: remove references to gl3 specific shaders
We rely specifically on gles2 shaders being supported by the GL
implementation with GL3 core profile.
Matthew Waters [Fri, 1 May 2015 02:04:28 +0000 (12:04 +1000)]
gl: element buffers are part of vao state
Use them as such. They are also required for GL3 core profile support
with glDrawElements on OS X.
Matthew Waters [Thu, 7 May 2015 05:25:10 +0000 (12:25 +0700)]
glmemory: properly detect (hopefully) the correct ext_rg/arb_rg variant
GL_EXT_texture_rg is only valid for GLES2. GLES3 uses similar wording to
the GL_ARB_texture_rg which requires a sized internal format that the
GL_EXT_texture_rg does not require.
https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_rg.txt
https://www.opengl.org/registry/specs/ARB/texture_rg.txt
Matthew Waters [Wed, 13 May 2015 13:55:28 +0000 (23:55 +1000)]
glcontext: propagate the version/extension failure upwards
Otherwise the calling code has no idea that the context failed to
be created fully.
https://bugzilla.gnome.org/show_bug.cgi?id=749284
Matthew Waters [Wed, 13 May 2015 13:54:52 +0000 (23:54 +1000)]
gl: don't deadlock on context creation failure
https://bugzilla.gnome.org/show_bug.cgi?id=749284
Sebastian Dröge [Wed, 13 May 2015 12:42:15 +0000 (15:42 +0300)]
glmixerbin: Don't unref pad templates
Otherwise we unref the reference that is owned by the element class.
Matthew Waters [Wed, 13 May 2015 07:11:55 +0000 (17:11 +1000)]
glvideomixer: implement par handling
We were previously ignoring it completely
Matthew Waters [Wed, 13 May 2015 07:10:42 +0000 (17:10 +1000)]
glvideomixer: don't upload the vertex data every frame
Add the missing cache tracking statement.
Nicolas Dufresne [Tue, 12 May 2015 20:36:58 +0000 (16:36 -0400)]
gluploadelement: Remove uneeded header and defines
Nicolas Dufresne [Mon, 11 May 2015 19:02:02 +0000 (15:02 -0400)]
gltestsrc: Use default get_caps implementation
The custom code is wrong as it ignores the templates, which leads to
missing fields in the result. Instead, simply use the default get_caps
implementation which does it correctly (get the template, intersect
with filter and return).
https://bugzilla.gnome.org/show_bug.cgi?id=749237
Sebastian Dröge [Mon, 11 May 2015 12:54:52 +0000 (15:54 +0300)]
glmixer: Implement GstVideoAggregator::find_best_format()
Without this, we will fixate weird pixel-aspect-ratios like 1/
2147483647. But
in the end, all the negotiation code in videoaggregator needs a big cleanup
and videoaggregator needs to get rid of the software-mixer specific things
everywhere.
Matthew Waters [Mon, 11 May 2015 12:53:09 +0000 (22:53 +1000)]
gl: demote upload/convert/download elements to none
Copy paste error
Matthew Waters [Mon, 11 May 2015 12:37:44 +0000 (22:37 +1000)]
gl: expose internal glvideomixerelement\
We might want more control over the exact pipeline
Also reduces overhead
Matthew Waters [Mon, 11 May 2015 12:35:18 +0000 (22:35 +1000)]
gl: expose internal glimagesinkelement
We might want more control over the exact pipeline.
Also reduces overhead.
Sebastian Dröge [Wed, 6 May 2015 13:47:27 +0000 (15:47 +0200)]
Revert "Revert "glimagesink: add pixel-aspect-ratio property on the bin""
This reverts commit
d96e43b034a03fe54633907bc1bf2a26fe5f95fb.
Sebastian Dröge [Wed, 6 May 2015 13:47:20 +0000 (15:47 +0200)]
Revert "Revert "glimagesink: forward ALL the properties on the bin""
This reverts commit
59fb0f830f08e3e59f87f83df8fa3c2d9f3d9741.
Sebastian Dröge [Wed, 6 May 2015 13:47:04 +0000 (15:47 +0200)]
Revert "Revert "glimagesink: implement as a bin""
This reverts commit
be938f92d94e8acccf593128281f6e09213600a0.
Sebastian Dröge [Wed, 6 May 2015 13:46:49 +0000 (15:46 +0200)]
Revert "gl: readd glupload/download onto element pads"
This reverts commit
87d8270f302b03f63ce04f986d824892a2c131fd.
Sebastian Dröge [Wed, 6 May 2015 13:43:32 +0000 (15:43 +0200)]
Revert "Revert "glvideomixer: implement with glmixerbin""
This reverts commit
b4bd11f2f3a60224d188b27ab55b278077cb1217.
Matthew Waters [Tue, 5 May 2015 04:44:25 +0000 (14:44 +1000)]
glsyncmeta: fixup size declaration
Matthew Waters [Mon, 4 May 2015 13:42:36 +0000 (23:42 +1000)]
glimagesink: handle the local_context query
so that upstream elements can get the GL context from glimagesink
Jan Schmidt [Sun, 3 May 2015 13:08:15 +0000 (23:08 +1000)]
glcolorconvert: Improve passthrough check when no conversion is needed.
Make the passthrough check contingent on only the fields we
can modify being unchanged, and pre-compute it when caps
change instead of checking on each buffer. Makes the passthrough
more lenient if consumers are lax about making input and output
caps complete.
Matthew Waters [Thu, 30 Apr 2015 01:15:40 +0000 (11:15 +1000)]
gl: readd glupload/download onto element pads
Allows insertion of gl elements into non-gl pipelines without converter
(upload/download) elements.
https://bugzilla.gnome.org/show_bug.cgi?id=743974
Matthew Waters [Wed, 29 Apr 2015 12:55:00 +0000 (22:55 +1000)]
Revert "glvideomixer: implement with glmixerbin"
This reverts commit
0fb56738a14391f248aa0be8756adeaf978baa0c.
Matthew Waters [Wed, 29 Apr 2015 12:38:00 +0000 (22:38 +1000)]
Revert "glimagesink: implement as a bin"
This reverts commit
8a0017e21d5f9a8507f0593c6b24f723aa415258.
Matthew Waters [Wed, 29 Apr 2015 12:32:33 +0000 (22:32 +1000)]
Revert "glimagesink: forward ALL the properties on the bin"
This reverts commit
4be45e5f30dc6121f2769323603447f591ca4a0a.
Matthew Waters [Wed, 29 Apr 2015 12:32:20 +0000 (22:32 +1000)]
Revert "glimagesink: add pixel-aspect-ratio property on the bin"
This reverts commit
2ba6bb9b9325b63f58a9ff0b2c82fa28759dcabc.
Jan Schmidt [Tue, 28 Apr 2015 16:30:05 +0000 (02:30 +1000)]
glimagesink: Cache caps for passing to the client draw call
Don't convert the GstVideoInfo to caps on every draw call,
just cache the caps and pass them into the GstSample.
Jan Schmidt [Tue, 28 Apr 2015 16:20:09 +0000 (02:20 +1000)]
glupload: Make upload method static caps non-const.
Retrieving a GstStaticCaps does a one time internal
initialisation and caches it - they can't be stored as
const structures.
Matthew Waters [Tue, 28 Apr 2015 10:46:52 +0000 (20:46 +1000)]
glmemory: remove uneeded unref
The call to _gl_mem_alloc_data will unref and NULLify 'dest' for us.
We just need to return.
https://bugzilla.gnome.org/show_bug.cgi?id=744246
Matthieu Bouron [Tue, 28 Apr 2015 07:37:59 +0000 (09:37 +0200)]
glimagesink: Use gst_pad_get_pad_template_caps in ::get_caps()
Matthew Waters [Tue, 28 Apr 2015 10:11:07 +0000 (20:11 +1000)]
glupload: provide the sink template caps that could be used
https://bugzilla.gnome.org/show_bug.cgi?id=746399
Xavier Claessens [Mon, 27 Apr 2015 14:11:41 +0000 (10:11 -0400)]
egl: Use maximum bits per color instead of minimum
https://bugzilla.gnome.org/show_bug.cgi?id=748425
Matthieu Bouron [Mon, 27 Apr 2015 12:49:59 +0000 (14:49 +0200)]
glfiltercube: Don't initialize multiple shaders on renegotiation
Matthieu Bouron [Mon, 27 Apr 2015 08:24:00 +0000 (10:24 +0200)]
glimagesink: Remove unused stop function
Matthew Waters [Mon, 27 Apr 2015 06:04:50 +0000 (16:04 +1000)]
glimagesink: unref the pool in the correct place
Otherwise we could hold a pool to a context that is never going to be used.
https://bugzilla.gnome.org/show_bug.cgi?id=748405
Matthieu Bouron [Mon, 27 Apr 2015 08:01:53 +0000 (10:01 +0200)]
gltransformation: Unref shader in ::stop()
Matthew Waters [Mon, 27 Apr 2015 05:20:56 +0000 (15:20 +1000)]
gl: unref display/other-context in the correct place
Otherwise state changes from PLAYING->READY->PAUSED will cause there to
to be no display configured on the element.
https://bugzilla.gnome.org/show_bug.cgi?id=748405
Sebastian Dröge [Sun, 26 Apr 2015 19:42:03 +0000 (21:42 +0200)]
glfilter: De-camelcase onInitFBO() vfunc
Sebastian Dröge [Sun, 26 Apr 2015 19:39:06 +0000 (21:39 +0200)]
glfilter: Remove onStart/onStop vfuncs, and unused onReset()
onStart/onStop are just duplicates of the basetransform ones, onReset
was never called but was used everywhere when stop should've been used.
Lubosz Sarnecki [Tue, 21 Apr 2015 07:43:58 +0000 (09:43 +0200)]
gltransformation: don't initialize multiple shaders on renegotiation
https://bugzilla.gnome.org/show_bug.cgi?id=748407
* delete shader if one exists
* set it to NULL after unrefing
Sebastian Dröge [Sun, 26 Apr 2015 19:11:17 +0000 (21:11 +0200)]
glcolorconvert: Fix compiler warning
gstglcolorconvertelement.c:230:19: error: unused variable 'in_structure'
[-Werror,-Wunused-variable]
GstStructure *in_structure = gst_caps_get_structure (caps, 0);
^
Matthew Waters [Sun, 26 Apr 2015 18:33:41 +0000 (20:33 +0200)]
glbasefilter: Unref other context in finalize, and display in READY->NULL
https://bugzilla.gnome.org/show_bug.cgi?id=748405
Matthieu Bouron [Sun, 19 Apr 2015 17:16:55 +0000 (19:16 +0200)]
glcolorconvert: Keep colorimetry and chroma-site fields if passthrough
https://bugzilla.gnome.org/show_bug.cgi?id=748141
Matthew Waters [Fri, 24 Apr 2015 07:13:10 +0000 (17:13 +1000)]
glimagesink: balance change_state display ref/unref
the display was being unreffed on the incorrect state change causing
invalid state when changing from PLAYING/PAUSED->READY->PAUSED/PLAYING.
Matthieu Bouron [Thu, 23 Apr 2015 14:47:40 +0000 (16:47 +0200)]
glupload: Release glupload buffer when caps are changed
https://bugzilla.gnome.org/show_bug.cgi?id=748371
Vineeth T M [Wed, 22 Apr 2015 09:54:45 +0000 (18:54 +0900)]
glmixer: Possible null pointer dereference
While printing error message when context fails, error variable is not being used anymore
so it will lead to null pointer dereference
https://bugzilla.gnome.org/show_bug.cgi?id=748287
Michał Dębski [Sun, 5 Apr 2015 18:18:56 +0000 (20:18 +0200)]
gleffects: Create element for each effect
https://bugzilla.gnome.org/show_bug.cgi?id=746209
Michał Dębski [Sun, 22 Mar 2015 10:22:52 +0000 (11:22 +0100)]
gleffects: Merge laplacian filter into effects
https://bugzilla.gnome.org/show_bug.cgi?id=746209
Michał Dębski [Sun, 22 Mar 2015 10:20:49 +0000 (11:20 +0100)]
gleffects: Merge sobel filter into effects
https://bugzilla.gnome.org/show_bug.cgi?id=746209
Michał Dębski [Sun, 22 Mar 2015 10:13:30 +0000 (11:13 +0100)]
gleffects: Merge blur filter into effects
https://bugzilla.gnome.org/show_bug.cgi?id=746209
Michał Dębski [Sat, 21 Mar 2015 22:50:33 +0000 (23:50 +0100)]
gleffects: Correct attributes for hconv and vconv shaders
Width and height were switched for glow shaders. For blur
filter attributes names were obsolete.
https://bugzilla.gnome.org/show_bug.cgi?id=746209
Michał Dębski [Sat, 21 Mar 2015 22:21:13 +0000 (23:21 +0100)]
gleffects: Fix fisheye shader - pass float to sqrt
On OSX passing literal int to sqrt() in GLSL results in error.
https://bugzilla.gnome.org/show_bug.cgi?id=746209
Lubosz Sarnecki [Tue, 21 Apr 2015 05:28:58 +0000 (07:28 +0200)]
gltransformation: fix shader memory leak
Matthew Waters [Tue, 21 Apr 2015 02:25:11 +0000 (12:25 +1000)]
glwindow: track context activation properly
We only need to deactivate/reactivate the context iff it was already
active.
Matthew Waters [Tue, 21 Apr 2015 02:19:46 +0000 (12:19 +1000)]
gldisplay: synchronize the searching and creation of GstGLContext's
Ootherwise we could end up with multiple elements in different chains
each creating a context. Fixes context creation with glvideomixer.
Guillaume Desmottes [Wed, 15 Apr 2015 13:22:37 +0000 (15:22 +0200)]
glmixer: fix caps leak in gst_gl_mixer_pad_sink_getcaps()
Caps refcounting was all wrong in this function. Rewrote it and add some
comments to make it clearer.
Fix caps leaks with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=747915
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Guillaume Desmottes [Thu, 16 Apr 2015 12:21:16 +0000 (14:21 +0200)]
glmixer: unref owned caps when finalizing the mixer
Fix a caps leak with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=747915
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Guillaume Desmottes [Wed, 15 Apr 2015 13:16:33 +0000 (15:16 +0200)]
glmixer: pass the proper free function to frames and buffers array
'array_buffers' contain borrowed GstBuffer and so shouldn't have a free
function. 'frames' is the one containing GstGLMixerFrameData and so should use
_free_glmixer_frame_data as free function.
Fix GstGLMixerFrameData leaks with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=747913
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Sebastian Dröge [Fri, 17 Apr 2015 13:20:12 +0000 (15:20 +0200)]
gldownloadelement: Download *from* OpenGL, not into
Matthieu Bouron [Fri, 17 Apr 2015 12:24:28 +0000 (14:24 +0200)]
glcontext: Make gst_gl_context_egl_activate fail if the old surface could not be destroyed
https://bugzilla.gnome.org/show_bug.cgi?id=746251
Matthieu Bouron [Fri, 17 Apr 2015 08:38:16 +0000 (10:38 +0200)]
gluploadelement: Unref GstGLUpload object and caps in ::stop()
Fix leak of the GstGLUpload object.
https://bugzilla.gnome.org/show_bug.cgi?id=748033
Sebastian Dröge [Fri, 17 Apr 2015 12:09:47 +0000 (14:09 +0200)]
gl: Remove some empty ::finalize() implementations
Sebastian Dröge [Fri, 17 Apr 2015 12:06:03 +0000 (14:06 +0200)]
gldownloadelement: Fix element description
Sebastian Dröge [Fri, 17 Apr 2015 12:05:44 +0000 (14:05 +0200)]
gldownloadelement: Remove unused ::finalize() implementation
Sebastian Dröge [Fri, 17 Apr 2015 12:03:21 +0000 (14:03 +0200)]
glcolorconvertelement: Also unref caps in ::stop() already
They are not useful anymore afterwards, so keeping them until ::finalize()
might only cause someone to use them later and then fail.
Guillaume Desmottes [Wed, 15 Apr 2015 12:49:02 +0000 (14:49 +0200)]
glcolorconvertelement: fix GstGLColorConvert leak
convert->convert was never unreffed.
This can be reproduce with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=747911
Matthieu Bouron [Thu, 16 Apr 2015 08:42:45 +0000 (10:42 +0200)]
glcontext: Make gst_gl_context_egl_activate fail if the surface could not be created
Also add some error logging.
Sebastian Dröge [Sat, 11 Apr 2015 17:35:48 +0000 (19:35 +0200)]
glcolorconvert: Fix last commit
Sebastian Dröge [Sat, 11 Apr 2015 17:17:00 +0000 (19:17 +0200)]
gl: Remove iOS/EAGL workaround for R/RG textures
This should be unneeded now after https://bugzilla.gnome.org/show_bug.cgi?id=732507
Sebastian Dröge [Sat, 11 Apr 2015 17:14:34 +0000 (19:14 +0200)]
glcolorconvert: Add correct check for RG/R textures in glcolorconvert too
https://bugzilla.gnome.org/show_bug.cgi?id=732507
Anton Obzhirov [Tue, 31 Mar 2015 16:10:45 +0000 (17:10 +0100)]
glbasefilter: avoid segfault when gl platform is not available
https://bugzilla.gnome.org/show_bug.cgi?id=747124
Sebastian Dröge [Tue, 7 Apr 2015 03:28:22 +0000 (20:28 -0700)]
glimagesink: Disconnect mouse/key event signal handlers from window when shutting down context
Sebastian Dröge [Tue, 7 Apr 2015 03:24:06 +0000 (20:24 -0700)]
glimagesink: Guard against disconnecting invalid signal ids
Alessandro Decina [Thu, 2 Apr 2015 07:05:55 +0000 (18:05 +1100)]
libgstgl: fix rendering on iOS
Stop assuming that the handle has been set by the time ->create_context is
called. After
bc7a7259f357b0065dd94e0668b5a895d83fa53a set_window_handle always
happens after ->create_context in fact.
See also https://bugzilla.gnome.org/show_bug.cgi?id=745090
Edward Hervey [Tue, 31 Mar 2015 14:27:00 +0000 (16:27 +0200)]
glvideomixer: Don't use context if not present
Avoids assertions at runtime
Edward Hervey [Tue, 31 Mar 2015 09:24:57 +0000 (11:24 +0200)]
introspection: Don't use g-ir-scanner cache at compile time
It pollutes user directories and we don't need to cache it
https://bugzilla.gnome.org/show_bug.cgi?id=747095
Anton Obzhirov [Mon, 30 Mar 2015 12:49:01 +0000 (13:49 +0100)]
gleffects: port all effects to GLES2.0
https://bugzilla.gnome.org/show_bug.cgi?id=745955
Philippe Normand [Mon, 23 Mar 2015 15:43:01 +0000 (16:43 +0100)]
gl/dispmanx: surfaceless EGL context support
Show the DispmanX window only if there's no shared external GL context
set up. When a window is required by the context a transparent
DispmanX element is created and later on made visible by the ::show
method.
https://bugzilla.gnome.org/show_bug.cgi?id=746632
Julien Isorce [Sun, 22 Mar 2015 18:12:15 +0000 (19:12 +0100)]
glwindow: remove unused gl_thread field
Julien Isorce [Sun, 22 Mar 2015 18:03:19 +0000 (19:03 +0100)]
gldisplay: fix GThread leak
https://bugzilla.gnome.org/show_bug.cgi?id=746541
Nicola Murino [Fri, 20 Mar 2015 17:33:45 +0000 (18:33 +0100)]
glimagesink: fix caps leak
https://bugzilla.gnome.org/show_bug.cgi?id=746541
Matthew Waters [Wed, 18 Mar 2015 17:12:49 +0000 (10:12 -0700)]
gl/docs: update some doc comments
Matthew Waters [Sun, 15 Mar 2015 12:58:26 +0000 (12:58 +0000)]
gldisplay: tentative proper context collision detection
Fixes
tee name=t ! queue ! gliamgesink t. ! queue ! glimagesink
Víctor Manuel Jáquez Leal [Sat, 14 Mar 2015 18:48:21 +0000 (19:48 +0100)]
glupload: move meta-data copy into gst-gl library
In some upload implementations the out buffer has more than one references,
turning the buffer not writable, so it won't be possible to modify its
meta-data.
This patch moves the meta-data copy before increasing the reference of the out
buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=746173
Matthew Waters [Sat, 14 Mar 2015 18:45:01 +0000 (18:45 +0000)]
glmemory: fix the slight difference between EXT_rg and ARB_rg
GL_EXT_texture_rg doesn't take sized formats for the internalformat
parameter of TexImage* but GL_ARB_texture_rg and GL(ES)3 do.
https://bugzilla.gnome.org/show_bug.cgi?id=732507
Matthew Waters [Sat, 14 Mar 2015 18:10:24 +0000 (18:10 +0000)]
gl/examples: fixup generic cube example for NDC
translating outside the clip region doesn't work
Julien Isorce [Sat, 14 Mar 2015 15:38:28 +0000 (15:38 +0000)]
gl/examples: add sdlshare2 that uses glimagesink to output textures
https://bugzilla.gnome.org/show_bug.cgi?id=739681
Julien Isorce [Sat, 14 Mar 2015 16:30:42 +0000 (16:30 +0000)]
glimagesink: keep window invisible when sharing output
https://bugzilla.gnome.org/show_bug.cgi?id=739681
Julien Isorce [Sat, 14 Mar 2015 15:16:55 +0000 (15:16 +0000)]
glimagesink: provide GstSample in client-draw signal
Instead of prividing texture and size directly.
And apply changes to examples.
https://bugzilla.gnome.org/show_bug.cgi?id=739681
Julien Isorce [Sat, 14 Mar 2015 15:37:05 +0000 (15:37 +0000)]
sdlshare: use glupload and unmap frame
Matthew Waters [Sat, 14 Mar 2015 16:25:29 +0000 (16:25 +0000)]
glsyncmeta: make context to wait and set sync explicit
otherwise we may wait on a sync object in same context by accident
Nicolas Dufresne [Sat, 14 Mar 2015 12:58:22 +0000 (12:58 +0000)]
glimagesink: Add NULL check in error case
Other context may be NULL if something went wrong. Avoid trying to unref
a NULL pointer.
Matthew Waters [Sat, 14 Mar 2015 10:39:06 +0000 (10:39 +0000)]
glupload/colorconvert: only copy timestamps if the input buffer != output