Julien Isorce
2fd84a6c86
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
2017-08-22 10:00:19 +01:00
Nicolas Dufresne
4261692187
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Thibault Saunier
78022a6e0c
docs: Port all docstring to gtk-doc markdown
2017-04-12 12:57:57 -03:00
Matthew Waters
efc015f27d
gl: GL_ARRAY_BUFFER is not a part of VAO state
...
As a result we need to bind it on every draw in order to have the
correct state in the GL state machine.
2017-03-14 14:15:00 +11:00
Nicolas Dufresne
eb2dae8fd6
Rename plugin filesnames to match plugin names
...
- libgstgtksink.so -> libgstgtk.so
- libgstteletextdec.so -> libgstteletex.so
- libgstcamerabin2.so -> libgstcamerabin.so
- libgstonvif.so -> libgstrtponvif.so (meson only)
- sdp -> sdpelem (avoid clash with libgstsdp)
- gstsiren -> siren
- libgstkmssink.so -> libgstkms.so
https://bugzilla.gnome.org/show_bug.cgi?id=779344
2017-03-08 20:04:23 -05:00
Matthew Waters
4315a4b54d
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-01-13 11:20:51 +11:00
Matthew Waters
41a6448918
gl: GST_GL_TYPE -> GST_TYPE_GL
...
Some deprecated symbols are kept for backwards compatibility
2016-11-03 16:16:12 +11:00
Matthew Waters
b3706573da
meson: add build files for the gtk plugin
2016-09-09 16:36:03 +10:00
Nirbheek Chauhan
21023800ca
gtk: Fix logging in base widget and fix desc of GL sink
...
Set a default category for gtkgstbasewidget lest the logging go to the 'default'
category where it can't be found easily
2016-03-27 12:04:16 +03:00
Matthew Waters
cfbe7d1399
gtk/gl: don't assert when gdk doesn't provide a GL context
...
Allows the application to check whether gtkglsink is supported by setting
the element to READY.
https://bugzilla.gnome.org/show_bug.cgi?id=764148
2016-03-25 17:49:14 +11:00
Vineeth TM
9fe6b9b86b
gtkbasesink: post message to application for unhandled keyboard/mouse events
...
https://bugzilla.gnome.org/show_bug.cgi?id=763403
2016-03-24 14:58:24 +02:00
Vineeth TM
8cdfb13658
bad: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Matthew Waters
057aca2cda
gtk(gl)sink: remove the signal handlers on finalize
...
It's possible that the sink element will be freed before the widget is
destroyed. When the widget was eventually destroyed, it was attempting to
access member variables of the freed sink struct which resulted in undefined
behaviour.
Fix by disconnecting our signal on finalize.
https://bugzilla.gnome.org/show_bug.cgi?id=762098
2016-02-16 20:09:08 +11:00
Matthew Waters
cd4a93da3b
glsyncmeta: separate out gpu/cpu waits.
...
CPU waits are more expensive and are only required if the CPU is ever going to
access the data. GPU waits perform inter-context synchronisation and are cheaper
as they don't require CPU intervention.
2016-02-09 12:30:25 +11:00
Matthew Waters
eb4e2de4e8
gtk: add the overlaycomposition feature to the template caps
...
There is a possibility that the _get_caps impl will be called with the
feature in the filter caps which when interecting with the template,
will return EMPTY and therefore fail negotiation.
https://bugzilla.gnome.org/show_bug.cgi?id=757854
2015-11-10 15:40:25 +11:00
Matthew Waters
3dfc6899ad
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'
2015-10-19 15:15:30 +11:00
Matthew Waters
cfff5d819e
gtk: separate out the widget/window destroy callbacks
...
Fixes assertion due to the sink_finalize() being run before the widget destroy
callback.
https://bugzilla.gnome.org/show_bug.cgi?id=755969
2015-10-17 16:09:53 +11:00
Matthew Waters
b25807c382
glshader: port to using GstGLSLStage objects for string management
...
A GstGLShader is now simply a collection of stages that are
compiled and linked together into a program. The uniform/attribute
interface has remained the same.
2015-10-15 21:27:57 +11:00
Matthew Waters
90b0383638
gtk: add some GL debug statements to show up in GL traces
2015-09-30 12:39:47 +10:00
Matthew Waters
da5c0bddb2
gtk: fix assertion when the element has no peer
...
When proxying keyboard/navigation/mouse events, only unref a successfully
retreived peer pad.
https://bugzilla.gnome.org/show_bug.cgi?id=755738
2015-09-29 00:27:30 +10:00
Sebastian Dröge
bcda593f12
gtk: Only run from the main thread in stop() if we created the window
...
We're not doing anything at all from the main thread in other cases.
2015-09-24 18:51:39 +02:00
Thibault Saunier
4807201b04
gtk: When setting format check if pending format changed
...
In case the format changed fast and the pending format is different
than the currently set but the currently set is equal to the pending
one we could end up having mismatch between the finally set format
and the data stream format.
https://bugzilla.gnome.org/show_bug.cgi?id=755542
2015-09-24 16:50:38 +02:00
Thibault Saunier
bdcb8208eb
gtk: Do not forget to release OBJECT_LOCK on error path
...
https://bugzilla.gnome.org/show_bug.cgi?id=755542
2015-09-24 15:57:26 +02:00
Thibault Saunier
01057609f1
gtk: Factor out a function to run a function on main thread
...
https://bugzilla.gnome.org/show_bug.cgi?id=755251
2015-09-24 12:03:01 +02:00
Thibault Saunier
5ad5f5c369
gtk: Marshall state changes in the main thread
...
Gtk is not MT safe thus we need to make sure that everything is done
in the main thread when working with it.
https://bugzilla.gnome.org/show_bug.cgi?id=755251
2015-09-24 12:03:01 +02:00
Thibault Saunier
3417a15076
gtksink: Do not show window until we reach the PAUSED state
...
https://bugzilla.gnome.org/show_bug.cgi?id=755459
2015-09-23 12:08:18 +02:00
Thibault Saunier
717f922701
gtksink: Do not re destroy the GtkWindow if destroyed by the user
...
Otherwise we will get an ASSERT.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=755249
2015-09-21 13:03:53 +02:00
Thibault Saunier
a2bdce8df3
gtkglsink: Hide and clean the GtkWindow we might create
...
When stopping the sink we should always hide the window.
https://bugzilla.gnome.org/show_bug.cgi?id=755249
2015-09-19 12:31:49 +02:00
Vineeth T M
00438fdff0
gl: Fix GError leaks during failures
...
https://bugzilla.gnome.org/show_bug.cgi?id=755140
2015-09-17 11:52:55 +02:00
Matthew Waters
38d360675c
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
2015-09-10 13:11:06 +10:00
Thibault Saunier
de29038d1e
gtk: Do not consider GtkEvents as handled
...
Applications might still want to use them
after the sink transformed them into
GstNavigation events
2015-09-04 16:25:44 +02:00
Tim-Philipp Müller
1cb3e8c591
gtk, qt, gl: fix typo in debug and error messages
2015-08-31 18:06:31 +01:00
Sebastian Dröge
ea27fe3032
gtk/gl: Use our GL function table instead of directly calling GL functions
...
Otherwise we would have to link the plugin to the GL libraries directly.
2015-08-19 13:55:00 +03:00
Nicolas Dufresne
f935b2c547
glsink: Enable sync meta on pools we offer
...
As the upload is asynchronous, we need to enable the sync meta to
gain correct rendering. The buffer pool receiver don't know about
that.
2015-08-15 15:55:08 +02:00
Nicolas Dufresne
74486ab7e1
gtkglsink: Add overlay composition support
...
Rendering composition overlay in GL with additional high resolution
overlay being added.
2015-08-15 15:55:08 +02:00
Nicolas Dufresne
0b271a863e
gtkglsink: Fix unsafe handling of buffer life time
...
We need to keep the active buffer (the one we have retreive a
texture id from) otherwise it's racy and upstream may upload
new content before we have rendered or during later redisplay.
2015-08-15 15:55:08 +02:00
Nicolas Dufresne
e4cc364a14
gtkglsink: Remove reset path
...
The reset path is bogus and there is no reason to get rid of these
things during resize.
2015-08-15 15:55:08 +02:00
Matthew Waters
c867c8505b
gtk: fix motion event name
...
s/motion/mouse/
Fixes hover interaction with DVD menus
2015-08-12 00:25:35 +02:00
Matthew Waters
7d96729feb
gtk: correct navigation events for window scaling
...
i.e. take into account the possiblity of scaling in the sink
or through GDK_SCALE.
Fixes DVD Menus with a scaled gtkwidget
2015-08-12 00:25:35 +02:00
Matthew Waters
988643eb43
gtk: implement GstNavigation interface
...
Now we can push key/mouse input into the pipeline for DVD use cases.
2015-08-11 13:38:03 +02:00
Julien Isorce
6125ea7e97
gstglwidget: use gst_gl_display_create_context
...
Also handle the failure case.
https://bugzilla.gnome.org/show_bug.cgi?id=750310
2015-07-21 15:06:34 +01:00
Thibault Saunier
c683f2fffe
gtk: Log GDK GL error when failling creating GdkGLContext
2015-07-20 11:09:20 +02:00
Matthew Waters
d5996de5d7
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.
2015-07-18 18:18:22 +10:00
Nicolas Dufresne
1d0c3fd070
gtkgstglwidget: Cleanup unused private member
...
new_buffer has been moved to base class. Also cleanup
the properties comment, which are also all moved into
the base class.
2015-07-17 16:00:01 -04:00
Nicolas Dufresne
df021c1a4b
gtksink: "widget" must be access from main thread
...
Document that "widget" property must be accessed from the
main thread (where GTK is running). This is the same for
state transition on these elements. It is very natural to
do so un GTK applications.
2015-07-17 15:57:37 -04:00
Nicolas Dufresne
5e87b9f9af
gtkglsink: Don't leak vertex array and buffers
...
This is now possible since reset is always called from the
main thread.
https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:41:09 -04:00
Nicolas Dufresne
410ffd5c62
gtkgstbasewidget: Fix black frame on resize
...
This is solved by only applying the new format when the next
buffer is to be rendered and on the GTK thread.
https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:41:07 -04:00
Nicolas Dufresne
d0fd6a0b0b
gtkgstbasewidget: Pass already parsed VideoInfo
...
As the base sink already parse the caps into VideoInfo it
makes sense to pass in VideoInfo to the widget instead.
https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:40:22 -04:00
Nicolas Dufresne
785b7bd8e4
gtkglsink: Port to GstGtkBaseSink base class
...
https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:14:09 -04:00
Nicolas Dufresne
84bc5adbc9
gtksink: Port to GstGtkBaseSink
...
https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:14:09 -04:00