Matthew Waters [Thu, 31 Jul 2014 04:07:29 +0000 (14:07 +1000)]
glmemory: use GstVideoInfo everywhere
Simplifies a lot of the calling code
https://bugzilla.gnome.org/show_bug.cgi?id=733717
Matthew Waters [Tue, 29 Jul 2014 03:25:22 +0000 (13:25 +1000)]
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
Matthew Waters [Tue, 29 Jul 2014 01:47:55 +0000 (11:47 +1000)]
glmemory: reenable the texture_rg support for !eagl
The GST_GL_HAVE_PLATFORM_EAGL is always defined we need to compare
against the value instead.
Matthew Waters [Sun, 27 Jul 2014 03:26:00 +0000 (13:26 +1000)]
glimagesink: silence gsignal warning
instance '0xblah' has no handler with id '13'
Vasilis Liaskovitis [Thu, 24 Jul 2014 09:25:36 +0000 (12:25 +0300)]
glwindow/11: Emit signals for mouse and key navigation events
https://bugzilla.gnome.org/show_bug.cgi?id=703486
Sebastian Dröge [Thu, 24 Jul 2014 10:23:03 +0000 (12:23 +0200)]
glwindow: Constify string parameters to the send_*_event() functions
Matthew Waters [Thu, 24 Jul 2014 03:05:00 +0000 (13:05 +1000)]
glimagesink: remove extra argument from debug call
Vasilis Liaskovitis [Sun, 6 Jul 2014 21:20:01 +0000 (00:20 +0300)]
glimagesink: Add navigation interface and callbacks for GstGLWindow mouse/key signals
https://bugzilla.gnome.org/show_bug.cgi?id=703486
Vasilis Liaskovitis [Sun, 6 Jul 2014 20:39:47 +0000 (23:39 +0300)]
GstGLWindow : Add mouse-event and key-event signals for navigation
https://bugzilla.gnome.org/show_bug.cgi?id=703486
Wang Xin-yu (王昕宇) [Wed, 23 Jul 2014 02:25:31 +0000 (10:25 +0800)]
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
Руслан Ижбулатов [Mon, 21 Jul 2014 11:07:28 +0000 (11:07 +0000)]
gl: Reorder CFLAGS to include in-source dirs first in examples
https://bugzilla.gnome.org/show_bug.cgi?id=733426
Tim-Philipp Müller [Thu, 17 Jul 2014 09:05:47 +0000 (10:05 +0100)]
examples: fix compilation of gl fxtest example on win32 with Gtk+ 3.0
https://bugzilla.gnome.org/show_bug.cgi?id=733063
Sebastian Dröge [Fri, 11 Jul 2014 11:58:55 +0000 (13:58 +0200)]
gl: Always build gstglmixer, not only when full OpenGL support is enabled
Sebastian Dröge [Fri, 11 Jul 2014 10:04:07 +0000 (12:04 +0200)]
gl: Link to all required libraries but not more
Sebastian Dröge [Fri, 11 Jul 2014 07:41:05 +0000 (09:41 +0200)]
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
Nicolas Dufresne [Wed, 9 Jul 2014 19:03:42 +0000 (15:03 -0400)]
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.
Julien Isorce [Thu, 3 Jul 2014 08:00:32 +0000 (09:00 +0100)]
glcocoa: initalize NSApp asap when using gst-launch
See https://bugzilla.gnome.org/show_bug.cgi?id=732661
Matthew Waters [Wed, 2 Jul 2014 07:38:13 +0000 (17:38 +1000)]
gl/examples: gitignore generated files
Wang Xin-yu (王昕宇) [Tue, 1 Jul 2014 00:36:53 +0000 (08:36 +0800)]
gl : fix qglwtextureshare demo
Sebastian Dröge [Mon, 30 Jun 2014 17:15:01 +0000 (19:15 +0200)]
eagl: Disable usage of R and RG textures on iOS
They don't work currently and just render zeroes, while the
fallback code path with LUM and LUM_ALPHA textures still works.
https://bugzilla.gnome.org/show_bug.cgi?id=732390
Sebastian Dröge [Sun, 29 Jun 2014 20:26:47 +0000 (22:26 +0200)]
glimagesink: Chain up to the parent class' finalize function
Sebastian Dröge [Sun, 29 Jun 2014 20:25:43 +0000 (22:25 +0200)]
glimagesink: Make sure to always unref the display
Even if we didn't create a context yet.
Sebastian Dröge [Sun, 29 Jun 2014 19:57:32 +0000 (21:57 +0200)]
glupload: Fix memory leak in unit test
Sebastian Dröge [Sun, 29 Jun 2014 19:53:21 +0000 (21:53 +0200)]
glcontext: Fix memory leaks in unit test
Matthew Waters [Thu, 26 Jun 2014 01:25:37 +0000 (11:25 +1000)]
glcolorconvert: free pixel swizzling information
Matthew Waters [Thu, 26 Jun 2014 01:15:56 +0000 (11:15 +1000)]
glmixer: remove redundant/unused lock
Use the GstObject lock instead
Matthew Waters [Thu, 26 Jun 2014 01:12:49 +0000 (11:12 +1000)]
glmixer: remove redundant creation and free of GPtrArrays
Also plugs a memory leak
Matthew Waters [Thu, 26 Jun 2014 00:54:38 +0000 (10:54 +1000)]
glmixer: plug a memory leak for the caps
gst_query_set_caps_result() takes a ref on the caps
Matthew Waters [Thu, 26 Jun 2014 00:31:02 +0000 (10:31 +1000)]
glmixer: intersect with the filtercaps if available
Matthew Waters [Thu, 26 Jun 2014 00:30:41 +0000 (10:30 +1000)]
gl: update gles2 compatability header
Matthew Waters [Wed, 25 Jun 2014 12:05:37 +0000 (22:05 +1000)]
glfilter: pass through the allocation query when in passthrough mode
Otherwise two GL elements on either side will fail to use the same
GL context.
Matthew Waters [Wed, 25 Jun 2014 11:50:40 +0000 (21:50 +1000)]
glfilter: prefer passthrough for non-sysmem caps
Matthew Waters [Wed, 25 Jun 2014 08:23:52 +0000 (18:23 +1000)]
glshader: enable glshader on GLES2
Julien Isorce [Tue, 24 Jun 2014 18:37:17 +0000 (19:37 +0100)]
glcolorscale: do passthrough on same caps
See https://bugzilla.gnome.org/show_bug.cgi?id=732178
Julien Isorce [Tue, 24 Jun 2014 18:35:01 +0000 (19:35 +0100)]
glfilter: handle NULL decide_query which means passthrough
See https://bugzilla.gnome.org/show_bug.cgi?id=732178
Julien Isorce [Tue, 24 Jun 2014 18:23:01 +0000 (19:23 +0100)]
glfilter: prepend intersection to src caps
Prefer to stay in the same memory space if possible.
Also it let a chance to do passthrough.
See https://bugzilla.gnome.org/show_bug.cgi?id=732178
Julien Isorce [Sun, 22 Jun 2014 12:14:27 +0000 (13:14 +0100)]
gl: enable glvideomixer on GLES2
Matthew Waters [Wed, 25 Jun 2014 02:00:34 +0000 (12:00 +1000)]
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
Matthew Waters [Wed, 25 Jun 2014 00:18:48 +0000 (10:18 +1000)]
glvideomixer: don't clobber already allocated shader
Matthew Waters [Tue, 24 Jun 2014 13:51:24 +0000 (23:51 +1000)]
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
Matthew Waters [Tue, 24 Jun 2014 13:33:30 +0000 (23:33 +1000)]
gl: add a scary note about initializing thread support for the winsys
We cannot do it as the winsys may crash if we initialize too late.
Example, GLX contexts with Intel drivers:
Intel requires the X Display to be the same in order to share GL
resources across GL contexts. These GL contexts are generally
accessed from different threads. Without winsys support it is
nearly impossible to guarentee that concurrent access will not
occur. This concurrent access could result in crashes or abortion
by the winsys (xcb).
https://bugzilla.gnome.org/show_bug.cgi?id=731525
Matthew Waters [Mon, 23 Jun 2014 11:43:10 +0000 (21:43 +1000)]
gluploadmeta: reenable GLMemory upload path
Sebastian Dröge [Sun, 22 Jun 2014 16:58:51 +0000 (18:58 +0200)]
gl: Need to link to new badvideo library for the video aggregator base class
Matthew Waters [Sat, 21 Jun 2014 23:44:24 +0000 (09:44 +1000)]
gl: move gles2 compat header to glprototypes
Matthew Waters [Sat, 21 Jun 2014 23:36:34 +0000 (09:36 +1000)]
glbufferpool: provide a consistent API regardless of platform
Matthew Waters [Sat, 21 Jun 2014 23:22:23 +0000 (09:22 +1000)]
gl: mark library as API unstable
Thibault Saunier [Fri, 20 Jun 2014 09:10:45 +0000 (11:10 +0200)]
gl:glvideomixer: Add the Compositor in the element metadata class
So it is possible to pick one compositing element from the registry
Thibault Saunier [Tue, 10 Jun 2014 09:26:53 +0000 (11:26 +0200)]
gl: Port glmixer to the GstVideoAggregator baseclass
https://bugzilla.gnome.org/show_bug.cgi?id=731921
Lubosz Sarnecki [Tue, 27 May 2014 10:40:09 +0000 (12:40 +0200)]
opengl: add element for transforming video geometry
* add graphene as soft dependency for linear algebra
Matthew Waters [Tue, 17 Jun 2014 13:20:04 +0000 (23:20 +1000)]
glframebuffer: don't segfault needlessly with GLES2
gst_gl_framebuffer_use_v2 was using a function that is not available
with GLES2
Matthew Waters [Mon, 16 Jun 2014 10:36:09 +0000 (20:36 +1000)]
glfiltershader: port to GLES2
Provide a time variable
Matthew Waters [Sun, 15 Jun 2014 05:18:46 +0000 (15:18 +1000)]
glvideomixer: silence incorrect number of arguments in format warning
Matthew Waters [Sun, 15 Jun 2014 05:17:07 +0000 (15:17 +1000)]
gldownload: plug a memory leak
Matthew Waters [Sun, 15 Jun 2014 03:59:07 +0000 (13:59 +1000)]
glvideomixer: wire up the alpha pad property
Matthew Waters [Sun, 15 Jun 2014 03:44:04 +0000 (13:44 +1000)]
glvideomixer: support input frame scaling
Matthew Waters [Sun, 15 Jun 2014 02:26:21 +0000 (12:26 +1000)]
glvideomixer: add positioning of input streams
https://bugzilla.gnome.org/show_bug.cgi?id=729798
Matthew Waters [Sun, 15 Jun 2014 02:24:38 +0000 (12:24 +1000)]
glmixer: allow the subclass to choose the sink pad type
Allows custom properties to be placed on the sink pads by subclasses
Matthew Waters [Thu, 12 Jun 2014 13:14:45 +0000 (23:14 +1000)]
glfilterapp: actually emit the client-draw signal
Matthew Waters [Thu, 12 Jun 2014 13:13:11 +0000 (23:13 +1000)]
gl/examples: update for TEXTURE_2D change
Matthew Waters [Thu, 12 Jun 2014 04:58:47 +0000 (14:58 +1000)]
glmixer: send the stream-start event
and the caps event after.
https://bugzilla.gnome.org/show_bug.cgi?id=730944
Matthew Waters [Thu, 12 Jun 2014 03:37:51 +0000 (13:37 +1000)]
gl/examples: add GST_PLUGINS_BASE_CFLAGS
Matthew Waters [Thu, 12 Jun 2014 03:15:10 +0000 (13:15 +1000)]
gl/examples: remove spurious include for doublecube example
Matthew Waters [Thu, 12 Jun 2014 03:06:31 +0000 (13:06 +1000)]
gl/examples: add the srcdir and builddir includes
And remove references to $(GST_PLUGINS_GL_*)
Matthew Waters [Thu, 12 Jun 2014 02:49:42 +0000 (12:49 +1000)]
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
Matthew Waters [Thu, 12 Jun 2014 02:14:35 +0000 (12:14 +1000)]
glmixer: lock the size of mix->frames to the number of pads
Fixes a segfault with decodebin ! glmixer where the request pads on
both sides were being requested after the state change to PAUSED.
Also fixes dynamically adding and removing pads while glmixer is
in a state >= PAUSED.
Matthew Waters [Thu, 12 Jun 2014 02:09:56 +0000 (12:09 +1000)]
gl/examples: Port to using signals instead of properties
Based on patch by Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
https://bugzilla.gnome.org/show_bug.cgi?id=704507
Matthew Waters [Sun, 1 Jun 2014 05:02:52 +0000 (15:02 +1000)]
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
Matthew Waters [Thu, 5 Jun 2014 08:43:30 +0000 (18:43 +1000)]
gl/wayland: create a dummy display instead of an EGLDisplay
Currently, GstGLWindowWaylandEGL holds the wayland display connection
If we create the EGLDisplay at the GstDisplay creation time, then
libEGL will internally open another connection to the wayland server.
These two display connections are unable to communicate resulting in
no window output/display and hangs inside libEGL.
Eventually we will move the wl_display from GstGLWindow to GstGLDisplay.
Matthieu Bouron [Sun, 25 May 2014 20:43:22 +0000 (21:43 +0100)]
glimagesink: improve state change debug message
Matthew Waters [Tue, 3 Jun 2014 03:59:51 +0000 (13:59 +1000)]
glupload: always release the previous buffer
Fixes the case where _perform_with_buffer() is called without
intervening calls to _release_buffer() as is the case on start up
with glimagesink.
Also release the buffer when reseting the upload.
https://bugzilla.gnome.org/show_bug.cgi?id=731107
Sebastian Dröge [Mon, 2 Jun 2014 07:23:39 +0000 (09:23 +0200)]
glcontext: Handle (unlikely) NULL return of gl->GetString (GL_VERSION) more gracefully
CID 1219858
Matthew Waters [Fri, 30 May 2014 02:23:09 +0000 (12:23 +1000)]
glmemory: remove uneeded gl api ifdefs
Matthew Waters [Fri, 30 May 2014 01:51:01 +0000 (11:51 +1000)]
glwindow_x11: allow expose events to redraw our window
otherwise we will not update the window contents on low framerate
streams until the next buffer
https://bugzilla.gnome.org/show_bug.cgi?id=723529
Matthew Waters [Fri, 30 May 2014 01:46:00 +0000 (11:46 +1000)]
glimagesink: unref the old buffer outside the lock
it could very well deadlock
https://bugzilla.gnome.org/show_bug.cgi?id=723529
Matthew Waters [Fri, 30 May 2014 01:35:04 +0000 (11:35 +1000)]
Revert "[880/906] glimagesink: remove unused stored_buffer field"
This reverts commit
af3a68db7dc473fb6903c18966b39e4c3f1464d7.
Conflicts:
ext/gl/gstglimagesink.c
https://bugzilla.gnome.org/show_bug.cgi?id=723529
Matthew Waters [Fri, 30 May 2014 00:46:25 +0000 (10:46 +1000)]
glcontext: fix up assertion
error: 'return' with no value, in function returning non-void
Matthew Waters [Fri, 30 May 2014 00:27:14 +0000 (10:27 +1000)]
glfeature: remove GST_GL_API_GLES3
instead check the gl version using gst_gl_context_check_gl_version()
Matthew Waters [Fri, 30 May 2014 00:25:18 +0000 (10:25 +1000)]
glcontext: check for GLES versions
Matthew Waters [Thu, 29 May 2014 10:35:48 +0000 (20:35 +1000)]
gl/context: add check_gl_version
Edward Hervey [Thu, 29 May 2014 15:09:26 +0000 (17:09 +0200)]
glcontext: Try GLX support before EGL support
If available, glx has got a better chance of being the Gl platform
we want to use compared to EGL
Edward Hervey [Thu, 29 May 2014 14:59:28 +0000 (16:59 +0200)]
glcontext: Try to open lib{EGL|GL|GLESv2}.so.1 before lib{EGL|GL|GLESv2}
Fixes issues with .so (without numbering) being installed for development
(such as from mesa-dev) but actual driver (with numbering) coming from
some other place (like nvidia drivers)
Sebastian Dröge [Thu, 29 May 2014 08:37:02 +0000 (10:37 +0200)]
glupload: Fix assertion after API changes
Matthew Waters [Thu, 29 May 2014 08:33:10 +0000 (18:33 +1000)]
gl/colorconvert: keep our private pointer
again, avoid to much trigger
Matthew Waters [Thu, 29 May 2014 08:32:48 +0000 (18:32 +1000)]
tests: update for glupload changes
Matthew Waters [Thu, 29 May 2014 07:29:41 +0000 (17:29 +1000)]
gl/colorconvert: use GstObject's lock instead of our own
Matthew Waters [Thu, 29 May 2014 07:12:03 +0000 (17:12 +1000)]
gl/colorconvert: remove unnecassary pointer inderection
Matthew Waters [Thu, 29 May 2014 06:45:37 +0000 (16:45 +1000)]
gl/upload: re add the upload meta to the private struct
try and avoid being to trigger happy
Matthew Waters [Thu, 29 May 2014 06:29:09 +0000 (16:29 +1000)]
gl/upload: small code cleanup and gst-indent
Matthew Waters [Thu, 29 May 2014 06:22:52 +0000 (16:22 +1000)]
gl/download: use GstObject's lock instead of out own
Matthew Waters [Thu, 29 May 2014 06:20:30 +0000 (16:20 +1000)]
gl/upload: use GstObject's lock instead of our own
Matthew Waters [Thu, 29 May 2014 06:18:08 +0000 (16:18 +1000)]
gl/filter: also remove the width/height in transform_caps
allows scaling in the filters
Matthew Waters [Thu, 29 May 2014 06:11:20 +0000 (16:11 +1000)]
gl/colorconvert: optimise the same format case
simply return the input buffer unchanged
Matthew Waters [Thu, 29 May 2014 06:07:40 +0000 (16:07 +1000)]
gl/colorconvert: fix YUY2/UYVY download for RG/LA textures
Matthew Waters [Thu, 29 May 2014 05:50:56 +0000 (15:50 +1000)]
gl/colorconvert: allocate output buffers
Allows the nop optimisation by simply reffing the input buffer.
Matthew Waters [Wed, 28 May 2014 13:21:07 +0000 (23:21 +1000)]
tests: update for recent glupload changes
GstGLUploadMeta object is now the GstVideoGLTextureUploadMeta
provider.
Matthew Waters [Wed, 28 May 2014 04:43:43 +0000 (14:43 +1000)]
gl/upload: fix incorrect type in macros
Matthew Waters [Wed, 28 May 2014 04:40:10 +0000 (14:40 +1000)]
gl/upload: add GstGLUploadMeta object
That simply deals with the provider aspect of GstVideoGLTextureUploadMeta.
Matthew Waters [Tue, 27 May 2014 14:56:05 +0000 (00:56 +1000)]
gl/win32: make send_message reentrant
I could not find a comparable win32API function so keep the running
thread pointer to compare against.
https://bugzilla.gnome.org/show_bug.cgi?id=730782
Tim-Philipp Müller [Tue, 27 May 2014 12:56:34 +0000 (13:56 +0100)]
glcolorconvert: fix compiler warning
gstglcolorconvert.c:1133:11: error: 'j' may be used uninitialized in this function
Was used uninitialized when jumping to out label
in error case.
Matthew Waters [Tue, 27 May 2014 08:20:29 +0000 (18:20 +1000)]
gl/colorconvert: operate on buffers instead of memories