Mathieu Duponchelle
69d5428bfc
docs: mark more types as plugin API
2020-06-23 14:52:20 -04:00
Matthew Waters
5d47b8e232
gl: fix application context querying between elements
...
Fixes error introduced by:
a4e49ba8c9
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/642
Using the application GL context as the local GL context is not going to
work very well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/643 >
2020-04-27 11:36:02 +10:00
Matthew Waters
a4e49ba8c9
gl: avoid deadlock querying for OpenGL context
...
If there are two elements and threads attempting to query each other for
an OpenGL context. The locking may result in a deadlock.
We need to unlock each element's context_lock when querying another
element for the OpenGL context in order to allow any other element to
take the lock when the other element is querying for an OpenGL context.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/642 >
2020-04-24 18:03:16 +10:00
Matthew Waters
55e80b550e
gl/mixer: support GstGLDisplay changes
2020-03-03 02:11:52 +00:00
Tim-Philipp Müller
69534fe9a0
gl: Update for g_type_class_add_private() deprecation in recent GLib
2018-06-24 01:37:08 +02:00
Sebastian Dröge
33a8e28207
videoaggregator: Switch to a GstVideoAggregatorConvertPad subclass
...
This moves all the conversion related code to a single place, allows
less code-duplication inside compositor and makes the glmixer code less
awkward. It's also the same pattern as used by GstAudioAggregator.
2018-05-06 15:22:51 +02:00
Mathieu Duponchelle
14f886b7b0
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
2017-11-22 16:52:29 +01:00
Olivier Crête
1dc6f66310
glbasemixer: Remove unused negotiated member
...
This is now all handled in GstAggregator, so this code is not
called anymore.
2017-05-21 18:31:59 +02:00
Olivier Crête
a2b0f2771a
gl*mixer: Use propose_allocation from the GstAggregator base class
...
https://bugzilla.gnome.org/show_bug.cgi?id=782918
2017-05-21 18:17:54 +02:00
Olivier Crête
b2d4a6835b
glbasemixer: Remove own decide_allocation, use GstAggregator's
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-05-21 13:24:29 +02:00
Olivier Crête
d456da5cbf
glbasemixer: Use aggregator for allocation handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-05-21 13:24:29 +02:00
Olivier Crête
4a571db4c7
videoaggregator: Get the buffer from the pool if available
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-05-21 13:24:29 +02:00
Matthew Waters
719498601f
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
2017-05-20 16:21:17 +02:00
Matthew Waters
7fcbfe1234
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
d0a9cc0abc
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
11bb4454a8
glvideomixer: fix race retrieving the GL context from the display
...
_get_gl_context() can be called concurrently from either propose_allocation() or
decide_allocation(). If it so happens that this happens at the same time,
the check for whether we already had a GL context was outside the lock. Inside
the lock and loop, the first thing that happens is that we unref the current GL
context (if valid) as if there was a conflict adding it to the display. If the
timing was unlucky, subsequent use of the GL context would be referencing an
already unreffed GL context object resulting in a critical:
g_object_ref: assertion 'object->ref_count > 0' failed
https://bugzilla.gnome.org/show_bug.cgi?id=766703
2016-05-25 18:28:20 +10:00
Matthew Waters
96682c41d4
glbasemixer: actually attempt to propose an allocation upstream
...
We were always failing the allocation query as a flag was never being set to
signal a successful negotiation. Fix by setting the required flag on a
successful caps event from upstream.
2016-05-14 16:35:29 +03:00
Matthew Waters
5e11ec7164
glbasemixer: chain up to the parent implementation
2016-04-12 09:39:32 +10:00
Matthew Waters
0d50d92279
gl: error out if the configured GL API is unsupported by our element
...
https://bugzilla.gnome.org/show_bug.cgi?id=759801
2016-02-22 20:52:54 +11:00
Matthew Waters
a238af84a0
gl: chain up to the parent class for GstElement::set_context
...
https://bugzilla.gnome.org/show_bug.cgi?id=705579
2015-09-28 22:24:04 +10:00
Vineeth T M
78e07d02eb
gl: Fix GError leaks during failures
...
https://bugzilla.gnome.org/show_bug.cgi?id=755140
2015-09-17 11:52:55 +02:00
Julien Isorce
884e68c713
gl: use gst_gl_display_create_context in more elements.
...
glbasefilter, glbasemixer and gltestsrc.
https://bugzilla.gnome.org/show_bug.cgi?id=750310
2015-07-21 11:37:21 +01:00
Matthew Waters
d3d7498878
gl: don't deadlock on context creation failure
...
https://bugzilla.gnome.org/show_bug.cgi?id=749284
2015-05-13 23:56:48 +10:00
Matthew Waters
8930bf7c07
gl: unref display/other-context in the correct place
...
Otherwise state changes from PLAYING->READY->PAUSED will cause there to
to be no display configured on the element.
https://bugzilla.gnome.org/show_bug.cgi?id=748405
2015-04-27 15:20:56 +10:00
Matthew Waters
66a5cad6c1
gldisplay: synchronize the searching and creation of GstGLContext's
...
Ootherwise we could end up with multiple elements in different chains
each creating a context. Fixes context creation with glvideomixer.
2015-04-21 12:55:24 +10:00
Sebastian Dröge
78a1841c86
gl: Remove some empty ::finalize() implementations
2015-04-17 14:09:47 +02:00
Matthew Waters
b0ee70e77a
gl: retreive the gldisplay/app gl context as soon as possible
...
fixes the usage of gst_gl_display_filter_gl_api
2015-03-13 12:30:20 +00:00
Matthew Waters
f19b8f7665
gl: store the list of contexts within gldisplay
...
Removes the reliance on the allocation query to propogate GL contexts.
Allows thread safely getting a context for the a specific thread.
2015-03-12 16:45:51 +00:00
Matthew Waters
d175b0be59
gl: add a new glbasemixer class below glmixer
...
It deals with propagating the gl display/contexts throughout the
application/pipeline
2015-03-12 16:45:50 +00:00