Matthew Waters
bd1a0cfec2
gl: expose internal glvideomixerelement\
...
We might want more control over the exact pipeline
Also reduces overhead
2015-05-11 22:58:45 +10:00
Matthew Waters
d2a6e8a92e
gl: expose internal glimagesinkelement
...
We might want more control over the exact pipeline.
Also reduces overhead.
2015-05-11 22:58:37 +10:00
Sebastian Dröge
541c3049dc
Revert "Revert "glimagesink: add pixel-aspect-ratio property on the bin""
...
This reverts commit d96e43b034
.
2015-05-06 15:47:27 +02:00
Sebastian Dröge
8c28a51ee1
Revert "Revert "glimagesink: forward ALL the properties on the bin""
...
This reverts commit 59fb0f830f
.
2015-05-06 15:47:20 +02:00
Sebastian Dröge
35d5c648c6
Revert "Revert "glimagesink: implement as a bin""
...
This reverts commit be938f92d9
.
2015-05-06 15:47:04 +02:00
Sebastian Dröge
53c79cbf86
Revert "gl: readd glupload/download onto element pads"
...
This reverts commit 87d8270f30
.
2015-05-06 15:46:49 +02:00
Sebastian Dröge
21413ff3fc
Revert "Revert "glvideomixer: implement with glmixerbin""
...
This reverts commit b4bd11f2f3
.
2015-05-06 15:43:32 +02:00
Matthew Waters
8ef4b12ab8
glimagesink: handle the local_context query
...
so that upstream elements can get the GL context from glimagesink
2015-05-04 23:44:17 +10:00
Matthew Waters
87d8270f30
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
2015-04-30 11:26:33 +10:00
Matthew Waters
b4bd11f2f3
Revert "glvideomixer: implement with glmixerbin"
...
This reverts commit 0fb56738a1
.
2015-04-30 11:26:33 +10:00
Matthew Waters
be938f92d9
Revert "glimagesink: implement as a bin"
...
This reverts commit 8a0017e21d
.
2015-04-30 11:26:33 +10:00
Matthew Waters
59fb0f830f
Revert "glimagesink: forward ALL the properties on the bin"
...
This reverts commit 4be45e5f30
.
2015-04-30 11:26:32 +10:00
Matthew Waters
d96e43b034
Revert "glimagesink: add pixel-aspect-ratio property on the bin"
...
This reverts commit 2ba6bb9b93
.
2015-04-30 11:26:32 +10:00
Jan Schmidt
ff12434b9f
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.
2015-04-29 02:52:40 +10:00
Matthieu Bouron
17d3a75583
glimagesink: Use gst_pad_get_pad_template_caps in ::get_caps()
2015-04-28 20:14:07 +10:00
Matthew Waters
0b7f65bbc3
glupload: provide the sink template caps that could be used
...
https://bugzilla.gnome.org/show_bug.cgi?id=746399
2015-04-28 20:13:48 +10:00
Matthieu Bouron
e765a9bb00
glfiltercube: Don't initialize multiple shaders on renegotiation
2015-04-27 14:52:37 +02:00
Matthieu Bouron
4ca63b01ab
glimagesink: Remove unused stop function
2015-04-27 18:27:48 +10:00
Matthew Waters
05109be4a0
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
2015-04-27 18:21:01 +10:00
Matthieu Bouron
c6ec145a95
gltransformation: Unref shader in ::stop()
2015-04-27 10:16:24 +02:00
Matthew Waters
bd940327ef
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
2015-04-27 15:20:56 +10:00
Sebastian Dröge
e7aa25ca6f
glfilter: De-camelcase onInitFBO() vfunc
2015-04-26 21:42:03 +02:00
Sebastian Dröge
c638477c48
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.
2015-04-26 21:39:06 +02:00
Lubosz Sarnecki
51daa8b9e2
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
2015-04-26 21:23:16 +02:00
Sebastian Dröge
a8d498919e
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);
^
2015-04-26 21:11:17 +02:00
Matthieu Bouron
76b2cefd2d
glcolorconvert: Keep colorimetry and chroma-site fields if passthrough
...
https://bugzilla.gnome.org/show_bug.cgi?id=748141
2015-04-26 20:31:53 +02:00
Matthew Waters
b216629941
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.
2015-04-24 17:16:18 +10:00
Matthieu Bouron
8f740fb484
glupload: Release glupload buffer when caps are changed
...
https://bugzilla.gnome.org/show_bug.cgi?id=748371
2015-04-24 00:55:58 +10:00
Vineeth T M
7e3cd63f87
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
2015-04-22 22:33:28 +10:00
Michał Dębski
b12f975e0a
gleffects: Create element for each effect
...
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 13:03:11 +01:00
Michał Dębski
532f332c2f
gleffects: Merge laplacian filter into effects
...
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 13:03:06 +01:00
Michał Dębski
0165b163db
gleffects: Merge sobel filter into effects
...
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 13:02:57 +01:00
Michał Dębski
7770fb2f57
gleffects: Merge blur filter into effects
...
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 13:02:53 +01:00
Michał Dębski
ff4bc2364c
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
2015-04-21 13:01:04 +01:00
Michał Dębski
40422d03c6
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
2015-04-21 11:56:16 +01:00
Lubosz Sarnecki
5c07218bd2
gltransformation: fix shader memory leak
2015-04-21 16:37:17 +10:00
Matthew Waters
6cb6d8f9e8
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.
2015-04-21 12:55:24 +10:00
Guillaume Desmottes
ac5e25937b
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>
2015-04-20 09:05:11 +01:00
Guillaume Desmottes
fae93514e4
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>
2015-04-17 14:28:37 +01:00
Guillaume Desmottes
481b1c921e
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>
2015-04-17 14:28:25 +01:00
Sebastian Dröge
917c395403
gldownloadelement: Download *from* OpenGL, not into
2015-04-17 15:20:12 +02:00
Matthieu Bouron
f283d72636
gluploadelement: Unref GstGLUpload object and caps in ::stop()
...
Fix leak of the GstGLUpload object.
https://bugzilla.gnome.org/show_bug.cgi?id=748033
2015-04-17 14:17:55 +02:00
Sebastian Dröge
c1cac829ef
gl: Remove some empty ::finalize() implementations
2015-04-17 14:09:47 +02:00
Sebastian Dröge
9ee29626c4
gldownloadelement: Fix element description
2015-04-17 14:06:03 +02:00
Sebastian Dröge
758fea90aa
gldownloadelement: Remove unused ::finalize() implementation
2015-04-17 14:05:44 +02:00
Sebastian Dröge
53ed701974
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.
2015-04-17 14:04:14 +02:00
Guillaume Desmottes
17446a420c
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
2015-04-17 14:04:14 +02:00
Sebastian Dröge
25561db099
glimagesink: Disconnect mouse/key event signal handlers from window when shutting down context
2015-04-06 20:28:22 -07:00
Sebastian Dröge
a72e204eae
glimagesink: Guard against disconnecting invalid signal ids
2015-04-06 20:24:06 -07:00
Edward Hervey
90028d68fe
glvideomixer: Don't use context if not present
...
Avoids assertions at runtime
2015-03-31 16:31:18 +02:00
Anton Obzhirov
4504356dda
gleffects: port all effects to GLES2.0
...
https://bugzilla.gnome.org/show_bug.cgi?id=745955
2015-03-30 19:06:44 +01:00
Nicola Murino
0719c8c766
glimagesink: fix caps leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=746541
2015-03-21 16:52:08 +00:00
Víctor Manuel Jáquez Leal
d925e7fd19
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
2015-03-14 19:53:02 +00:00
Julien Isorce
f8fca66fb9
glimagesink: keep window invisible when sharing output
...
https://bugzilla.gnome.org/show_bug.cgi?id=739681
2015-03-14 17:56:39 +00:00
Julien Isorce
0150255a46
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
2015-03-14 17:56:21 +00:00
Matthew Waters
fa61e8e4ce
glsyncmeta: make context to wait and set sync explicit
...
otherwise we may wait on a sync object in same context by accident
2015-03-14 16:53:46 +00:00
Nicolas Dufresne
ac89e53173
glimagesink: Add NULL check in error case
...
Other context may be NULL if something went wrong. Avoid trying to unref
a NULL pointer.
2015-03-14 12:58:22 +00:00
Matthew Waters
0c8ede8565
glupload/colorconvert: only copy timestamps if the input buffer != output
2015-03-14 10:39:06 +00:00
Matthew Waters
a29a18cc3a
glshader: attribute locations are -1 on error
2015-03-13 17:41:17 +00:00
Jan Schmidt
450dc5f697
GL: Remove annoying printf in the filterbin class_init
2015-03-14 02:54:18 +11:00
Matthew Waters
2ba6bb9b93
glimagesink: add pixel-aspect-ratio property on the bin
2015-03-13 12:43:13 +00:00
Matthew Waters
4be45e5f30
glimagesink: forward ALL the properties on the bin
2015-03-13 12:30:20 +00:00
Matthew Waters
067d5c45d2
gluploadelement: properly unref buffers that are the same as the input
...
basetransform doesn't unref equal input and output buffers
2015-03-13 12:30:20 +00:00
Matthew Waters
34485c9976
gl: get the context from basemixer/basefilter
2015-03-13 12:30:20 +00:00
Matthew Waters
91b7642c48
gl: retreive the gldisplay/app gl context as soon as possible
...
fixes the usage of gst_gl_display_filter_gl_api
2015-03-13 12:30:20 +00:00
Matthew Waters
dbe8ae4d98
caopengllayersink: implement as a bin like glimagesink
2015-03-12 16:45:51 +00:00
Matthew Waters
66ccdab09a
gl/cocoa: avoid deadlock when creating context on the main thread.
...
Make window/view creation async so that it is possible to
gst_gl_context_create from the main thread.
2015-03-12 16:45:51 +00:00
Matthew Waters
ef0bd30c87
gl: store the list of contexts within gldisplay
...
Removes the reliance on the allocation query to propogate GL contexts.
Allows thread safely getting a context for the a specific thread.
2015-03-12 16:45:51 +00:00
Matthew Waters
2f2470488b
glimagesink: unset the current shader after rendering
...
fixes gltestsrc ! glimagesink when gltestsrc doesn't use a shader
2015-03-12 16:45:51 +00:00
Matthew Waters
5495397c81
gltestsrc: remove usage of gldownload library object
2015-03-12 16:45:51 +00:00
Matthew Waters
776d190f59
gl: new glsrcbin element
2015-03-12 16:45:51 +00:00
Matthew Waters
0fb56738a1
glvideomixer: implement with glmixerbin
...
The relevant properties are forwarded to/from the containing bin
and sink pads.
2015-03-12 16:45:51 +00:00
Matthew Waters
d5a692bdb0
glmixer: remove usage of upload/download objects
2015-03-12 16:45:51 +00:00
Matthew Waters
9e605fca6c
gl: new glmixerbin element
2015-03-12 16:45:51 +00:00
Matthew Waters
8a0017e21d
glimagesink: implement as a bin
...
glupload ! glcolorconvert ! sink
Some properties are manually forwarded. The rest are available using
GstChildProxy.
The two signals are forwarded as well.
2015-03-12 16:45:50 +00:00
Matthew Waters
b0600aca97
gl: new glsinkbin element
...
similar to glfilterbin but for sinks
2015-03-12 16:45:50 +00:00
Matthew Waters
7fe908bc02
gl: new element glfilterbin
...
It encapsulates a confiurable GL processing element in the
upload/colorconvert/download dance required to transparently process
the majority of GstBuffer's.
2015-03-12 16:45:50 +00:00
Matthew Waters
a7cbc04aba
gl: add new gldownloadelement
...
Simply transforms caps to/from raw/glmemory capsfeatures
2015-03-12 16:45:50 +00:00
Matthew Waters
3514600bf3
gl: add a new glcolorconvert element based on the glcolorconvert library object
2015-03-12 16:45:50 +00:00
Matthew Waters
efaca13d11
gl: add a new glupload element based on the glupload library object
2015-03-12 16:45:50 +00:00
Matthew Waters
45d85a0570
gl: add a new glbasemixer class below glmixer
...
It deals with propagating the gl display/contexts throughout the
application/pipeline
2015-03-12 16:45:50 +00:00
Nicolas Dufresne
2d5d2eabef
glmixer: Don't share our downstream pool with upstream
...
Pool cannot have multiple owner. This can lead to spurious
pool was flushing error.
https://bugzilla.gnome.org/show_bug.cgi?id=74570
2015-03-06 20:12:09 -05:00
Nicolas Dufresne
fb4d769425
glimagesink: Only cache pool, don't manage it
...
GLImage does not use any kind of internal pool. There was some
remaining code and comment stating that it was managing the
pool, and it was in fact setting the active state when doing
to ready state.
* Only create the pool if requested and in propose_allocation
* Cache the pool to avoid reallocation on spurious reconfigure
* Don't try to deactivate the pool (we don't own it)
https://bugzilla.gnome.org/show_bug.cgi?id=745705
2015-03-06 19:25:16 -05:00
Sebastian Dröge
b81823e7db
gl: Remove format info in glcolorconvert's transform_caps function instead of on every caller
...
... and let glmixer actually transform the caps it is supposed to transform
instead of inventing new caps.
2015-03-06 18:53:13 +01:00
Nicolas Dufresne
eff94f929d
gloverlay: Fix upside down and miss-aligned JPEG
...
LibJPEG uses macroblock of 8x8 sample. In this element we use RGB and
Y444, two 24bit formats that are stored in 32bit pixels. This mean we
have 32x32 bytes macroblocks. For this reason, we need to allocate
our buffer slightly larger. We also need to pass the line pointer in
the right order, otherwise the image endup upside-down.
https://bugzilla.gnome.org/show_bug.cgi?id=745109
2015-03-03 15:26:13 -05:00
Xavier Claessens
128c2a141a
gltransformation: normalize translations
...
https://bugzilla.gnome.org/show_bug.cgi?id=744763
* Lubosz: use maxfloat for transformation range
2015-03-03 14:05:21 -05:00
Xavier Claessens
80f97eaee7
gltransformation: Fix doc typo
...
https://bugzilla.gnome.org/show_bug.cgi?id=744763
2015-03-03 14:05:21 -05:00
Nicolas Dufresne
b8f168cd65
glmemory: Add GstAllocationParams and alignment support
...
This implements support for GstAllocationParams and memory alignments.
The parameters where simply ignored which could lead to crash on
certain platform when used with libav and no luck.
https://bugzilla.gnome.org/show_bug.cgi?id=744246
2015-02-28 14:32:39 -05:00
Nicolas Dufresne
c20c6cfb92
opengl: Clean Makefile.am
...
+ Split headers from source
+ Remove uneeded AM_CFLAGS, AM_LDFLAGS
+ Always set OBJCFLAGS
Due to the presence of a .m and regardless of the conditional values,
automake will promote the link command to OBJC using OBJCFLAGS. Only
the basic flags (like warnings and optimization) are going to make a
difference though.
This cleanup builds up the makefile with less specific files first
toward more specific file. FLAGS are built with the basic that unused
flags will have empty variable.
2015-02-24 19:01:45 -05:00
Xavier Claessens
e25f4f1a60
glimagesink: cosmetic cleanup
...
https://bugzilla.gnome.org/show_bug.cgi?id=745105
2015-02-24 15:22:34 -05:00
Tim-Philipp Müller
004e910006
opengl: don't add --tag=CC twice to LIBTOOLFLAGS
2015-02-24 19:52:59 +00:00
Nicolas Dufresne
0feaeb38f9
opengl: Add --tag=CC to LIBTOOLCLFAGS
...
This is required for static build.
2015-02-24 14:35:37 -05:00
Matthew Waters
e3ec517838
caopengllayersink: render black when we don't have a texture to display
...
Like when the winsys asks us to redraw before the pipeline has started
2015-02-25 00:03:28 +11:00
Matthew Waters
021bfa99a1
new caopengllayersink element
...
renders gstreamer gl scene/video frames to a caopengllayer retreivable
from the "layer" property.
2015-02-24 19:12:10 +11:00
Julien Isorce
5fa0595046
glmixer: fix some compiler warnings
...
i686-apple-darwin11-llvm-gcc-4.2
gstglmixer.h:43: error: redefinition of typedef ‘GstGLMixer’
gstglmixerpad.h:32: error: previous declaration of ‘GstGLMixer’ was here
gstglmixer.h:46: error: redefinition of typedef ‘GstGLMixerFrameData’
gstglmixerpad.h:33: error: previous declaration of ‘GstGLMixerFrameData’ was here
2015-02-22 10:34:05 +00:00
Nicolas Dufresne
4ea15b1b3f
gltransform: Fix includes of graphene headers
...
The graphene-1.0 part should not be in the source code. This directory
is part of the cflags include. This is similar to gstreamer-1.0/
directory. This break compilation if the include directory where
graphene is installed is not in your include path.
2015-02-18 17:15:01 -05:00
Edward Hervey
43464aa204
glimagesink: Fix debug statement
2015-02-12 17:34:10 +01:00
Edward Hervey
638f99a37a
glimagesink: Sprinkle more debug
2015-02-12 15:57:55 +01:00
Matthew Waters
4f15cc8d3c
glimagesink: log the converted caps
2015-02-05 11:07:19 +11:00
Matthew Waters
c1ad8d776a
gl: remove the egl caps from the src pads
...
we don't actually support producing EGLImage buffers anywhere.
2015-02-03 15:30:08 +11:00
Matthew Waters
e7a10a2d44
glcolorconvert: put GstGLSyncMeta on output buffers
...
allows thread safely using the provided output buffer in a separate
thread
2015-02-03 14:32:55 +11:00
Matthew Waters
c06715bde6
glupload/download/convert: provide transform_caps functions
...
Allows finer grain decisions about formats and features at each
stage of the pipeline.
Also provide propose_allocation for glupload besed on the supported
methods.
2015-02-03 14:32:55 +11:00
Matthew Waters
c827d1f804
glimagesink: clobber the alpha channel by default
...
this can be disabled with the ignore-alpha property
2015-01-30 15:54:05 +11:00
Alessandro Decina
5f547c5600
gl: initial support for texture targets other than GL_TEXTURE_2D
...
Make GstGLMemory hold the texture target (tex_target) the texture it represents
(tex_id) is bound to. Modify gst_gl_memory_wrapped_texture and
gst_gl_download_perform_with_data to take the texture target as an argument.
This change is needed to support wrapping textures created outside libgstgl,
which might be bound to a target other than GL_TEXTURE_2D. For example on OSX
textures coming from VideoToolbox have target GL_TEXTURE_RECTANGLE.
With this change we still keep (and sometimes imply) GL_TEXTURE_2D as the
target of textures created with libgstgl.
API: modify GstGLMemory
API: modify gst_gl_memory_wrapped_texture
API: gst_gl_download_perform_with_data
2015-01-30 00:34:08 +11:00
Matthew Waters
6cf97eb221
glwindow: make showing a window explicit
...
Also fixes the cgl context always displaying a window to render to for
every GstGLContextCocoa created
2015-01-29 22:26:37 +11:00
Edward Hervey
88038884a8
gltestsrc: Ensure variable is initialized before usage
...
Coverity CID: 1256569
2015-01-23 12:41:29 +01:00
Matthew Waters
ab48bb6f0f
glwindow: remove width/height from _draw()
...
Depending on the platform, it was only ever implemented to 1) set a
default surface size, 2) resize based on the video frame or 3) nothing.
Instead, provide a set_preferred_size () that elements/applications
can use to request a certain size which may be ignored for
videooverlay/other cases.
2015-01-23 16:11:31 +11:00
Sebastian Dröge
80e02cbdf9
Constify some static arrays everywhere
2015-01-21 10:18:50 +01:00
Nicola Murino
907e02cfa9
glimagesink: fix memleak
...
https://bugzilla.gnome.org/show_bug.cgi?id=743142
2015-01-19 14:33:02 +11:00
Matthew Waters
39e6f621b3
glvideomixer: don't upload if alpha <= 0
...
Implemented using a upload_buffer vfunc within GstGLMixer allowing
NULL uploaded buffers.
2015-01-15 09:50:02 +11:00
Matthew Waters
d5c3693791
gl: split glcolorconvert usage from glupload
...
the separation allows the transfer operation to occur in a separate
thread/time which may increase performance in specific circumstances.
2015-01-14 22:22:13 +11:00
Tim-Philipp Müller
4e6f8a76f0
glmixer, glvideomixer: update for GstAggregatorPadForeachFunc change
2014-12-30 19:43:43 +00:00
Tim-Philipp Müller
de5604483f
glmixer: update for aggregator start/stop vfunc change
2014-12-30 19:26:47 +00:00
Nirbheek Chauhan
888b531940
glvideomixer: Point to compositor for the pad properties documentation
2014-12-27 11:05:17 +00:00
Nicolas Dufresne
9954de1ccd
gl: Add support for GstVideoAlignment
...
This allow saving a copy with libav video decoders or decoders with
similar padding requirement.
https://bugzilla.gnome.org/show_bug.cgi?id=740900
2014-12-19 12:11:08 -05:00
Matthew Waters
15fc4b9bbe
glfiltercube: use a shader everywhere
2014-12-11 19:41:23 +11:00
Matthew Waters
f021549294
gl: fixup vao and vbo usage for legacy GL
2014-12-11 19:41:23 +11:00
Matthew Waters
1d324e259a
gleffects: don't abort when setting the effect to 0,1,2
2014-12-11 19:41:23 +11:00
Ramprakash Jelari
26d99a6f3e
gl: Rename gst-launch-0.10 to gst-launch-1.0 in docs
2014-12-04 16:25:57 +01:00
Matthew Waters
6361df77e8
glimagesink: properly handle the !opengl3 case
...
https://bugzilla.gnome.org/show_bug.cgi?id=740012
2014-11-30 00:44:46 +11:00
Tim-Philipp Müller
5299d683ee
glfilterapp: fix unused variable compiler warning
...
When GST_GL_HAVE_OPENGL is 0 or unset.
2014-11-28 16:04:54 +00:00
Matthew Waters
26fc4e2bd5
glfilterapp is now available on gles2 as well so build it
2014-11-28 14:08:40 +11:00
Matthew Waters
820162f84c
gl: fix typo in #if
...
GST_GL_API_HAVE_OPENGL doesn't exist
2014-11-28 11:04:22 +11:00
Matthew Waters
57898fec2a
gl: fix various build errors without desktop gl
2014-11-28 10:59:46 +11:00
Matthew Waters
3c1e77eb31
gldisplay: implement runtime GL api filtering
...
Needed so that the pipeline/application can limit the choice of GL api
to what it supports
2014-11-28 09:14:26 +11:00
Matthew Waters
6bd1150ca8
gl: remove the use of glu
2014-11-28 09:14:26 +11:00
Matthew Waters
f2af65ee2d
gl: add a sync meta for synchronizing across GL contexts
...
A context can create a GLsync object that can be waited on in order
to ensure that GL resources created in one context are able to be
used in another shared context without any chance of reading invalid
data.
This meta would be placed on buffers that are known to cross from
one context to another. The receiving element would then wait
on the sync object to ensure that the data to be used is complete.
2014-11-28 09:14:25 +11:00
Matthew Waters
18ae2d35e9
glfilterapp: port to gles2 and gl3
2014-11-28 09:14:25 +11:00
Matthew Waters
1331cbc54e
gloverlay: support gl3
2014-11-28 09:14:25 +11:00
Matthew Waters
45ac7be402
glvideomixer: add support for gl3
2014-11-28 09:14:25 +11:00
Matthew Waters
d661fb959e
glfiltercube: add a gl3 code path
2014-11-28 09:14:25 +11:00
Matthew Waters
67762e8d58
glfiltershader: support gl3
2014-11-28 09:14:25 +11:00
Matthew Waters
3772c83f94
gltransformation: support gl3
2014-11-28 09:14:25 +11:00
Matthew Waters
dd80a40604
gleffects: support gl3 whereever gles2 is supported
2014-11-28 09:14:25 +11:00
Matthew Waters
f2d1f7dd0f
glcolorscale: support gl3
2014-11-28 09:14:25 +11:00
Matthew Waters
f0d2346c52
glimagesink: use vbo's and vao's for gl3
2014-11-28 09:14:25 +11:00
Thibault Saunier
9d8055186d
videoaggregator: Expose vmethods to set converters and prepare/clean frames
...
This gives more flexibility to the subclasses and permits to remove the
GstVideoAggregatorClass->disable_frame_conversion ugly API.
WARNING: This breaks the API as it removes the disable_frame_conversion
field
API:
+ GstVideoAggregatorClass->find_best_format
+ GstVideoAggregatorPadClass->set_format
+ GstVideoAggregatorPadClass->prepare_frame
+ GstVideoAggregatorPadClass->clean_frame
- GstVideoAggregatorClass->disable_frame_conversion
https://bugzilla.gnome.org/show_bug.cgi?id=740768
2014-11-27 19:10:58 +01:00
Matthew Waters
a7ce611970
glimagesink: only attempt a resize when the window has already resized
...
fixes a black startup screen on wayland
2014-11-27 13:03:21 +11:00
Matthew Waters
810d38c29f
glupload: rearchitecture for non GLMemory inputs/outputs
...
Allows other memory types to be implemented/returned/used by the caller.
2014-11-23 17:13:36 +11:00
Vineeth T M
47f3a1954e
glimagesink: critical error while seek playback-test(stop state)
...
If we seek when media is in stop state, playback-test gives
critical error, since context of glimagesink is destroyed during stop.
But since context is not present, we need not handle send_event in glimagesink
Hence adding a condition to check if context is valid.
https://bugzilla.gnome.org/show_bug.cgi?id=740305
2014-11-20 15:39:42 +11:00
Matthew Waters
df12001781
glmixer: add read-only context property
2014-11-17 18:50:04 +11:00
Matthew Waters
5c48440c9a
glimagesink: don't set the upload to NULL on the drain query
...
https://bugzilla.gnome.org/show_bug.cgi?id=732694
2014-11-12 11:44:43 +11:00
Julien Isorce
004a414b4a
glimagesink: release stored buffers on drain query
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732694
2014-11-12 00:08:04 +00:00
Matthew Waters
36ade75f4a
gl: remove the width/height fields from the caps to support frame resizing
...
It was previously only occuring with sysmem caps features
https://bugzilla.gnome.org/show_bug.cgi?id=739334
2014-11-11 14:23:55 +11:00
Alessandro Decina
7d48fe1c1e
glimagesink: don't make gst_glimage_sink_handle_events call _ensure_gl_setup
...
gst_glimage_sink_handle_events can be called from the overlay interface and from
the main thread before GL is setup. Before this change, that would call
_ensure_gl_setup() and deadlock on OSX.
Change things so that it's always safe to call gst_glimage_sink_handle_events()
without stuff deadlocking.
2014-11-07 00:22:09 +01:00
Alessandro Decina
b60fe0271f
glimagesink: fix possible deadlock on osx
...
Remove gst_glimage_sink_handle_events call in gst_glimage_sink_init. It was
unnecessary and when the element was instantiated from the main thread, caused a
deadlock in OSX creating the context (thread).
2014-11-07 00:22:09 +01:00
Matthew Waters
7e62c790d2
glimagesink: clamp the resize width/height to >= 1 to avoid a GL error
2014-11-07 10:03:08 +11:00
Lubosz Sarnecki
6702811e14
glimagesink: implement gst_video_overlay_handle_events
...
https://bugzilla.gnome.org/show_bug.cgi?id=736035
2014-11-06 16:04:11 +11:00
Matthew Waters
0537cbfa5b
glimagesink: resize the viewport correctly on a caps change
...
with force-aspect-ratio=true, if the width or height changed, the
viewport wasn't being updated to respect the new video width and height
until a resize occured.
2014-10-31 21:29:26 +11:00
Matthew Waters
d6247993f7
glmixer: advertise support for changing input caps mid-stream
...
https://bugzilla.gnome.org/show_bug.cgi?id=739334
2014-10-31 21:29:25 +11:00
Matthew Waters
a4af98b8c6
glmixer: don't get the current caps from GstVideoInfo for the srcpad
...
It's missing the caps features needed.
2014-10-30 23:08:00 +11:00
Lubosz Sarnecki
27da1e5aaf
satisfy gst-indent
2014-10-29 23:42:54 +11:00
Jan Schmidt
70e4d4123c
glfiltercube: Fix typo in property description
2014-10-29 23:23:13 +11:00
Wang Xin-yu (王昕宇)
a9d13db8c6
glmixer:fix incorrect parameter passed to handle_set_context
2014-10-29 20:43:31 +11:00
Matthew Waters
9ac74f6226
glmixer: override the caps query in order to 'convert' capsfeatures
...
Otherwise, it is only possible for the sink pads and the src pads to
have the exact same caps features. We can convert from any feature
to another feature so support that.
2014-10-24 00:35:22 +11:00
Matthew Waters
7d9044cf05
glmixer: override the accept caps query in order to 'convert' capsfeatures
...
Otherwise, it is only possible for the sink pads and the src pads to
have the exact same caps features. We can convert from any feature
to another feature so support that.
2014-10-23 23:58:33 +11:00
Matthew Waters
e40d70c69a
gl: propogate other-context using GstContext
2014-10-23 23:58:33 +11:00
Matthew Waters
73a484d500
glmixer: fixup eglimage include path
2014-10-21 06:04:10 +11:00
Matthew Waters
2e49c99db3
glbufferpool: add the GstVideoGLTextureUploadMeta buffer pool option
2014-10-21 02:00:09 +11:00
Matthew Waters
f0caf04ad6
videoaggregator: operate on caps rather than video info
...
Otherwise the CapsFeatures will be lost along with the possibility
of multiple output types and formats.
https://bugzilla.gnome.org/show_bug.cgi?id=738129
2014-10-21 01:14:36 +11:00
Matthew Waters
771b94b3ca
gldeinterlace: ref the uploaded buffer
...
Instead of the possibly non-GL input buffer.
2014-10-14 16:54:01 +02:00
Sebastian Dröge
302034ac4c
glimagesink: Only finalize the other context in finalize()
...
Otherwise we change a value of a property when going to READY state,
which is unexpected behaviour.
2014-10-13 13:28:57 +02:00
Sebastian Dröge
dbdeed9b15
glmixer: Call the pad's parent class finalize method
2014-10-13 13:27:55 +02:00
Sebastian Dröge
f1fd536dc4
glmixer: Only finalize the other context in finalize()
...
Otherwise we change a value of a property when going to READY state,
which is unexpected behaviour.
2014-10-13 13:27:11 +02:00
Sebastian Dröge
fe3fafe652
gltestsrc: Add other-context property
2014-10-13 13:25:42 +02:00
Sebastian Dröge
d8a262a589
glimagesink: Don't leak other-context
2014-10-13 11:57:22 +02:00
Sebastian Dröge
3efaa0dec0
glmixer: Add other-context property
2014-10-13 11:57:22 +02:00
Vivia Nikolaidou
7872359239
gloverlay: And fix another unused variable compiler warning
2014-10-08 21:51:12 +03:00
Vivia Nikolaidou
b8d64301af
gloverlay: Fix unused variable compiler warning when compiling without desktop GL
2014-10-08 21:49:59 +03:00
Wang Xin-yu (王昕宇)
e6212f5156
gltestsrc: implement checkers pattern with GLSL
...
https://bugzilla.gnome.org/show_bug.cgi?id=737505
2014-10-07 23:41:38 +11:00
Lubosz Sarnecki
04034b11f4
gltransformation: graphene multiplication order has changed
...
https://bugzilla.gnome.org/show_bug.cgi?id=733510
2014-09-30 22:11:35 +10:00
Matthew Waters
d1360ef2c7
glvideomixer: update element documentation
2014-09-30 20:39:36 +10:00
Matthew Waters
3ab17dfbe3
Revert accidental push: "gltestsrc: implement checkers pattern with GLSL"
...
This reverts commit eae09179f0
.
2014-09-29 00:27:30 +10:00
Wang Xin-yu (王昕宇)
eae09179f0
gltestsrc: implement checkers pattern with GLSL
2014-09-28 21:43:34 +10:00
Matthew Waters
b658f04d6c
gloverlay: fix zero output frames with YUY2/UYVY
...
also, be nice and disable blending for other elements
2014-09-26 22:29:56 +10:00
Matthew Waters
720ba932c9
gloverlay: protect desktop gl specific tokens with #if
2014-09-26 22:22:06 +10:00
Matthew Waters
eaa424cec7
gloverlay: free the image memory every time the location changes
...
fixes a memory leak
2014-09-26 12:28:55 +10:00
Sebastian Dröge
9c6c82887f
gloverlay: Include into the build with GLES2 only too
2014-09-25 20:48:59 +03:00
Matthew Waters
7e69750336
gltestsrc: free the shader on stop
2014-09-26 01:59:44 +10:00
Matthew Waters
acb21cdb83
glvideomixer: fix blending with low-alpha sources
...
We also need to apply the blend paramaters to the alpha channel otherwise
the output of the blend will appear black at low alpha values (< 0.2).
2014-09-26 01:59:43 +10:00
Matthew Waters
7b3024c387
gloverlay: reimplement everything
...
- update for shaders
- add alpha property
- image placement properties shamelessly borrowed from gdkpixbufoverlay
- image placement properties are GstController able
- use GstGLMemory for the overlay image data
- add support for gles2
2014-09-26 01:59:43 +10:00
Matthew Waters
9f953f297f
glvideomixer: skip input frames with an alpha of 0
2014-09-24 14:31:19 +10:00
Matthew Waters
c44352b11f
gl: download whenever we have sysmem capsfeatures
...
Otherwise we could pass on a RGBA formatted buffer and downstream would
misinterpret that as some other video format.
Fixes pipelines of the form
gleffects ! tee ! xvimagesink
2014-09-24 13:16:30 +10:00
Lubosz Sarnecki
b2398e3fd1
gltestsrc: add Mandelbrot fractal pattern.
...
https://bugzilla.gnome.org/show_bug.cgi?id=735131
2014-09-24 00:40:57 +10:00
Lubosz Sarnecki
3736f944b5
gltestsrc: implement snow pattern with GLSL.
...
https://bugzilla.gnome.org/show_bug.cgi?id=735131
2014-09-24 00:40:37 +10:00
Matthew Waters
5b8d7a443e
glupload: provide the output buffer that is rendered into
...
Allows callers to properly reference count the buffers used for
rendering.
Fixes a redraw race in glimagesink where the previous buffer
(the one used for redraw operations) is freed as soon as the next
buffer is uploaded.
1. glimagesink uploads in _prepare() to texture n
1.1 glupload holds buffer n
2. glimagesink _render()s texture n
3. glimagesink uploads texture n+1
3.1 glupload free previous buffer which deletes texture n
3.2 glupload holds buffer n+1
4. glwindow resize/expose
5. glimagesink redraws with texture n
The race is that the buffer n (the one used for redrawing) is freed as soon as
the buffer n+1 arrives. There could be any amount of time and number of
redraws between this event and when buffer n+1 is actually rendered and thus
replaces buffer n as the redraw source.
https://bugzilla.gnome.org/show_bug.cgi?id=736740
2014-09-21 21:36:49 +10:00
Sanjay NM
a1ae26acbd
gl: Removed unreachable break, unused variable
...
https://bugzilla.gnome.org/show_bug.cgi?id=736957
2014-09-19 21:48:14 +10:00
Ognyan Tonchev
66967bb203
gltestsrc: do not leak pool in error cases
...
https://bugzilla.gnome.org/show_bug.cgi?id=736730
2014-09-16 12:48:43 +03:00
Ognyan Tonchev
31703f9ac3
glmixer: do not leak pool in error cases
...
https://bugzilla.gnome.org/show_bug.cgi?id=736729
2014-09-16 12:48:01 +03:00
Lubosz Sarnecki
f1b026c480
gltransformation: fix issues and expose mvp matrix
...
* aspect should not be 0 on init
* rename fovy to fov
* add mvp to properties as boxed graphene type
* fix transformation order. scale first
* clear color with 1.0 alpha
https://bugzilla.gnome.org/show_bug.cgi?id=734223
2014-09-05 09:39:34 +10:00
Sebastian Dröge
e4b084acd9
glimagesink: Add missing break to switch
...
CID 1232801
2014-08-28 16:42:30 +03:00
Lubosz Sarnecki
ddaaff3376
glimagesink: expose context
...
* expose context in draw / reshape callbacks
* add context property
https://bugzilla.gnome.org/show_bug.cgi?id=734482
2014-08-21 17:38:57 +10:00
Matthew Waters
30ddb384ab
glmixer: unref the GstGLUpload in the pad if freed while running
...
Dynamic pipelines that get and release the sink pads will finalize
the pad without going through gst_gl_mixer_stop() which is where the
upload object is usually freed. Don't leak objects in such case.
2014-08-19 17:01:36 +10:00
Wang Xin-yu (王昕宇)
98152017b7
glvideomixer: avoid gl resource race condition between different thread
...
https://bugzilla.gnome.org/show_bug.cgi?id=734830
2014-08-19 17:00:58 +10:00
Matthew Waters
0b0c116327
glvideomixer: don't clobber unnecessary GstVideoInfo fields
...
otherwise we might clobber other important fields such as the frame rate.
2014-08-19 14:44:29 +10:00
Matthew Waters
510a016c88
glvideomixer: get the attribute from the correct shader
2014-08-19 14:43:42 +10:00
Matthew Waters
c6706adfcc
glimagesink: unref the window on navigation event
...
plugs a memory leak
2014-08-19 14:24:02 +10:00
Tim-Philipp Müller
c81a2d1c6c
opengl: update element docs for 1.x
2014-08-10 18:07:28 +01:00
Matthew Waters
dab074899e
glvideomixer: add a background property
...
That's compatible with the compositor/videomixer property
https://bugzilla.gnome.org/show_bug.cgi?id=731954
2014-08-07 19:21:02 +10:00
Vasilis Liaskovitis
4dacc4ba55
GstGLWindow, GstGLImagesink, x11: Scale navigation events on resized windows
...
If window is resized, GstStructure pointer values have to be rescaled to
original geometry. A get_surface_dimensions GLWindow class method is added for
this purpose and used in the navigation send_event function.
https://bugzilla.gnome.org/show_bug.cgi?id=703486
2014-08-07 13:55:02 +10:00