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
Matthew Waters
707cb58004
gl: document GST_GL_* environment variables
...
https://bugzilla.gnome.org/show_bug.cgi?id=733245
2014-08-01 16:43:47 +10:00
Matthew Waters
13960f0043
glimagesink: keep the uploaded buffer around on successful redisplay
...
We might need it later to perform a redisplay. GstGLUpload will take
of releasing the previous buffer when it receives a new buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=733726
2014-07-29 13:25:22 +10:00
Matthew Waters
13c63154b0
glimagesink: silence gsignal warning
...
instance '0xblah' has no handler with id '13'
2014-07-27 13:27:10 +10:00
Matthew Waters
5291ba37d9
glimagesink: remove extra argument from debug call
2014-07-24 13:05:00 +10:00
Vasilis Liaskovitis
90a4444609
glimagesink: Add navigation interface and callbacks for GstGLWindow mouse/key signals
...
https://bugzilla.gnome.org/show_bug.cgi?id=703486
2014-07-24 12:48:57 +10:00
Wang Xin-yu (王昕宇)
1adb0a77d6
gl: fix multi gl object leaks
...
1. fix FBO leaks in decide_allocation
2. fix texture leaks in decide_allocation and reset
3. fix texture leaks in FBO incomplete error path
2014-07-24 11:46:56 +10:00
Sebastian Dröge
1934847981
gl: Always build gstglmixer, not only when full OpenGL support is enabled
2014-07-11 13:58:55 +02:00
Sebastian Dröge
acb1d5afc3
gl: Link to all required libraries but not more
2014-07-11 12:06:48 +02:00
Sebastian Dröge
92d00d0233
gl: Move GstGLMixer to the plugin for now
...
It depends on GstAggregator and we don't want to install headers
for that yet.
https://bugzilla.gnome.org/show_bug.cgi?id=732207
2014-07-11 09:41:05 +02:00
Nicolas Dufresne
ab29217726
glimagesink: Keep aspect ratio by default
...
The expected default behaviour for video sink is to maintain the
aspect ratio. Fix the default value to reflect this. The property
default was already TRUE, but the value was not initially TRUE.
2014-07-09 15:03:53 -04:00
Sebastian Dröge
a84320be50
glimagesink: Chain up to the parent class' finalize function
2014-06-29 22:26:47 +02:00
Sebastian Dröge
f068b64285
glimagesink: Make sure to always unref the display
...
Even if we didn't create a context yet.
2014-06-29 22:25:43 +02:00
Matthew Waters
7797b15de7
glshader: enable glshader on GLES2
2014-06-25 18:26:13 +10:00
Julien Isorce
13023f2975
glcolorscale: do passthrough on same caps
...
See https://bugzilla.gnome.org/show_bug.cgi?id=732178
2014-06-25 06:56:43 +01:00
Julien Isorce
6f45d00a9b
gl: enable glvideomixer on GLES2
2014-06-25 06:55:11 +01:00
Matthew Waters
c37ace1844
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
2014-06-25 12:00:34 +10:00
Matthew Waters
4c02c4f004
glvideomixer: don't clobber already allocated shader
2014-06-25 10:19:42 +10:00
Matthew Waters
5409a3ea2f
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
2014-06-24 23:51:24 +10:00
Sebastian Dröge
8a18ac76e1
gl: Need to link to new badvideo library for the video aggregator base class
2014-06-22 18:58:51 +02:00
Thibault Saunier
d516c951e7
gl:glvideomixer: Add the Compositor in the element metadata class
...
So it is possible to pick one compositing element from the registry
2014-06-20 19:53:33 +02:00
Thibault Saunier
4ce8b409cc
gl: Port glmixer to the GstVideoAggregator baseclass
...
https://bugzilla.gnome.org/show_bug.cgi?id=731921
2014-06-20 19:53:33 +02:00
Lubosz Sarnecki
053252ccc6
opengl: add element for transforming video geometry
...
* add graphene as soft dependency for linear algebra
2014-06-18 20:41:03 +10:00
Matthew Waters
19e8dbd6ac
glfiltershader: port to GLES2
...
Provide a time variable
2014-06-17 23:21:15 +10:00
Matthew Waters
e00815a586
glvideomixer: silence incorrect number of arguments in format warning
2014-06-15 15:18:46 +10:00
Matthew Waters
d01d259024
glvideomixer: wire up the alpha pad property
2014-06-15 13:59:07 +10:00
Matthew Waters
b7f1015359
glvideomixer: support input frame scaling
2014-06-15 13:44:04 +10:00
Matthew Waters
5a6bef5c59
glvideomixer: add positioning of input streams
...
https://bugzilla.gnome.org/show_bug.cgi?id=729798
2014-06-15 12:28:45 +10:00
Matthew Waters
bb0fec7c80
glfilterapp: actually emit the client-draw signal
2014-06-12 23:17:05 +10:00
Matthew Waters
d7f8cc9a78
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
2014-06-12 12:49:42 +10:00
Matthew Waters
2ed84ac40f
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
2014-06-12 12:18:23 +10:00
Matthieu Bouron
dac4816823
glimagesink: improve state change debug message
2014-06-03 14:08:34 +10:00
Matthew Waters
5eb4934750
glimagesink: unref the old buffer outside the lock
...
it could very well deadlock
https://bugzilla.gnome.org/show_bug.cgi?id=723529
2014-05-30 11:46:00 +10:00
Matthew Waters
1cb7e22b98
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
2014-05-30 11:35:04 +10:00
Matthew Waters
da35876537
glfeature: remove GST_GL_API_GLES3
...
instead check the gl version using gst_gl_context_check_gl_version()
2014-05-30 10:29:37 +10:00
Matthew Waters
6ce3b82efe
gl/upload: add GstGLUploadMeta object
...
That simply deals with the provider aspect of GstVideoGLTextureUploadMeta.
2014-05-28 14:41:35 +10:00
Julien Isorce
6c92286c6e
glimagesink: make it actually honor show-preroll-frame property
...
https://bugzilla.gnome.org/show_bug.cgi?id=730802
2014-05-27 11:28:27 +01:00
Matthew Waters
37c08c58c5
gl/eglimage: add eglimage context feature
...
Allows us to selectively use EGLImages only when available
https://bugzilla.gnome.org/show_bug.cgi?id=728234
2014-05-20 23:37:52 +10:00
Sebastian Dröge
8070b4e043
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
2014-05-19 12:25:51 +02:00
Matthew Waters
ce561913de
gl/download: update to be similar to the glupload semantics
2014-05-14 11:38:01 +10:00
Julien Isorce
9a917fb8a9
gleffects: use gl_vtable
2014-05-08 16:08:08 +01:00
Matthew Waters
a49a371710
gl/upload: implement lazy init
...
Rename init_format to set_format
2014-05-08 15:33:43 +10:00
Matthew Waters
a27589629d
gl: advertise GstGLMemory usage in the caps as capsfeatures
...
https://bugzilla.gnome.org/show_bug.cgi?id=729658
2014-05-07 21:48:57 +10:00
Matthew Waters
6f4fd70867
gl/sink: make sure we always initialize the upload object
...
https://bugzilla.gnome.org/show_bug.cgi?id=729542
2014-05-07 09:12:23 +10:00
Matthew Waters
dfc6745143
gl: use the bufferpool's upload when available
...
Avoids duplicating GL resources
https://bugzilla.gnome.org/show_bug.cgi?id=728872
2014-05-02 15:59:28 +10:00
Matthew Waters
5681f78362
glcolorscale: fix operation with dual GL, GLES2 libgstgl
2014-05-01 14:11:00 +10:00
Julien Isorce
56cca649d4
glcolorscale: use a shader on GLESv2
...
Otherwise you only see black frames
Fix https://bugzilla.gnome.org/show_bug.cgi?id=728947
2014-04-30 17:33:14 +01:00
Julien Isorce
a20f17e29c
glimagesink: use new helper function to avoid duplicating default shader text
2014-04-30 15:35:49 +01:00
Julien Isorce
f4626ef619
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
2014-04-30 15:35:49 +01:00
Julien Isorce
1525fa8bad
gl: use gst_gl_platform_from_string because we support gl shareList on all platforms
2014-04-28 15:59:06 +01:00
Julien Isorce
3db1e3e1ed
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.
2014-04-24 16:57:01 +01:00
Julien Isorce
673b813ab3
gl: call glClearColor before glClear
2014-04-24 16:57:01 +01:00
Sebastian Dröge
e50f264411
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
2014-04-23 11:10:28 +02:00
Sebastian Dröge
ebab5b0a43
glimagesink: By default keep the display aspect ratio
...
Also the default for the pixel-aspect-ratio should be 1/1, not 0/1.
2014-04-23 10:58:12 +02:00
Sebastian Dröge
0662248347
gltestsrc: Unref context when creation failed and guard against that in fill()
2014-04-23 10:27:23 +02:00