Commit graph

1082 commits

Author SHA1 Message Date
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
Matthew Waters f016bc4679 glfilterapp: port to gles2 and gl3 2017-12-09 19:31:51 +00:00
Matthew Waters eff381b93d gloverlay: support gl3 2017-12-09 19:31:51 +00:00
Matthew Waters 65c89e07fb glvideomixer: add support for gl3 2017-12-09 19:31:51 +00:00
Matthew Waters cc2eb41497 glfiltercube: add a gl3 code path 2017-12-09 19:31:51 +00:00
Matthew Waters 9dfd234fec glfiltershader: support gl3 2017-12-09 19:31:51 +00:00
Matthew Waters f99e9d01a9 gltransformation: support gl3 2017-12-09 19:31:51 +00:00
Matthew Waters a82db7eb9e gleffects: support gl3 whereever gles2 is supported 2017-12-09 19:31:51 +00:00
Matthew Waters 7ffe6fa93e glcolorscale: support gl3 2017-12-09 19:31:51 +00:00
Matthew Waters 8e98591153 glfilter: add a gl3 code path using vao's and vbo's 2017-12-09 19:31:51 +00:00
Matthew Waters 414a319f03 glframebuffer: add support for gl3 2017-12-09 19:31:50 +00:00
Matthew Waters b6fc74c9b8 glcolorconvert: add support for gl3 2017-12-09 19:31:50 +00:00
Matthew Waters 96e5304517 glimagesink: use vbo's and vao's for gl3 2017-12-09 19:31:50 +00:00
Matthew Waters dcd5fce8fb glshader add support for gl3 2017-12-09 19:31:50 +00:00
Matthew Waters 86c084f1af glx: ask for a GL3 core context 2017-12-09 19:31:50 +00:00
Thibault Saunier d3fef37d61 videoaggregator: Expose vmethods to set converters and prepare/clean frames
This gives more flexibility to the subclasses and permits to remove the
GstVideoAggregatorClass->disable_frame_conversion ugly API.

WARNING: This breaks the API as it removes the disable_frame_conversion
field

API:
  + GstVideoAggregatorClass->find_best_format
  + GstVideoAggregatorPadClass->set_format
  + GstVideoAggregatorPadClass->prepare_frame
  + GstVideoAggregatorPadClass->clean_frame

  - GstVideoAggregatorClass->disable_frame_conversion

https://bugzilla.gnome.org/show_bug.cgi?id=740768
2017-12-09 19:31:50 +00:00