Commit graph

1606 commits

Author SHA1 Message Date
fvanzile
178bbc253d glcontext: keep a ref to the active thread
With the macOS/iOS implementations, the active thread can change
multiple times over the life of a pipeline which would expose a race in
the thread tracking.

Fix by taking a ref on the active thread while the context is active.

https://bugzilla.gnome.org/show_bug.cgi?id=779202
2017-12-09 19:32:28 +00:00
Josep Torra
ffb9559849 cocoa: fix a recently introduced typo
Fixes gstgldisplay_cocoa.m:175:26: error: use of undeclared identifier 'singletone'.
2017-12-09 19:32:28 +00:00
Josep Torra
88a4d06735 cocoa: fix macOS 10.12 deprecation warnings
Add #defines to allow older versions of macOS to use the new constant names.
2017-12-09 19:32:28 +00:00
Haihua Hu
479b95205f glformat: Add missing GST_GL_RGB565 in some switch statement
https://bugzilla.gnome.org/show_bug.cgi?id=782736
2017-12-09 19:32:28 +00:00
Sebastian Dröge
f32e8bc4b2 cocoa: Install gstgldisplay_cocoa.h
It's needed by e.g. qmlglsink.
2017-12-09 19:32:28 +00:00
Sebastian Dröge
a9a05c01a9 gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent
https://bugzilla.gnome.org/show_bug.cgi?id=743062
2017-12-09 19:32:28 +00:00
Nicolas Dufresne
e004cfd6fe Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-12-09 19:32:27 +00:00
Sebastian Dröge
6b1fa09077 glshader: Make reference counting of attach() consistent
https://bugzilla.gnome.org/show_bug.cgi?id=747990
https://bugzilla.gnome.org/show_bug.cgi?id=702960
2017-12-09 19:32:27 +00:00
Matthew Waters
d47a515315 build/gl/meson: check for GLES3/gl3ext.h existence
791e7522eb for meson

https://bugzilla.gnome.org/show_bug.cgi?id=781885
2017-12-09 19:32:27 +00:00
Jens Georg
73af514e1a build: Check for GLES3/gl3ext.h existence
Some OpenGL drivers do not ship this but use GLES2/gl2ext.h instead.
This is also in line with Khronos's recommendations

https://bugzilla.gnome.org/show_bug.cgi?id=781885
2017-12-09 19:32:27 +00:00
Sebastian Dröge
aef461d4a0 glmemory: Only use glDrawBuffer if available
Otherwise fall back to glDrawBuffers. Also check if glReadBuffer exists
before using it.

glDrawBuffer does not exist for GLES, only glDrawBuffers does.

https://bugzilla.gnome.org/show_bug.cgi?id=782376
2017-12-09 19:32:27 +00:00
Haihua Hu
e2ff120d97 glupload: passthrough composition caps features in directviv upload
https://bugzilla.gnome.org/show_bug.cgi?id=782046
2017-12-09 19:32:27 +00:00
Thibault Saunier
95ac4d5175 docs: Port all docstring to gtk-doc markdown 2017-12-09 19:32:27 +00:00
Thibault Saunier
b11df33ee2 docs: Stop linking to inexistant symbols 2017-12-09 19:32:27 +00:00
Claudio Saavedra
7566c43130 meson: add missing gstglrenderbuffer.h header
https://bugzilla.gnome.org/show_bug.cgi?id=781179
2017-12-09 19:32:27 +00:00
Scott D Phillips
995d110fe6 meson: gl: set default value of 0 for glconf vars
meson's configure_file emits only a comment like /* #undef ... */
for values which are unset in the configuration_data. For
gstglconfig.h, this differs from the autotools build where the
preprocessor definitions are always either 0 or 1. So loop over a
list of variables to set to zero as default.

Also sync up the gstglconfig.h.meson file with the additional
macros defined by the autotools build.

https://bugzilla.gnome.org/show_bug.cgi?id=781043
2017-12-09 19:32:27 +00:00
Vincent Penquerc'h
326b8763de glcontext: fix display leak
https://bugzilla.gnome.org/show_bug.cgi?id=781019
2017-12-09 19:32:27 +00:00
Vincent Penquerc'h
697cd40ee4 gldisplay: fix list leak
Windows aren't always removed in time, and it turns out to be
very, very hard to remove a window in a way that's not racy and
not deadlocky. Since the window itself doesn't leak, freeing
the list on object destruction is enough.

https://bugzilla.gnome.org/show_bug.cgi?id=781018
2017-12-09 19:32:27 +00:00
Jan Schmidt
920d295c97 gl: Remove duplicate typedef of GstGLFramebufferClass
The GstGLFramebufferClass struct is typedeffed in
gstgl_fwd.h, and having a duplicate elsewhere is
breaking the cerbero build on my OSX machine,
even though it seems to be working in CI.
2017-12-09 19:32:27 +00:00
Josep Torra
2cdce1d75f glwindow/cocoa: fix warnings reported by XCode 8.1.0
gstglwindow_cocoa.m:345:16: error: unused variable 'window' [-Werror,-Wunused-variable]
  GstGLWindow *window = GST_GL_WINDOW (window_cocoa);
               ^
gstglwindow_cocoa.m:445:11: error: unused variable 'external_view' [-Werror,-Wunused-variable]
  NSView *external_view = (__bridge NSView *)priv->external_view;
          ^
2017-12-09 19:32:27 +00:00
Nicolas Dufresne
ae30818f7b gldisplay: Fix assert caused by missing debug category 2017-12-09 19:32:27 +00:00
Scott D Phillips
8d3d6d3595 gl/format: correct return enums in gst_gl_format_from_video_info
In commit

> 956c4d0 gl/format: use our own GL format enum's instead of gstvideo's

the name and return type of gst_gl_format_from_video_info changed,
but some returns of the old type were missed. Here they are
updated to the correct type.

https://bugzilla.gnome.org/show_bug.cgi?id=780064
2017-12-09 19:32:27 +00:00
George Kiagiadakis
6b6a8a46b5 glupload: adjust memory offset calculation for dmabuf buffers
The data in the dmabuf fd may not start from byte 0, therefore
we need to inform EGL about this additional offset.

https://bugzilla.gnome.org/show_bug.cgi?id=779790
2017-12-09 19:32:27 +00:00
Matthew Waters
61ee2685c0 gl: GL_ARRAY_BUFFER is not a part of VAO state
As a result we need to bind it on every draw in order to have the
correct state in the GL state machine.
2017-12-09 19:32:27 +00:00
Matthew Waters
66468b4245 gl/format: use our own GL format enum's instead of gstvideo's
They can describe in more detail (such as component sizes) the requested format.
2017-12-09 19:32:27 +00:00
Vincent Penquerc'h
b71e104d00 glupload: fix GValue leak
https://bugzilla.gnome.org/show_bug.cgi?id=779869
2017-12-09 19:32:27 +00:00
Sebastian Dröge
e976c200b0 gl/eagl: It's -fobjc-arc not -fobj-arc 2017-12-09 19:32:27 +00:00
Nick Kallen
7b42f26b80 applemedia/gl: Update code to use ARC
All code interacting with Objective-C objects should now use Automated
Reference Counting rather than manual memory management or Garbage
Collection. Because ARC prohibits C-structs from containing
references to Objective-C objects, all such fields are now typed
'gpointer'. Setting and gettings Objective-C fields on such a
struct now uses explicit __bridge_* calls to tell ARC about
object lifetimes.

https://bugzilla.gnome.org/show_bug.cgi?id=777847
2017-12-09 19:32:27 +00:00
Arun Raghavan
ee49afed97 gl: Missed one backwards compat define in GST_GL_TYPE_CONTEXT
Continued from 296b4251e3
2017-12-09 19:32:27 +00:00
Sebastian Dröge
a4a8ef5507 gl: Fixup for last commit 2017-12-09 19:32:27 +00:00
Sebastian Dröge
de16dc2555 gl: Fix backwards compat GST_GL_TYPE_* functions/macros
These have to be macros instead of inline function as they must behave
more or less like an integer literal, i.e. include the function call.
2017-12-09 19:32:26 +00:00
Sebastian Dröge
dde95e8270 gl/viv-fb: Don't use deprecated symbols and make macros more consistent
https://bugzilla.gnome.org/show_bug.cgi?id=778825
2017-12-09 19:32:26 +00:00
Sebastian Dröge
f5ea12a471 glcolorconvert: Check return value of gst_gl_context_check_framebuffer_status()
CID 1401588
2017-12-09 19:32:26 +00:00
Sebastian Dröge
6a32795949 gl: Add viv-fb to DIST_SUBDIRS to fix "make distcheck" 2017-12-09 19:32:26 +00:00
Sebastian Dröge
108eef7ac7 glutils: Mark private functions as G_GNUC_INTERNAL 2017-12-09 19:32:26 +00:00
Sebastian Dröge
1c1094e4e7 glupload: Add support for Vivante DirectTexture uploads
Together with the upcoming gstreamer-imx patch, this allows zerocopy
between imxvpudec and other elements and glimagesink.

This is losely based on a patch by Haihua Hu <b55597@freescale.com>
from https://github.com/Freescale/meta-freescale/blob/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/

https://bugzilla.gnome.org/show_bug.cgi?id=779067
2017-12-09 19:32:26 +00:00
Sebastian Dröge
ed7c9f70d9 gl: Add support for Vivante EGL FB windowing system
This is very similar to how dispmanx on the Raspberry Pi works.

Based on a patch by Haihua Hu <b55597@freescale.com> from
https://github.com/Freescale/meta-freescale/tree/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad

https://bugzilla.gnome.org/show_bug.cgi?id=778825
2017-12-09 19:32:26 +00:00
Sebastian Dröge
a6cbe2a2cb glmemory: Use glBlitFramebuffer() instead of glCopyTexImage2D() if available
glBlitFramebuffer() is new GLES3/GL3 API. They are probably often
implemented in terms of each other, and glBlitFramebuffer() can
potentially be implemented more flexible. Let's use it if available.

Also it actually works on imx6 with DirectVIV textures.

Based on a patch by Haihua Hu <jared.hu@nxp.com> from
https://github.com/Freescale/meta-freescale/blob/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/

https://bugzilla.gnome.org/show_bug.cgi?id=779070
2017-12-09 19:32:26 +00:00
Sebastian Dröge
48f79e9f60 configure: Remove unused Mali EGL/fbdev_window support
This existed a long time ago but there's no actual code for this
anymore.
2017-12-09 19:32:26 +00:00
Thibault Saunier
cdec2d0181 meson: Build GIR files 2017-12-09 19:32:26 +00:00
Matthew Waters
ad20a945de gl: update sys dependants for function removals
4315a4b54d forgot to change the androidmedia/videotoolbox/caopengllayer
sources as required.
2017-12-09 19:32:26 +00:00
Juan Pablo Ugarte
c469827ddb glslstage: define GL constants if needed instead of using #ifdef
https://bugzilla.gnome.org/show_bug.cgi?id=777144
2017-12-09 19:32:26 +00:00
Matthew Waters
69da104456 glutils: document functions 2017-12-09 19:32:26 +00:00
Matthew Waters
de6c39189f glutils: privatise matrix multiplication/videoaffinetransformation retrieval 2017-12-09 19:32:26 +00:00
Matthew Waters
ceda9dc1aa gl/utils: also take care of the local GL context in query functions
Simplifies a deduplicates a lot of code in elements retrieving/setting
the local OpenGL context.
2017-12-09 19:32:26 +00:00
Matthew Waters
d00a13f01d glutils: remove trivial helper function
gst_gl_caps_replace_all_caps_features() is only used in two places and can
be trivially reproduced.
2017-12-09 19:32:26 +00:00
Matthew Waters
0348225001 gl/docs: add symbols from -unused.txt 2017-12-09 19:32:26 +00:00
Matthew Waters
0a0a45fefd gl/docs: some type fixes of type names 2017-12-09 19:32:26 +00:00
Matthew Waters
cbc7efdcb6 glwindow: use the same parameter names between vfuncs and functions of the same name
Silences GI warnings about symbol's not being used from source code
comment block
2017-12-09 19:32:26 +00:00
Matthew Waters
e4c7f28bf7 glbasememory: type fix for GstGLBaseMemoryAllocatorAllocFunction 2017-12-09 19:32:26 +00:00