gstreamer/subprojects/gst-plugins-good/ext/qt6
Matthias Fuchs 2bbc2a4c52 qml6glsrc: sync on the streaming thread
After rendering a QML scene the qml6glsrc element copies the contents of
the scene to a GStreamer buffer. This happens on the Qt render thread.
Then it attaches a sync point to the destination buffer. This sync point
must be awaited by other threads which use the buffer later on. The
current implementation relies on the downstream elements to wait for the
sync point. However, there are situation where this does not work. The
GstBaseTransform e.g. copies the buffer metadata (which overwrites the
sync point without waiting for it) *before* waiting for the sync point.

This commit waits for the sync point inside the qml6glsrc element before
sending it downstream. The wait command is issued on the streaming
thread with the pipeline OpenGL context, i.e. it will synchronize with
the GStreamer OpenGL thread.

This is a port of the original fix for the qmlglsrc element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5519>
2023-10-23 08:43:16 +00:00
..
gstplugin.cc qml6: add a mixer element 2023-05-19 01:48:57 +00:00
gstqml6glmixer.cc qml6glmixer: add support for non-RGBA inputs 2023-09-07 02:12:29 +00:00
gstqml6glmixer.h qml6: add a mixer element 2023-05-19 01:48:57 +00:00
gstqml6gloverlay.cc qml6glovleray: add support for non-RGBA inputs 2023-09-07 02:12:29 +00:00
gstqml6gloverlay.h qml6: implement qml6gloverlay 2023-02-01 13:23:52 +00:00
gstqml6glsink.cc qml6/sink: add support for non-RGBA input 2023-09-07 02:12:29 +00:00
gstqml6glsink.h add new plugin for Qt 6 rendering inside a QML scene 2022-11-24 16:11:04 +11:00
gstqml6glsrc.cc qml6glsrc: sync on the streaming thread 2023-10-23 08:43:16 +00:00
gstqml6glsrc.h qt6: add qml6glsrc element 2023-01-28 02:24:09 +00:00
gstqsg6material.cc qt6: if def newer symbosl in QRhiTexture 2023-10-12 22:57:35 +00:00
gstqsg6material.h qml6/sink: add support for non-RGBA input 2023-09-07 02:12:29 +00:00
gstqt6element.cc add new plugin for Qt 6 rendering inside a QML scene 2022-11-24 16:11:04 +11:00
gstqt6elements.h qml6: add a mixer element 2023-05-19 01:48:57 +00:00
gstqt6gl.h add new plugin for Qt 6 rendering inside a QML scene 2022-11-24 16:11:04 +11:00
gstqt6glutility.cc meson: Support building qml6glsink on win32 2023-06-02 14:27:44 +05:30
gstqt6glutility.h qml6: implement qml6gloverlay 2023-02-01 13:23:52 +00:00
meson.build build/qt6: properly error/skip build if the qsb tool is not found 2023-10-12 12:58:26 +00:00
qt6glitem.cc qml6/sink: add support for non-RGBA input 2023-09-07 02:12:29 +00:00
qt6glitem.h add new plugin for Qt 6 rendering inside a QML scene 2022-11-24 16:11:04 +11:00
qt6glrenderer.cc qtglrenderer.cc: Add missing QCoreApplication and QEventLoop includes 2023-07-05 17:52:09 +00:00
qt6glrenderer.h qml6: implement qml6gloverlay 2023-02-01 13:23:52 +00:00
qt6glwindow.cc qt6: add qml6glsrc element 2023-01-28 02:24:09 +00:00
qt6glwindow.h qt6: add qml6glsrc element 2023-01-28 02:24:09 +00:00
resources.qrc qml6/sink: add support for non-RGBA input 2023-09-07 02:12:29 +00:00
RGBA.frag qml6/sink: add support for non-RGBA input 2023-09-07 02:12:29 +00:00
vertex.vert qml6/sink: add support for non-RGBA input 2023-09-07 02:12:29 +00:00
YUV_TRIPLANAR.frag qml6/sink: add support for non-RGBA input 2023-09-07 02:12:29 +00:00