platform/upstream/gstreamer.git
8 years agoqml: Mark material dirty when texture buffer is updated
Sergey Borovkov [Fri, 8 Jan 2016 19:19:06 +0000 (22:19 +0300)]
qml: Mark material dirty when texture buffer is updated

Qt might not redraw the scene otherwise.

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

8 years agoqtsink: Add configured GL cflags to the build
Nicolas Dufresne [Wed, 16 Dec 2015 00:28:05 +0000 (19:28 -0500)]
qtsink: Add configured GL cflags to the build

We don't directly link to GL in the element, though we use GL headers.
For this reason we need to include the proper GL headers path. This
prevent this element from using a different GL header then libgstgl.

8 years agoglmemory: base classify and add the pbo memory on top
Matthew Waters [Mon, 14 Dec 2015 02:43:59 +0000 (13:43 +1100)]
glmemory: base classify and add the pbo memory on top

The base class is useful for having multiple backing memory types other
than the default.  e.g. IOSurface, EGLImage, dmabuf?

The PBO transfer logic is now inside GstGLMemoryPBO which uses GstGLBuffer
to manage the PBO memory.

This also moves the format utility functions into their own file.

8 years agoqml: reuse existing GstQSGTexture
Roman Nowicki [Fri, 20 Nov 2015 00:18:43 +0000 (11:18 +1100)]
qml: reuse existing GstQSGTexture

Fixes a memory leak leaking the texture objects.

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

8 years agoqml: activate the wrapped context when binding
Matthew Waters [Fri, 20 Nov 2015 00:08:37 +0000 (11:08 +1100)]
qml: activate the wrapped context when binding

Mitigates the following critical

gst_gl_context_thread_add: assertion 'context->priv->active_thread == g_thread_self ()' failed

8 years agoqml: proper initialization if scene is already initialized
Roman Nowicki [Thu, 19 Nov 2015 10:55:19 +0000 (11:55 +0100)]
qml: proper initialization if scene is already initialized

The scene graph can be initialized when the we receive window handle change
notification and so we will not receive a scenegraph initialization
notification.  Initialize ourself in this case.

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

9 years agogl: be consistent in gobject boilerpate
Matthew Waters [Mon, 19 Oct 2015 04:15:30 +0000 (15:15 +1100)]
gl: be consistent in gobject boilerpate

GST_GL_IS_* vs GST_IS_GL_*

git grep -l 'GST_GL_IS_' | xargs sed -i 's/GST_GL_IS_/GST_IS_GL_/g'

9 years agoqt: add support for building on osx/ios
Matthew Waters [Mon, 14 Sep 2015 17:14:37 +0000 (03:14 +1000)]
qt: add support for building on osx/ios

Including:
- Necessary configure checks
- Necessary compile time platform checks
- Necessary runtime qt iOS/OSX platform detection

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

9 years agoqtsink: explicitely fallthrough switch statement
Luis de Bethencourt [Fri, 28 Aug 2015 15:24:24 +0000 (16:24 +0100)]
qtsink: explicitely fallthrough switch statement

In case ret is False, fallthrough to default case.

CID #1320705

9 years agoqml: remove overwritten value
Luis de Bethencourt [Fri, 28 Aug 2015 15:35:39 +0000 (16:35 +0100)]
qml: remove overwritten value

Value in tex is overwritten before being used. Removing it.

CID 1320715

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

9 years agoqt: add support for building/running on android
Matthew Waters [Wed, 2 Sep 2015 13:45:07 +0000 (23:45 +1000)]
qt: add support for building/running on android

Including:
- Necessary configure checks
- Necessary compile time platform checks
- Necessary runtime qt android platform detection
- Escaping GLsync definition with Qt's GLES2 implementation

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

9 years agoqt: don't use CPPFLAGS for tools that cannot use them
Matthew Waters [Wed, 2 Sep 2015 13:40:31 +0000 (23:40 +1000)]
qt: don't use CPPFLAGS for tools that cannot use them

For example moc will bail out when given arguments it does not
know about.  The moc specific MOC_CPPFLAGS can still be used
to pass flags to moc.

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

9 years agoqt: rename library to include gst prefix
Matthew Waters [Wed, 2 Sep 2015 13:39:54 +0000 (23:39 +1000)]
qt: rename library to include gst prefix

libqtsink -> libgstqtsink

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

9 years agogtk, qt: more specifically define the compile time requirements
Matthew Waters [Wed, 9 Sep 2015 14:07:18 +0000 (00:07 +1000)]
gtk, qt: more specifically define the compile time requirements

Otherwise we could include headers/configurations that will
never been installed.

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

9 years agoqt: use our function table instead of directly calling gl functions
Matthew Waters [Wed, 9 Sep 2015 14:00:11 +0000 (00:00 +1000)]
qt: use our function table instead of directly calling gl functions

Otherwise when building with --as-needed we would need to link to
a GL or GLES library.

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

9 years agoqmlsink: Ensure that at least one windowing system is available
Nirbheek Chauhan [Fri, 7 Aug 2015 11:57:48 +0000 (17:27 +0530)]
qmlsink: Ensure that at least one windowing system is available

Otherwise, we'll just crash at runtime because the gl context is NULL

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

9 years agogtk, qt, gl: fix typo in debug and error messages
Tim-Philipp Müller [Mon, 31 Aug 2015 17:06:31 +0000 (18:06 +0100)]
gtk, qt, gl: fix typo in debug and error messages

9 years agoqml: implement the required multiple GL context synchonisation
Matthew Waters [Sat, 8 Aug 2015 15:28:03 +0000 (17:28 +0200)]
qml: implement the required multiple GL context synchonisation

From GStreamer's GL context into the QML context

9 years agoqt: Don't dist files that might not exist
Edward Hervey [Wed, 22 Jul 2015 13:13:48 +0000 (15:13 +0200)]
qt: Don't dist files that might not exist

We only require moc building at build time.

9 years agoqt: Tidy up makefile a bit more
Edward Hervey [Wed, 22 Jul 2015 06:05:04 +0000 (08:05 +0200)]
qt: Tidy up makefile a bit more

Separate generated files, from disted files

9 years agoglcontext: fix get_current_gl_api on x11/nvidia drivers
Matthew Waters [Sat, 18 Jul 2015 07:19:18 +0000 (17:19 +1000)]
glcontext: fix get_current_gl_api on x11/nvidia drivers

They require to get_proc_address some functions through the
platform specific {glX,egl}GetProcAddress rather than the default
GL library symbol lookup.

9 years agoconfigure/qt: Fix build without Qt5X11Extras
Edward Hervey [Fri, 10 Jul 2015 12:01:43 +0000 (14:01 +0200)]
configure/qt: Fix build without Qt5X11Extras

9 years agonew qt5 qml GL video sink
Matthew Waters [Mon, 6 Jul 2015 13:10:51 +0000 (23:10 +1000)]
new qt5 qml GL video sink

Very much in the same spirit as the Gtk GL sink

Two things are provided
1. A QQuickItem subclass that renders out RGBA filled GstGLMemory
   buffers that is instantiated from qml.
2. A sink element that will push buffers into (1)

To use
1. Declare the GstGLVideoItem in qml with an appropriate
   objectName property set.
2. Get the aforementioned GstGLVideoItem from qml using something like

QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

QObject *rootObject = engine.rootObjects().first();
QQuickItem *videoItem = rootObject->findChild<QQuickItem *> ("videoItem");

3. Set the videoItem on the sink

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