Commit graph

63 commits

Author SHA1 Message Date
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
Sebastian Dröge 89d2bb75d6 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.
2014-04-23 10:24:55 +02:00
Sebastian Dröge 38ebfb2da8 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
2014-04-23 10:00:48 +02:00
Vincent Penquerc'h 467d9267a2 gl: a couple spelling/grammar fixes 2014-04-21 13:23:46 +01:00
Vincent Penquerc'h 7a3e141204 gl: guard against using a NULL window pointer
Coverity 1195145
2014-04-21 13:23:46 +01:00
Matthew Waters 364b01aca9 glimagesink: remove unused texture 2014-04-13 22:16:45 +10:00
Matthew Waters d4a72b61c0 glimagesink: move upload into _prepare() 2014-04-13 22:14:52 +10:00
Sebastian Dröge e9dbcb69cd gl: Set glimagesink rank to SECONDARY
This is a full-featured video sink now and especially should be
used instead of osxvideosink on OSX if available.
2014-04-12 22:25:14 +02:00
Sebastian Dröge 0bd53c9ccb glimagesink: First handle GL window setup, then create the context and its thread 2014-04-12 17:01:09 +02:00
Matthew Waters 15d0c04933 gl/mem: allocate the memory per plane
This patch provides the basic infrastructure required for this.
Upload and Download has been ported to this.

Has the nice effect of allowing GstGLMemory to be our
refcounted texture object for any texture type (not just RGBA).

Should not lose any features/video formats.
2014-04-11 10:37:06 +10:00
Matthew Waters 95abfda139 gl: add colorconvert object that converts between color spaces/formats
Currently used by both upload and download objects separately.
2014-04-11 10:37:05 +10:00
Vincent Penquerc'h 9eab659d1d gl: pass large structure by const pointer, not value
Avoids large pointless memcpy.

Coverity 206236, 206237
2014-04-09 10:31:19 +01:00
Vincent Penquerc'h 4b5068f5dd gl: test for frame NULLness before dereferencing it
Coverity 1195172, 1195171
2014-04-08 16:25:51 +01:00
Sebastian Dröge 82b7c915bb glimagesink: Create GL context and set up window from the streaming thread
gst_gl_context_create() might need to dispatch some operations to the
application's main thread, and calling this in the change_state function
can cause deadlocks.
2014-04-07 11:21:07 +02:00
Matthew Waters e01e2cce9f gl: pass video info's by reference 2014-04-02 23:05:47 +11:00