Commit graph

2138 commits

Author SHA1 Message Date
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
cb0dba6188 gltestsrc: Fix potential NULL pointer dereference if we fail without GError
Which can happen here if we just propagate an error that happened
elsewhere, e.g. FBO failed.

CID 1364604
2017-12-09 19:32:26 +00:00
Sebastian Dröge
0e2f93589d glvideomixer/compositor: Correctly error out if calculating DAR fails
CID 1320700
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
dc28155e21 gl: Rename gst_gl_get_affine_transformation_meta_as_ndc_ext() to prevent symbol conflict
The same symbol also exists in libgstgl, although marked as private and
internal. This has no effect when doing static linking and there's a
symbol conflict.
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
Juan Pablo Ugarte
5ffa05081f GstGLSinkBin: fixed sink property leak
No need to keep an extra reference to sink since an indirect one is added by gst_bin_add()

https://bugzilla.gnome.org/show_bug.cgi?id=778452
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
6211661fd4 glmixer: ensure caps are writable after intersection
gst_caps_intersect () may return an increased reference of one of the
input caps.

Fixes critical in the simple-launch-lines test:

Unexpected critical/warning: gst_caps_set_features: assertion 'IS_WRITABLE (caps)' failed
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
Matthew Waters
738cd580c9 gldisplay: add missing transfer annotations 2017-12-09 19:32:26 +00:00
Matthew Waters
87a4eafaf9 gl: add skip annotations to non-GI possible struct constructors 2017-12-09 19:32:26 +00:00
Matthew Waters
f7d300b28e glbasememory: remove unused and #if 0'ed function definitions 2017-12-09 19:32:26 +00:00
Matthew Waters
31b38a5f54 gl: add necessary get_type() functions for allocation params structures
All using the existing GstGLAllocationParams infrastructure
2017-12-09 19:32:26 +00:00
Matthew Waters
53cc73b5f4 gldisplay: some annotation updates/typo fixes 2017-12-09 19:32:25 +00:00
Matthew Waters
2fa355c761 gl: remove reference to non-existant header
../../../../gst-libs/gst/gl/gl.h:57:45: fatal error: gst/gl/gstglcontrolbindingproxy.h: No such file or directory
 #include <gst/gl/gstglcontrolbindingproxy.h>
                                             ^
2017-12-09 19:32:25 +00:00
Matthew Waters
cfc16f6dae gl: remove custom control binding proxy
Use the existing GstProxyControlBinding instead.
2017-12-09 19:32:25 +00:00
Matthew Waters
068a7656f8 gl/pkg-config: add the configured platform/api/winsys
Allows users to query this from pkg-config instead of requiring them to
compile mini programs checking defines in gstglconfig.h
2017-12-09 19:32:25 +00:00
Matthew Waters
a3e593d2a9 gl: remove unneeded gst_gl_buffer_alloc from header file
There's no implementation anymore!
2017-12-09 19:32:25 +00:00
Matthew Waters
e80337e374 gl/egl: remove use of texture orientation 2017-12-09 19:32:25 +00:00
Matthew Waters
db34024172 gl/pkg-config: don't advertise all our dependent libraries as deps
If an application/library explicitly needs a library, it needs to link
against it itself.
2017-12-09 19:32:25 +00:00
Matthew Waters
cec46fc75e glcontext/egl: don't overwrite set GError
Doing so is an error and will cause a glib warning to be printed.

https://bugzilla.gnome.org/show_bug.cgi?id=776722
2017-12-09 19:32:25 +00:00
Guillaume Desmottes
329b4691f8 meson: generate pkg-config -uninstalled pc files
Generating those files is useful for users building the GStreamer stack
using meson and having to link it to another project which is still
using the autotools.

While doing so, fix some -uninstalled pc files which were using a
suspicious 'pcfiledir' which was never replaced or defined.

https://bugzilla.gnome.org/show_bug.cgi?id=776810
2017-12-09 19:32:25 +00:00
Matthew Waters
054b26411a gl/format: use the unsized format for RGB on GLES2
In GLES2 GL_RGB8 doesn't exist so we cannot use it, use GL_RGB
instead.

https://bugzilla.gnome.org/show_bug.cgi?id=776141
2017-12-09 19:32:25 +00:00
Matthew Waters
fe3298993b gl/window: remove unused priv variable
https://ci.gstreamer.net/job/GStreamer-master/7989/console
2017-12-09 19:32:25 +00:00
Matthew Waters
f532e699df gl/window: remove use of main_context_push/pop_thread_default()
No-one's using/depending on it (it would have criticalled and not worked)
and it's causing more problems than it's solving.  Store the GMainContext
in the public struct instead for subclasses to optionally use instead of
relying on the push/pop state to be correct.

https://bugzilla.gnome.org/show_bug.cgi?id=775970
2017-12-09 19:32:25 +00:00
Haihua Hu
09952ddc4b gl/effects: use non-PBO GLMemory for internal textures
middle textures in gleffects do not need to use GstGLMemoryPBO as they
aren't transfering data to/from the GPU. This will cost too much DMA
memory and cause performance issue. Change the allocator to use non-PBO
GstGLMemory.

https://bugzilla.gnome.org/show_bug.cgi?id=776072
2017-12-09 19:32:25 +00:00
Sebastian Dröge
faf1e388f7 glvideomixer: Reject multiview video
glvideomixer does not support it currently and it needs special support
for handling this correctly, and is rather non-trivial to implement for
all formats.
2017-12-09 19:32:25 +00:00
Sebastian Dröge
aeb5d4edaf gst: Don't declare variables inside the for loop header
This is a C99 feature.
2017-12-09 19:32:25 +00:00
Julien Isorce
7da132c327 gstglupload: relax EGL context check
Check for GST_GL_PLATFORM_EGL enum instead of type GstGLContextEGL.

https://bugzilla.gnome.org/show_bug.cgi?id=774518
2017-12-09 19:32:25 +00:00
Julien Isorce
22e78529dd gstglcontext: is_shared should return FALSE if no group
If a sub class of GstGLContext does not create a group
then it currently crashes:

0 g_atomic_int_get (&share->refcount)
1 _context_share_group_is_shared (context->priv->sharegroup)
2 gst_gl_context_is_shared
3 _default_set_sync_gl

https://bugzilla.gnome.org/show_bug.cgi?id=774518
2017-12-09 19:32:25 +00:00