Commit graph

71 commits

Author SHA1 Message Date
Sebastian Dröge
23eb9beef8 glimagesink: Chain up to the parent class' finalize function 2017-12-09 19:31:44 +00:00
Sebastian Dröge
8f6224c0ed glimagesink: Make sure to always unref the display
Even if we didn't create a context yet.
2017-12-09 19:31:44 +00:00
Matthew Waters
025d6a87ba glshader: enable glshader on GLES2 2017-12-09 19:31:43 +00:00
Julien Isorce
e5c3605056 glcolorscale: do passthrough on same caps
See https://bugzilla.gnome.org/show_bug.cgi?id=732178
2017-12-09 19:31:43 +00:00
Julien Isorce
c18a109b42 gl: enable glvideomixer on GLES2 2017-12-09 19:31:43 +00:00
Matthew Waters
d86208e6ad glvideomixer: bas output width/height on the pad properties
Allows automatic negotiation of the size in the following case:
gst-launch-1.0 glvideomixer name=m sink_0::xpos=0 sink_1::xpos=320 ! glimagesink \
    videotestsrc ! m. \
    videotestsrc pattern=1 ! m.

https://bugzilla.gnome.org/show_bug.cgi?id=731878
2017-12-09 19:31:43 +00:00
Matthew Waters
dc4f9575b1 glvideomixer: don't clobber already allocated shader 2017-12-09 19:31:43 +00:00
Matthew Waters
3e092e1579 gl: XInitThreads when env variable is set
This is too allow gst-launch debugging with multiple GL contexts as
well as avoiding segfaulting innocent gtk+ apps that have not called
XInitThreads.

https://bugzilla.gnome.org/show_bug.cgi?id=731525
2017-12-09 19:31:43 +00:00
Sebastian Dröge
c88abf6ac2 gl: Need to link to new badvideo library for the video aggregator base class 2017-12-09 19:31:43 +00:00
Thibault Saunier
097373ed19 gl:glvideomixer: Add the Compositor in the element metadata class
So it is possible to pick one compositing element from the registry
2017-12-09 19:31:43 +00:00
Thibault Saunier
30a9ef3768 gl: Port glmixer to the GstVideoAggregator baseclass
https://bugzilla.gnome.org/show_bug.cgi?id=731921
2017-12-09 19:31:43 +00:00
Lubosz Sarnecki
7e6962c95e opengl: add element for transforming video geometry
* add graphene as soft dependency for linear algebra
2017-12-09 19:31:43 +00:00
Matthew Waters
918ff5b25f glfiltershader: port to GLES2
Provide a time variable
2017-12-09 19:31:43 +00:00
Matthew Waters
21c0eed027 glvideomixer: silence incorrect number of arguments in format warning 2017-12-09 19:31:43 +00:00
Matthew Waters
b1e3630974 glvideomixer: wire up the alpha pad property 2017-12-09 19:31:43 +00:00
Matthew Waters
8226bb24cc glvideomixer: support input frame scaling 2017-12-09 19:31:43 +00:00
Matthew Waters
fc45211a9d glvideomixer: add positioning of input streams
https://bugzilla.gnome.org/show_bug.cgi?id=729798
2017-12-09 19:31:43 +00:00
Matthew Waters
e7cc498fb6 glfilterapp: actually emit the client-draw signal 2017-12-09 19:31:43 +00:00
Matthew Waters
e523cdd21a glfilterapp: remove the reshape/draw properties
The reshape property was never used.
Replace the draw property with a signal.

Based on patch by Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>

https://bugzilla.gnome.org/show_bug.cgi?id=704507
2017-12-09 19:31:42 +00:00
Matthew Waters
90b86e73e7 glimagesink: replace pointer properties with signals
Based on patch by Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>

https://bugzilla.gnome.org/show_bug.cgi?id=704507
2017-12-09 19:31:42 +00:00
Matthieu Bouron
f34864fb87 glimagesink: improve state change debug message 2017-12-09 19:31:42 +00:00
Matthew Waters
e425bd31a1 glimagesink: unref the old buffer outside the lock
it could very well deadlock

https://bugzilla.gnome.org/show_bug.cgi?id=723529
2017-12-09 19:31:42 +00:00
Matthew Waters
98e9ca7270 Revert "[880/906] glimagesink: remove unused stored_buffer field"
This reverts commit af3a68db7d.

Conflicts:
	ext/gl/gstglimagesink.c

https://bugzilla.gnome.org/show_bug.cgi?id=723529
2017-12-09 19:31:42 +00:00
Matthew Waters
4a8b31afd6 glfeature: remove GST_GL_API_GLES3
instead check the gl version using gst_gl_context_check_gl_version()
2017-12-09 19:31:42 +00:00
Matthew Waters
32343333aa gl/upload: add GstGLUploadMeta object
That simply deals with the provider aspect of GstVideoGLTextureUploadMeta.
2017-12-09 19:31:41 +00:00
Julien Isorce
1c14c43c90 glimagesink: make it actually honor show-preroll-frame property
https://bugzilla.gnome.org/show_bug.cgi?id=730802
2017-12-09 19:31:41 +00:00
Matthew Waters
51fdeef98b gl/eglimage: add eglimage context feature
Allows us to selectively use EGLImages only when available

https://bugzilla.gnome.org/show_bug.cgi?id=728234
2017-12-09 19:31:41 +00:00
Sebastian Dröge
8b7d8a95ea glimagesink: Check if context creation failed before trying to use it
Otherwise we will cause assertions everywhere by passing NULL to functions
and eventually crash when dereferencing a NULL pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=730069
2017-12-09 19:31:40 +00:00
Matthew Waters
9172cb8839 gl/download: update to be similar to the glupload semantics 2017-12-09 19:31:40 +00:00
Julien Isorce
17946cc0a9 gleffects: use gl_vtable 2017-12-09 19:31:40 +00:00
Matthew Waters
6c1a4e30c4 gl/upload: implement lazy init
Rename init_format to set_format
2017-12-09 19:31:39 +00:00
Matthew Waters
8fd450b941 gl: advertise GstGLMemory usage in the caps as capsfeatures
https://bugzilla.gnome.org/show_bug.cgi?id=729658
2017-12-09 19:31:39 +00:00
Matthew Waters
a865a931fc gl/sink: make sure we always initialize the upload object
https://bugzilla.gnome.org/show_bug.cgi?id=729542
2017-12-09 19:31:39 +00:00
Matthew Waters
bf9c8544e3 gl: use the bufferpool's upload when available
Avoids duplicating GL resources

https://bugzilla.gnome.org/show_bug.cgi?id=728872
2017-12-09 19:31:39 +00:00
Matthew Waters
b1fc846f83 glcolorscale: fix operation with dual GL, GLES2 libgstgl 2017-12-09 19:31:38 +00:00
Julien Isorce
2a12e57a9f glcolorscale: use a shader on GLESv2
Otherwise you only see black frames

Fix https://bugzilla.gnome.org/show_bug.cgi?id=728947
2017-12-09 19:31:38 +00:00
Julien Isorce
0455cb610a glimagesink: use new helper function to avoid duplicating default shader text 2017-12-09 19:31:38 +00:00
Julien Isorce
2b8de2d1bc gleffects: use new helper functions to avoid duplicating the same vertex shader text
And also use the default fragment shader text for the identity effect
2017-12-09 19:31:38 +00:00
Julien Isorce
391661b626 gl: use gst_gl_platform_from_string because we support gl shareList on all platforms 2017-12-09 19:31:38 +00:00
Julien Isorce
c52dd44e60 gl: fails glimagesink when shader compilation went wrong
Those shaders are fixed and very simple so it should not fail
but it's worth to handle a such case.
2017-12-09 19:31:37 +00:00
Julien Isorce
4844c53017 gl: call glClearColor before glClear 2017-12-09 19:31:37 +00:00
Sebastian Dröge
569f1363f4 glimagesink: Use the pixel-aspect-ratio adjusted width/height when centering the frame in the display area
Makes sure we actually keep the display aspect ratio
2017-12-09 19:31:37 +00:00
Sebastian Dröge
889e92e738 glimagesink: By default keep the display aspect ratio
Also the default for the pixel-aspect-ratio should be 1/1, not 0/1.
2017-12-09 19:31:37 +00:00
Sebastian Dröge
7f7ceea8de gltestsrc: Unref context when creation failed and guard against that in fill() 2017-12-09 19:31:37 +00:00
Sebastian Dröge
fc607b3c53 glimagesink: Call gst_object_unref() on the GstGL GObjects again
While they're plain GObjects it does not hurt to call gst_object_unref()
on them and potentially allows to debug reference leaks a bit easier.
2017-12-09 19:31:37 +00:00
Sebastian Dröge
2b38f86b4e glimagesink: If creating a context or upload failed, destroy it
Fixes deadlocks in error cases when later code assumes the broken
context is actually usable.

https://bugzilla.gnome.org/show_bug.cgi?id=728761
2017-12-09 19:31:37 +00:00
Vincent Penquerc'h
f230f758e7 gl: a couple spelling/grammar fixes 2017-12-09 19:31:37 +00:00
Vincent Penquerc'h
d6a87fb0c3 gl: guard against using a NULL window pointer
Coverity 1195145
2017-12-09 19:31:37 +00:00
Matthew Waters
9eb5001e02 glimagesink: remove unused texture 2017-12-09 19:31:36 +00:00
Matthew Waters
57b4bd6905 glimagesink: move upload into _prepare() 2017-12-09 19:31:36 +00:00