Matthew Waters
0e835bc374
gl/cocoa: move to CGL and CAOpenGLLayer for rendering
...
Removes the use of NSOpenGL* variety and functions. Any Cocoa
specific functions that took/returned a NSOpenGL* object now
take/return the CGL equivalents.
2017-12-09 19:31:53 +00:00
Matthew Waters
971e9e3128
glcontext/cocoa: add debug category
2017-12-09 19:31:53 +00:00
Sebastian Dröge
39e719fb33
Constify some static arrays everywhere
2017-12-09 19:31:53 +00:00
Nicola Murino
dd928efa51
glimagesink: fix memleak
...
https://bugzilla.gnome.org/show_bug.cgi?id=743142
2017-12-09 19:31:52 +00:00
Lasse Laursen
2e3d26192f
glapi: fix compilation with latest MSVC
...
https://bugzilla.gnome.org/show_bug.cgi?id=743041
2017-12-09 19:31:52 +00:00
Matthew Waters
e3d3049641
glmemory: use the correct size for the pbo
...
It was missing the GstVideoAlignment padding which could cause GL
errors related to overrunning the size of the pbo.
2017-12-09 19:31:52 +00:00
Matthew Waters
02fdc64844
glvideomixer: don't upload if alpha <= 0
...
Implemented using a upload_buffer vfunc within GstGLMixer allowing
NULL uploaded buffers.
2017-12-09 19:31:52 +00:00
Matthew Waters
aedfadd972
glmemory: remove spurious gst_video_info_align
...
That will be taken care of by the calling code (typically a bufferpool).
The GstVideoAlignment is purely informational to compute plane data sizes.
2017-12-09 19:31:52 +00:00
Matthew Waters
1dfeae2c42
gl: split glcolorconvert usage from glupload
...
the separation allows the transfer operation to occur in a separate
thread/time which may increase performance in specific circumstances.
2017-12-09 19:31:52 +00:00
Matthew Waters
19fbe2afbc
glmemory: offset the data pointer for upload for GstVideoAlignment
...
otherwise we attempt to read from the padding data
2017-12-09 19:31:52 +00:00
Matthew Waters
a2af67aef0
glmemory: use pbo's for upload
2017-12-09 19:31:52 +00:00
Matthew Waters
4288866e55
glupload: relax the GLMemory uploader check for input caps features
...
As there may be a sysmem caps features with GLMemory filled buffers.
e.g.
videotestsrc ! glimagesink
2017-12-09 19:31:52 +00:00
Nicola Murino
ef987be337
glcolorconvert: fix memleak
...
https://bugzilla.gnome.org/show_bug.cgi?id=741943
2017-12-09 19:31:52 +00:00
Nicola Murino
209fbd950f
glupload: fix some memory leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=741943
2017-12-09 19:31:52 +00:00
Matthew Waters
bef3f020a6
glcontext: allow wrapped contexts to be utilised like non-wrapped contexts
...
Fill in the missing pieces like get_proc_address, the gl function vtable
2017-12-09 19:31:52 +00:00
Sebastian Dröge
50a11e4a77
gl/cocoa: Disable hack for NSApp iteration with a special #define
...
The hack causes deadlocks and other interesting problems and it really
can only be fixed properly inside GLib. We will include a patch for
GLib in our builds for now that handles this, and hopefully at some
point GLib will also merge a proper solution.
A proper solution would first require to refactor the polling in
GMainContext to only provide a single fd, e.g. via epoll/kqueue
or a thread like the one added by our patch. Then this single
fd could be retrieved from the GMainContext and directly integrated
into a NSRunLoop.
https://bugzilla.gnome.org/show_bug.cgi?id=741450
https://bugzilla.gnome.org/show_bug.cgi?id=704374
2017-12-09 19:31:52 +00:00
Sebastian Dröge
c3f86ece48
gl/cocoa: Don't init and clear static GMutex / GCond
...
We would potentially use it from the main loop later in
gst_gl_window_cocoa_init_nsapp() if it timed out before.
2017-12-09 19:31:52 +00:00
Luis de Bethencourt
9d9d07168f
glfilter: remove logically dead code
...
Soon after setting two variables to 1, the code checks if their values are
different from each other. This would never be true. Removing this.
CID 1226443
2017-12-09 19:31:52 +00:00
Tim-Philipp Müller
3c3ca1c842
glmixer, glvideomixer: update for GstAggregatorPadForeachFunc change
2017-12-09 19:31:52 +00:00
Tim-Philipp Müller
36b4984be2
glmixer: update for aggregator start/stop vfunc change
2017-12-09 19:31:52 +00:00
Nirbheek Chauhan
c1b1f546d5
glvideomixer: Point to compositor for the pad properties documentation
2017-12-09 19:31:52 +00:00
Nicolas Dufresne
7c7af39c4a
gltest: Port to new API
...
https://bugzilla.gnome.org/show_bug.cgi?id=740900
2017-12-09 19:31:52 +00:00
Nicolas Dufresne
eeda7a29ce
glbufferpool: Always recalculate buffer size
...
Actually we should always recalculate buffer size since our buffer size
even when not-padded is smaller for many sub-sampled formats. This is
because we don't add padding between the planes.
https://bugzilla.gnome.org/show_bug.cgi?id=740900
2017-12-09 19:31:52 +00:00
Nicolas Dufresne
04cd97ae59
glmemory: No need for padding
...
A memory object cannot be put on stack, so no need for padding.
2017-12-09 19:31:52 +00:00
Nicolas Dufresne
a1e02726ee
gl: Add support for GstVideoAlignment
...
This allow saving a copy with libav video decoders or decoders with
similar padding requirement.
https://bugzilla.gnome.org/show_bug.cgi?id=740900
2017-12-09 19:31:52 +00:00
Nicolas Dufresne
45ac36ca26
glmemory: Handle upload/download flags from map
...
Problem was that if buffer was mapped READWRITE (state of buffers from
libav right now), mapping it READ/GL will not upload. This is because the
flag is only set when the buffer is unmapped. We can fix this by setting
the flags in map. This result in already mapped buffer that get mapped
to be read in GL will be uploaded. The problem is that if the write
mapper makes modification afterward, the modification will never get
uploaded.
https://bugzilla.gnome.org/show_bug.cgi?id=740900
2017-12-09 19:31:52 +00:00
Nicolas Dufresne
197e8de6e6
glmemory: Handle custom stride with OPENGL3
...
https://bugzilla.gnome.org/show_bug.cgi?id=740900
2017-12-09 19:31:52 +00:00
Wang Xin-yu (王昕宇)
fc09b8b93c
glfilter: fix position/texcoord attrib index usage
...
https://bugzilla.gnome.org/show_bug.cgi?id=741231
2017-12-09 19:31:52 +00:00
Matthew Waters
f8611d79d7
glfiltercube: use a shader everywhere
2017-12-09 19:31:52 +00:00
Matthew Waters
ba3a3cd783
gl: fixup vao and vbo usage for legacy GL
2017-12-09 19:31:52 +00:00
Matthew Waters
b428dec737
gleffects: don't abort when setting the effect to 0,1,2
2017-12-09 19:31:52 +00:00
Matthew Waters
b99d53e0ff
gl/examples: fixup sdl example for gluPerspective removal
2017-12-09 19:31:51 +00:00
Ramprakash Jelari
67b47921ca
gl: Rename gst-launch-0.10 to gst-launch-1.0 in docs
2017-12-09 19:31:51 +00:00
Philippe Normand
7c6d9b4c59
glsyncmeta: add G_END_DECLS
2017-12-09 19:31:51 +00:00
Julien Isorce
690b20b9f4
glcontext: try cgl before glx
...
It was already done by commit
f506e80686
but it has been broken by commit
45ec777cea
2017-12-09 19:31:51 +00:00
Thijs Vermeir
035f6f975a
gl/cocoa: Fix example on Mac OS X 10.10
...
Using NSApp directly seems to confuse something, as the compiler
was expecting an id<NSFileManagerDelegate>. Switched to using
[NSApplication sharedApplication], and specified the delegate
protocol on the window class as well.
Similar to https://bugzilla.gnome.org/show_bug.cgi?id=738740
2017-12-09 19:31:51 +00:00
Matthew Waters
bbac8bf8d0
glcontext: require GL_ARB_ES2_compatibility for opengl3
...
until we generate gl3 compliant shaders
https://bugzilla.gnome.org/show_bug.cgi?id=740012
2017-12-09 19:31:51 +00:00
Matthew Waters
dee5943c0e
glimagesink: properly handle the !opengl3 case
...
https://bugzilla.gnome.org/show_bug.cgi?id=740012
2017-12-09 19:31:51 +00:00
Tim-Philipp Müller
fb6a514562
glfilterapp: fix unused variable compiler warning
...
When GST_GL_HAVE_OPENGL is 0 or unset.
2017-12-09 19:31:51 +00:00
Matthew Waters
869106454a
glfilterapp is now available on gles2 as well so build it
2017-12-09 19:31:51 +00:00
Matthew Waters
0af6dcfa23
gl: fixup compat definition for GLuint64 for OS X
2017-12-09 19:31:51 +00:00
Matthew Waters
462a202427
gl: add compat definition for GLuint64 for android
...
../../../../gst-libs/gst/gl/glprototypes/sync.h:41:23: error: unknown type name 'GLuint64'
GLuint64 timeout))
2017-12-09 19:31:51 +00:00
Matthew Waters
81a470905b
glsync: fix build with desktop gl
2017-12-09 19:31:51 +00:00
Matthew Waters
83b6572928
gl: fix typo in #if
...
GST_GL_API_HAVE_OPENGL doesn't exist
2017-12-09 19:31:51 +00:00
Matthew Waters
3be1edc634
gl: fix various build errors without desktop gl
2017-12-09 19:31:51 +00:00
Matthew Waters
a2a8059daf
gldisplay: fix build error
...
gstgldisplay.c:234:541: error: 'return' with no value, in function returning non-void [-Werror]
g_return_if_fail (GST_IS_GL_DISPLAY (display));
2017-12-09 19:31:51 +00:00
Matthew Waters
4bd62ebb03
gldisplay: implement runtime GL api filtering
...
Needed so that the pipeline/application can limit the choice of GL api
to what it supports
2017-12-09 19:31:51 +00:00
Matthew Waters
892d056a44
gl: remove the use of glu
2017-12-09 19:31:51 +00:00
Matthew Waters
6bb113f685
gl: add a sync meta for synchronizing across GL contexts
...
A context can create a GLsync object that can be waited on in order
to ensure that GL resources created in one context are able to be
used in another shared context without any chance of reading invalid
data.
This meta would be placed on buffers that are known to cross from
one context to another. The receiving element would then wait
on the sync object to ensure that the data to be used is complete.
2017-12-09 19:31:51 +00:00
Matthew Waters
f4dbfec17b
glprototypes: add sync function definitions
2017-12-09 19:31:51 +00:00