platform/upstream/gstreamer.git
6 years agosdlshare: Destroy GL backend buffer before the GL Context
Nicolas Dufresne [Fri, 24 Nov 2017 22:06:22 +0000 (17:06 -0500)]
sdlshare: Destroy GL backend buffer before the GL Context

This was otherwise leading to a deadlock in the GL library.

6 years agosdlshare2: Fix race conditions
Nicolas Dufresne [Fri, 24 Nov 2017 21:58:21 +0000 (16:58 -0500)]
sdlshare2: Fix race conditions

The client-draw callback is running on the GL Thread, which will
be required to map the buffer. Map early, and pass the mapped
frame instead. On top of that, make sure to signal any pending
draw before trying to push EOS, as some pad locks might be taken.
This is the cost of using the same thread to control GStreamer and
to render GL.

6 years agomeson: Build gl/sdl examples
Nicolas Dufresne [Fri, 24 Nov 2017 21:58:01 +0000 (16:58 -0500)]
meson: Build gl/sdl examples

6 years agoviv-fb: Don't destroy the native FB display
Jan Schmidt [Thu, 23 Nov 2017 12:01:52 +0000 (23:01 +1100)]
viv-fb: Don't destroy the native FB display

It causes crashes in applications because the result of
fbGetDisplay() might be in use elsewhere in the application
and Vivante doesn't seem to do any refcounting

6 years agoRevert "gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb...
Jan Schmidt [Thu, 23 Nov 2017 11:58:40 +0000 (22:58 +1100)]
Revert "gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb subclass"

This reverts commit 47fd4d391e775c11f529705bb0f457a9d25ba5e7.

This patch is incorrect. It doesn't actually compile, and causes a crash
because the viv-fb window implementation needs a native EGL handle
to pass to fbCreateWindow, but the GstGLDisplayEGL handleis actually
an EGLDisplay now (and gets cast to the wrong type)

6 years ago3dvideo example: Correct video overlay for HiDPI
Jan Schmidt [Thu, 23 Nov 2017 14:37:48 +0000 (01:37 +1100)]
3dvideo example: Correct video overlay for HiDPI

Use the GTK scaling factor to scale the video allocation
so video displays correctly on hi-dpi screens

6 years agomeson: remove outdated comment in build file
Tim-Philipp Müller [Thu, 23 Nov 2017 10:15:49 +0000 (11:15 +0100)]
meson: remove outdated comment in build file

6 years agoaggregator: Remove klass->sinkpads_type
Mathieu Duponchelle [Mon, 6 Nov 2017 20:07:51 +0000 (21:07 +0100)]
aggregator: Remove klass->sinkpads_type

This posed problems for the python bindings (and possibly others).

Instead, subclasses now use add_pad_template_with_gtype.

https://bugzilla.gnome.org/show_bug.cgi?id=789986

6 years agoall: Fix left-shift undefined behaviour
Edward Hervey [Mon, 20 Nov 2017 16:06:07 +0000 (17:06 +0100)]
all: Fix left-shift undefined behaviour

Cast to the target type before shifting (or use macro if available)

6 years agogl/tests: add some simple shader testing
Matthew Waters [Tue, 7 Nov 2017 04:21:43 +0000 (15:21 +1100)]
gl/tests: add some simple shader testing

Making sure that the default shaders compile and are usable

6 years agogltestsrc: guard stop in gl thread
Matthew Waters [Tue, 7 Nov 2017 01:39:58 +0000 (12:39 +1100)]
gltestsrc: guard stop in gl thread

So we don't result in a critical when we've never created the GL context:

gst_gl_context_thread_add: assertion 'GST_IS_GL_CONTEXT (context)' failed

6 years agoglbasefilter: actually indicate start internally
Matthew Waters [Mon, 6 Nov 2017 13:07:42 +0000 (00:07 +1100)]
glbasefilter: actually indicate start internally

Otherwise when we stop, the necessary stop functions will not be called
and things may be leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=788280

6 years agogltestsrc: free in the GL thread on stop
Matthew Waters [Mon, 6 Nov 2017 12:19:15 +0000 (23:19 +1100)]
gltestsrc: free in the GL thread on stop

Calling GL functions not on the GL thread may crash in some GL
implementations.

https://bugzilla.gnome.org/show_bug.cgi?id=789665

6 years agogl: use new gst_element_foreach_sink_pad()
Tim-Philipp Müller [Thu, 2 Nov 2017 12:17:38 +0000 (12:17 +0000)]
gl: use new gst_element_foreach_sink_pad()

Instead of gst_aggregator_iterate_sinkpads() which will
soon be removed.

https://bugzilla.gnome.org/show_bug.cgi?id=785679

6 years agogl/shader: allow setting non-square matrices as uniforms on gles platforms
Matthew Waters [Sat, 28 Oct 2017 10:34:08 +0000 (21:34 +1100)]
gl/shader: allow setting non-square matrices as uniforms on gles platforms

It is possible with GLES3

6 years agogl/query: split tests and fix some corresponding issues in usage
Matthew Waters [Sat, 28 Oct 2017 07:33:44 +0000 (18:33 +1100)]
gl/query: split tests and fix some corresponding issues in usage

6 years agoUse value instead of version macro when testing for mac OS version
Jérôme Laheurte [Sun, 1 Oct 2017 17:04:15 +0000 (19:04 +0200)]
Use value instead of version macro when testing for mac OS version

https://bugzilla.gnome.org/show_bug.cgi?id=788404

6 years agogl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb subclass
Cassandra Rommel [Mon, 2 Oct 2017 19:35:48 +0000 (12:35 -0700)]
gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb subclass

This simplifies the code a lot without any functional changes apart from
not closing the display connection. Closing the display connection is
not safe to do as it is shared between all other code in the same
process and no reference counting or anything happens at the platform
layer.

6 years agoglcontext_egl: Add gstglwindow header
Justin Kim [Mon, 2 Oct 2017 07:22:26 +0000 (16:22 +0900)]
glcontext_egl: Add gstglwindow header

Otherwise, compiler complains implicit function declaration warning.

https://bugzilla.gnome.org/show_bug.cgi?id=788413

6 years agoglfilter: Unmap video frame in error case
Ponnam Srinivas [Thu, 28 Sep 2017 10:50:53 +0000 (16:20 +0530)]
glfilter: Unmap video frame in error case

https://bugzilla.gnome.org/show_bug.cgi?id=788194

6 years agoglmixer: Unmap video frame in error case
Ponnam Srinivas [Mon, 25 Sep 2017 11:50:58 +0000 (17:20 +0530)]
glmixer: Unmap video frame in error case

https://bugzilla.gnome.org/show_bug.cgi?id=788127

6 years agoglvidemixer: need reconfigure output gemotry after caps renegotiated
Haihua Hu [Wed, 20 Sep 2017 12:00:03 +0000 (20:00 +0800)]
glvidemixer: need reconfigure output gemotry after caps renegotiated

6 years agoRevert "glvideomixer: need update output geometry after src caps reconfigure"
Matthew Waters [Thu, 21 Sep 2017 01:59:22 +0000 (11:59 +1000)]
Revert "glvideomixer: need update output geometry after src caps reconfigure"

This reverts commit d6e538dc5651fb03c85d7c7614bcf6c689f2db2f.

6 years agoglvideomixer: need update output geometry after src caps reconfigure
Haihua Hu [Mon, 18 Sep 2017 07:42:00 +0000 (15:42 +0800)]
glvideomixer: need update output geometry after src caps reconfigure

Need update output geometry when sink caps changed and use
gst_structure_set to update caps if structure is fixed

https://bugzilla.gnome.org/show_bug.cgi?id=787820

6 years agogl/viv-fb: transform screen coordinate to viewport coordinate
Haihua Hu [Mon, 11 Sep 2017 08:00:24 +0000 (16:00 +0800)]
gl/viv-fb: transform screen coordinate to viewport coordinate

In y direction, screen coordinate are opposite to viewport coordinate.

https://bugzilla.gnome.org/show_bug.cgi?id=787394

6 years agogl/viv-fb: fix wrong pos (x,y) calculate in queue_resize
Haihua Hu [Mon, 11 Sep 2017 07:12:53 +0000 (15:12 +0800)]
gl/viv-fb: fix wrong pos (x,y) calculate in queue_resize

queue_resize viewport coordinate calculate is wrong and
force queue_resize when do _set_render_rectangle in case
user input pos changed

https://bugzilla.gnome.org/show_bug.cgi?id=787394

6 years agoglimagesink: expose should do redisplay all the time
Haihua Hu [Mon, 11 Sep 2017 08:11:19 +0000 (16:11 +0800)]
glimagesink: expose should do redisplay all the time

when using internal window, window resize should work
when pause state, but expose only do redisplay when
window_id is valid. So expose should do redisplay all
the time.

https://bugzilla.gnome.org/show_bug.cgi?id=787394

6 years agoRequest minimum buffer even if need_pool is FALSE
Nicolas Dufresne [Tue, 5 Sep 2017 20:20:44 +0000 (16:20 -0400)]
Request minimum buffer even if need_pool is FALSE

When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.

https://bugzilla.gnome.org/show_bug.cgi?id=730758

6 years agogl/wayland: call eglTerminate() before wl_display_disconnect()
Matthew Waters [Tue, 5 Sep 2017 06:14:02 +0000 (16:14 +1000)]
gl/wayland: call eglTerminate() before wl_display_disconnect()

Calling these two functions in the wrong order will result in
use-after-free inside wayland.

https://bugzilla.gnome.org/show_bug.cgi?id=787293

6 years agogtkglsink: expose the created display and context correctly
Matthew Waters [Fri, 1 Sep 2017 05:00:12 +0000 (15:00 +1000)]
gtkglsink: expose the created display and context correctly

1. Propagate the GstGLDisplay we create
2. Add the created GstGLContext to the propagated GstGLDisplay

Otherwise with multi-branch GL pipelines involving gtkglsink, things
will fall apart and errors will be genarated somewhere.

6 years agoexamples/gl/gtk: build fix for the 3dvideo example on macOS
Philippe Normand [Wed, 30 Aug 2017 14:18:58 +0000 (15:18 +0100)]
examples/gl/gtk: build fix for the 3dvideo example on macOS

6 years agoexamples/gl/gtk: fix overlay handling for macOS
Philippe Normand [Wed, 30 Aug 2017 14:16:39 +0000 (15:16 +0100)]
examples/gl/gtk: fix overlay handling for macOS

The GTK+ window requires a NSView sub-view, not an NSWindow.

6 years agogl: fix build for ios/win32/android after 2fd84a6c
Matthew Waters [Mon, 28 Aug 2017 02:56:34 +0000 (12:56 +1000)]
gl: fix build for ios/win32/android after 2fd84a6c

Some missing GL includes.

6 years agogl: install new glfuncs.h header
Tim-Philipp Müller [Fri, 25 Aug 2017 19:37:39 +0000 (20:37 +0100)]
gl: install new glfuncs.h header

6 years agogl/checks: fix build
Matthew Waters [Wed, 23 Aug 2017 15:18:40 +0000 (01:18 +1000)]
gl/checks: fix build

6 years agogl/meson: add build for the vivante fb backend
Matthew Waters [Wed, 23 Aug 2017 06:36:09 +0000 (16:36 +1000)]
gl/meson: add build for the vivante fb backend

6 years agogl/meson: detect valid configuration from enabled apis/platform/winsys
Matthew Waters [Wed, 23 Aug 2017 06:32:57 +0000 (16:32 +1000)]
gl/meson: detect valid configuration from enabled apis/platform/winsys

6 years agogl/build: also check for the GL/gl.h header
Matthew Waters [Wed, 23 Aug 2017 06:23:07 +0000 (16:23 +1000)]
gl/build: also check for the GL/gl.h header

In order to successfully build against a detected libGL library we also need headers

6 years agoglutils: fix matrix operations everywhere
Matthew Waters [Thu, 17 Aug 2017 03:46:04 +0000 (13:46 +1000)]
glutils: fix matrix operations everywhere

- correct the matrix multiplication
- Use column-major matrices
  - reverse order of matrix multiplications

https://bugzilla.gnome.org/show_bug.cgi?id=785980

6 years agogltransformation: draw with GL_TRIANGLES
Matthew Waters [Thu, 17 Aug 2017 03:42:21 +0000 (13:42 +1000)]
gltransformation: draw with GL_TRIANGLES

Drawing 5 vertices with GL_TRIANGLE_STRIP will draw an extra unneeded
triangle.

6 years agogl/cocoa: fix build after commit 2fd84a6c
Philippe Normand [Tue, 22 Aug 2017 15:16:24 +0000 (16:16 +0100)]
gl/cocoa: fix build after commit 2fd84a6c

6 years agogl: fix broken build due to previous commit 2fd84a6c
Julien Isorce [Tue, 22 Aug 2017 11:39:43 +0000 (12:39 +0100)]
gl: fix broken build due to previous commit 2fd84a6c

Can reproduce after installing libgraphene-dev

Also fixes caopengllayersink.h to anticipate build error on osx.

https://bugzilla.gnome.org/show_bug.cgi?id=784779

6 years agogl: do not include GL headers in public gstgl headers
Julien Isorce [Fri, 7 Jul 2017 15:15:12 +0000 (16:15 +0100)]
gl: do not include GL headers in public gstgl headers

Except for gst/gl/gstglfuncs.h

It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.

For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.

For example with this patch, if an app includes the headers
  gst/gl/egl/gstglcontext_egl.h
  gst/gl/egl/gstgldisplay_egl.h
  gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.

Also added a test: cd tests/check && make libs/gstglheaders.check

https://bugzilla.gnome.org/show_bug.cgi?id=784779

6 years agogldownload: Micro-optimisation. Don't check output caps on every buffer
Jan Schmidt [Mon, 21 Aug 2017 13:49:02 +0000 (06:49 -0700)]
gldownload: Micro-optimisation. Don't check output caps on every buffer

The output caps will only change on a set_caps() call, so check if
they contain the SystemMemory feature then and save some
per-buffer CPU.

6 years agogl: fix build
Tim-Philipp Müller [Mon, 14 Aug 2017 11:12:34 +0000 (12:12 +0100)]
gl: fix build

Include private headers for parent class debug categories.

6 years agogl: add missing new header files
Tim-Philipp Müller [Mon, 14 Aug 2017 09:11:00 +0000 (10:11 +0100)]
gl: add missing new header files

https://bugzilla.gnome.org/show_bug.cgi?id=786170

6 years agogl: make some debug categories private
Tim-Philipp Müller [Mon, 14 Aug 2017 08:33:38 +0000 (09:33 +0100)]
gl: make some debug categories private

They weren't supposed to be public.

https://bugzilla.gnome.org/show_bug.cgi?id=786170

6 years agogl: don't export symbols that are not supposed to be public
Tim-Philipp Müller [Fri, 11 Aug 2017 17:38:41 +0000 (18:38 +0100)]
gl: don't export symbols that are not supposed to be public

Make a bunch of symbols private that are currently leaked
accidentally because they have a gst_* prefix and are used
internally. We mark those we can't make static with
G_GNUC_INTERNAL so that they get hidden with the autotools
build as well (although we could just pass -fvisibility=hidden
there too).

6 years agogl: sprinkle more GST_EXPORT
Tim-Philipp Müller [Fri, 11 Aug 2017 13:55:48 +0000 (14:55 +0100)]
gl: sprinkle more GST_EXPORT

6 years agogl, wayland: mark more declared functions with GST_EXPORT
Tim-Philipp Müller [Thu, 10 Aug 2017 08:09:22 +0000 (09:09 +0100)]
gl, wayland: mark more declared functions with GST_EXPORT

6 years agogl: return NULL mem if eglCreateImage failed
Julien Isorce [Tue, 1 Aug 2017 09:21:51 +0000 (10:21 +0100)]
gl: return NULL mem if eglCreateImage failed

Found on rpi when gpu_mem is too low so there is not enough memory to
create the eglimage. But still gst_buffer_pool_acquire_buffer succeeded.
And it leads to a CRITICAL assert:
  gst_egl_image_get_image: assertion 'GST_IS_EGL_IMAGE (image)' failed

https://bugzilla.gnome.org/show_bug.cgi?id=785518

6 years agogl: document missing GstGLShader functions
Matthew Waters [Fri, 28 Jul 2017 15:58:38 +0000 (16:58 +0100)]
gl: document missing GstGLShader functions

6 years agogl/docs: some documentation updates
Matthew Waters [Fri, 28 Jul 2017 10:00:12 +0000 (11:00 +0100)]
gl/docs: some documentation updates

Add some missing/incomplete docs

6 years agogl/docs: correctly name our objects in the documentation GstGl -> GstGL
Matthew Waters [Wed, 26 Jul 2017 09:04:09 +0000 (19:04 +1000)]
gl/docs: correctly name our objects in the documentation GstGl -> GstGL

6 years agogl/docs: document GstGLFormat enum
Matthew Waters [Wed, 26 Jul 2017 09:03:15 +0000 (19:03 +1000)]
gl/docs: document GstGLFormat enum

6 years agogl: fix g-i annotations for glframebuffer
Tim-Philipp Müller [Fri, 21 Jul 2017 07:43:45 +0000 (08:43 +0100)]
gl: fix g-i annotations for glframebuffer

gstglframebuffer.c:176: Error: GstGL: annotations not supported for tag "Since:".

6 years agomeson: specify fallback for libgmodule_dep
Alessandro Decina [Thu, 20 Jul 2017 07:49:59 +0000 (17:49 +1000)]
meson: specify fallback for libgmodule_dep

Fixes build with glib built as a subproject.

6 years agomeson: Fix GLES2 check
Edward Hervey [Mon, 17 Jul 2017 06:06:22 +0000 (08:06 +0200)]
meson: Fix GLES2 check

On systems without pkg-config, we have the the library present but
not the headers

https://bugzilla.gnome.org/show_bug.cgi?id=785010

6 years agoglwindow_cocoa: fix video overlay support
Philippe Normand [Sat, 15 Jul 2017 16:25:36 +0000 (17:25 +0100)]
glwindow_cocoa: fix video overlay support

Make sure the window handle is configured after the NSWindow was created.

https://bugzilla.gnome.org/show_bug.cgi?id=767462

6 years agogl/cocoa: keep refs over async operations
Matthew Waters [Sat, 15 Jul 2017 15:17:04 +0000 (01:17 +1000)]
gl/cocoa: keep refs over async operations

Avoids dereferencing dead objects

What happens in the autovideosink case is that context 1 is created and
destroyed before all the async operations hae executed on the associated
window.  When the delayed operations execute, they then reference dead
objects and crash.

We fix this by keeping refs over all async operations so the object
cannot be deleted while async operations are in flight.

https://bugzilla.gnome.org/show_bug.cgi?id=782379

6 years agogl/window/x11: implement set_render_rectangle support
Matthew Waters [Fri, 14 Jul 2017 15:24:52 +0000 (01:24 +1000)]
gl/window/x11: implement set_render_rectangle support

https://bugzilla.gnome.org/show_bug.cgi?id=782959

6 years agopkgconfig: missing GL_CFLAGS in gstreamer-gl-uninstalled.pc.in
Julien Isorce [Fri, 7 Jul 2017 15:33:42 +0000 (16:33 +0100)]
pkgconfig: missing GL_CFLAGS in gstreamer-gl-uninstalled.pc.in

Already present in gstreamer-gl.pc.in

https://bugzilla.gnome.org/show_bug.cgi?id=784779

6 years agoglfilter: Remove hard-coded pad templates
Jan Schmidt [Thu, 6 Jul 2017 11:09:50 +0000 (21:09 +1000)]
glfilter: Remove hard-coded pad templates

Add a function to install the default RGBA pad templates,
but don't make them required so that there can be
GstGLFilter sub-classes with different input/output
caps if they want. Remove the hard-coded RGBA restriction in
the set_caps_features call, as it will be taken care
of by intersecting with the pad templates.

Update all the sub-classes to match

6 years agoglupload: Don't throw assertions on invalid allocation query
Jan Schmidt [Fri, 7 Jul 2017 04:41:17 +0000 (14:41 +1000)]
glupload: Don't throw assertions on invalid allocation query

basesrc can send an allocation query with no caps, in which
case we should just fail it without throwing assertions.

6 years agoglupload: add GST_CAPS_FEATURE_MEMORY_DMABUF
Julien Isorce [Wed, 9 Mar 2016 22:01:12 +0000 (22:01 +0000)]
glupload: add GST_CAPS_FEATURE_MEMORY_DMABUF

Insert before SystemMemory to advice upstream elements that it is
preferable for them to push dmabuf with the caps feature.

Examples:

/* Discard memory:DMABuf caps feature */
GST_GL_PLATFORM=egl GST_GL_API=gles2 GST_GL_WINDOW=x11 gst-launch-1.0 \
    filesrc location=test.mp4 ! qtdemux ! h264parse ! vaapih264dec ! \
    capsfilter caps="video/x-raw(memory:SystemMemory)" ! glimagesink

/* Force memory:DMABuf caps feature. */
GST_GL_PLATFORM=egl GST_GL_API=gles2 GST_GL_WINDOW=x11 gst-launch-1.0 \
    filesrc location=test.mp4 ! qtdemux ! h264parse ! vaapih264dec ! \
    capsfilter caps="video/x-raw(memory:DMABuf)" ! glimagesink

/* Auto select memory:DMABuf caps feature.  */
GST_GL_PLATFORM=egl GST_GL_API=gles2 GST_GL_WINDOW=x11 gst-launch-1.0 \
    filesrc location=test.mp4 ! qtdemux ! h264parse ! vaapih264dec ! \
    glimagesink

https://bugzilla.gnome.org/show_bug.cgi?id=774649

6 years agogl: reset gl->DrawBuffer to the necessary values
Matthew Waters [Wed, 28 Jun 2017 04:45:18 +0000 (14:45 +1000)]
gl: reset gl->DrawBuffer to the necessary values

GL_COLOR_ATTACHMENT0 when a framebuffer is bound
GL_BACK if no framebuffer is bound

https://bugzilla.gnome.org/show_bug.cgi?id=784210

6 years agoglmemory: reset the draw buffer to GL_BACK
Hyunjun Ko [Wed, 28 Jun 2017 03:17:37 +0000 (12:17 +0900)]
glmemory: reset the draw buffer to GL_BACK

The draw buffer should be reset to GL_BACK since the framebuffer is already
unbound.

https://bugzilla.gnome.org/show_bug.cgi?id=784210

6 years agomeson: Re-add pkg-config support for bcm_host
Nicolas Dufresne [Thu, 22 Jun 2017 14:34:04 +0000 (10:34 -0400)]
meson: Re-add pkg-config support for bcm_host

Now we just fallback to find_library for Rasbian jessy and older.

https://bugzilla.gnome.org/show_bug.cgi?id=784026

6 years agogl: meson: use cc.find_library() to detect 'bcm_host'
Guillaume Desmottes [Wed, 21 Jun 2017 09:18:43 +0000 (11:18 +0200)]
gl: meson: use cc.find_library() to detect 'bcm_host'

On the raspberry pi no pkg-config file is provided for the bcm_host
library. We are using AC_CHECK_LIB to detect this lib with autotools,
cc.find_library() library is a closer meson equivalent.

https://bugzilla.gnome.org/show_bug.cgi?id=784026

6 years agogl/cocoa: Put gstglwindow_cocoa.h into noinst_HEADERS again
Sebastian Dröge [Tue, 20 Jun 2017 16:19:51 +0000 (19:19 +0300)]
gl/cocoa: Put gstglwindow_cocoa.h into noinst_HEADERS again

And remove gstgldisplay_cocoa.h instead, which got moved to the
installed headers earlier.

6 years agoglupload: Fix DirectVIV uploader for formats with a single plane
Sebastian Dröge [Mon, 12 Jun 2017 19:29:01 +0000 (22:29 +0300)]
glupload: Fix DirectVIV uploader for formats with a single plane

We have to pass the "height" as height = vmeta->offset[1] / width to the
API, which of course does not work well for formats with only a single
plane. Use the whole memory size instead of the offset in that case.

6 years agogl: Add dependency to gstallocators
Nicolas Dufresne [Mon, 29 May 2017 16:22:17 +0000 (12:22 -0400)]
gl: Add dependency to gstallocators

6 years agoglutils: Fix GValue leak in gst_gl_value_set_texture_target_from_mask()
Jeremy Hiatt [Thu, 1 Jun 2017 01:15:05 +0000 (01:15 +0000)]
glutils: Fix GValue leak in gst_gl_value_set_texture_target_from_mask()

6 years agogl: Fix indentation
Sebastian Dröge [Thu, 25 May 2017 10:06:03 +0000 (13:06 +0300)]
gl: Fix indentation

6 years agoglframebuffer: #define GL_READ_FRAMEBUFFER / GL_DRAW_FRAMEBUFFER if not defined yet
Sebastian Dröge [Thu, 25 May 2017 10:05:23 +0000 (13:05 +0300)]
glframebuffer: #define GL_READ_FRAMEBUFFER / GL_DRAW_FRAMEBUFFER if not defined yet

Just like we do elsewhere already.

6 years agoglformat: fix the usage of GST_GL_RGB565
Haihua Hu [Thu, 25 May 2017 03:05:47 +0000 (11:05 +0800)]
glformat: fix the usage of GST_GL_RGB565

GL_RGB565 is sized internal glformat, the corresponding glformat
should be GL_RGB and type is GL_UNSIGNED_SHORT_565. Otherwise will
return GL_INVALID_ENUM when creating texture.

https://bugzilla.gnome.org/show_bug.cgi?id=783066

6 years agoglframebuffer: check frame buffer status need use specific fbo target
Haihua Hu [Thu, 25 May 2017 02:09:04 +0000 (10:09 +0800)]
glframebuffer: check frame buffer status need use specific fbo target

https://bugzilla.gnome.org/show_bug.cgi?id=783065

6 years agogltestsrc: Fix typo (occured->occurred)
Anders Jonsson [Mon, 22 May 2017 11:46:36 +0000 (13:46 +0200)]
gltestsrc: Fix typo (occured->occurred)

https://bugzilla.gnome.org/show_bug.cgi?id=782947

6 years agoglbasemixer: Remove unused negotiated member
Olivier Crête [Sun, 21 May 2017 16:31:59 +0000 (18:31 +0200)]
glbasemixer: Remove unused negotiated member

This is now all handled in GstAggregator, so this code is not
called anymore.

6 years agogl*mixer: Use propose_allocation from the GstAggregator base class
Olivier Crête [Sun, 21 May 2017 13:30:10 +0000 (15:30 +0200)]
gl*mixer: Use propose_allocation from the GstAggregator base class

https://bugzilla.gnome.org/show_bug.cgi?id=782918

6 years agogl/viv-fb: Fix user-choice string comparisons
Carlos Rafael Giani [Tue, 9 May 2017 21:59:04 +0000 (23:59 +0200)]
gl/viv-fb: Fix user-choice string comparisons

https://bugzilla.gnome.org/show_bug.cgi?id=782921

6 years agoglbasemixer: Remove own decide_allocation, use GstAggregator's
Olivier Crête [Sat, 20 May 2017 15:35:43 +0000 (17:35 +0200)]
glbasemixer: Remove own decide_allocation, use GstAggregator's

https://bugzilla.gnome.org/show_bug.cgi?id=746529

6 years agoglbasemixer: Use aggregator for allocation handling
Olivier Crête [Sat, 20 May 2017 15:30:06 +0000 (17:30 +0200)]
glbasemixer: Use aggregator for allocation handling

https://bugzilla.gnome.org/show_bug.cgi?id=746529

6 years agovideoaggregator: Get the buffer from the pool if available
Olivier Crête [Sat, 20 May 2017 15:25:16 +0000 (17:25 +0200)]
videoaggregator: Get the buffer from the pool if available

https://bugzilla.gnome.org/show_bug.cgi?id=746529

6 years agogl: x11: fix compiler warning
Tim-Philipp Müller [Sun, 21 May 2017 10:44:37 +0000 (11:44 +0100)]
gl: x11: fix compiler warning

6 years agoglcontext: add public swap_buffers function
Matthew Waters [Sun, 21 May 2017 10:03:01 +0000 (12:03 +0200)]
glcontext: add public swap_buffers function

That simply calls the implementation

6 years agoexamples: gl: remove ancient bitrotten .vcproj files
Tim-Philipp Müller [Sun, 21 May 2017 09:57:18 +0000 (10:57 +0100)]
examples: gl: remove ancient bitrotten .vcproj files

6 years agoaggregator: add simple support for caps handling
Matthew Waters [Sat, 20 May 2017 12:24:57 +0000 (14:24 +0200)]
aggregator: add simple support for caps handling

Modelled off the videoaggregator caps handling as that seems the most
mature aggregtor-using implementation that has caps handling there is.

https://bugzilla.gnome.org/show_bug.cgi?id=776931

6 years agoglcontext: keep a ref to the active thread
fvanzile [Thu, 23 Feb 2017 23:42:08 +0000 (15:42 -0800)]
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

6 years agoexamples: fix macOS 9.12 deprecation warnings
Josep Torra [Sat, 20 May 2017 10:34:27 +0000 (12:34 +0200)]
examples: fix macOS 9.12 deprecation warnings

Add #defines to allow older versions of macOS to use the new constant names.

6 years agococoa: fix a recently introduced typo
Josep Torra [Sat, 20 May 2017 10:19:08 +0000 (12:19 +0200)]
cocoa: fix a recently introduced typo

Fixes gstgldisplay_cocoa.m:175:26: error: use of undeclared identifier 'singletone'.

6 years agococoa: fix macOS 10.12 deprecation warnings
Josep Torra [Sat, 20 May 2017 10:16:50 +0000 (12:16 +0200)]
cocoa: fix macOS 10.12 deprecation warnings

Add #defines to allow older versions of macOS to use the new constant names.

6 years agoglformat: Add missing GST_GL_RGB565 in some switch statement
Haihua Hu [Wed, 17 May 2017 08:26:38 +0000 (16:26 +0800)]
glformat: Add missing GST_GL_RGB565 in some switch statement

https://bugzilla.gnome.org/show_bug.cgi?id=782736

6 years agococoa: Install gstgldisplay_cocoa.h
Sebastian Dröge [Wed, 17 May 2017 14:38:01 +0000 (17:38 +0300)]
cocoa: Install gstgldisplay_cocoa.h

It's needed by e.g. qmlglsink.

6 years agogst: Clear floating flag in constructor of all GstObject subclasses that are not...
Sebastian Dröge [Mon, 15 May 2017 17:31:31 +0000 (20:31 +0300)]
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

6 years agoRemove plugin specific static build option
Nicolas Dufresne [Tue, 16 May 2017 18:05:52 +0000 (14:05 -0400)]
Remove plugin specific static build option

Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.

6 years agoglshader: Make reference counting of attach() consistent
Sebastian Dröge [Mon, 15 May 2017 09:00:50 +0000 (12:00 +0300)]
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

6 years agobuild/gl/meson: check for GLES3/gl3ext.h existence
Matthew Waters [Thu, 11 May 2017 10:05:24 +0000 (20:05 +1000)]
build/gl/meson: check for GLES3/gl3ext.h existence

791e7522ebcb75beb31fcace271dee1342d3505d for meson

https://bugzilla.gnome.org/show_bug.cgi?id=781885

6 years agobuild: Check for GLES3/gl3ext.h existence
Jens Georg [Thu, 11 May 2017 08:29:58 +0000 (10:29 +0200)]
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

6 years agoglmemory: Only use glDrawBuffer if available
Sebastian Dröge [Tue, 9 May 2017 09:25:20 +0000 (11:25 +0200)]
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