gstreamer/subprojects/gst-plugins-good/ext
Matthias Fuchs 7c49ce1c21 qmlglsrc: sync on the streaming thread
After rendering a QML scene the qmlglsrc 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 qmlglsrc 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.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5515>
2023-10-20 00:36:26 +00:00
..
aalib meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
adaptivedemux2 adaptivedemux2: Call GTasks's return functions for blocking tasks 2023-09-28 12:04:11 +02:00
cairo meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
dv meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
flac flacenc: Correctly handle up to 255 cue entries 2023-10-04 19:06:33 +01:00
gdk_pixbuf gdkpixbufoverlay: fix docs - changing images at runtime is supported 2022-11-15 22:43:01 +00:00
gtk gtk: Fix critical caused by pointer movement when stream is getting ready 2023-07-18 07:36:41 +02:00
jack meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
jpeg jpegdec: be stricter when detecting interlaced video 2023-05-26 01:04:02 +01:00
lame meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
libcaca Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
libpng pngdec: Fix 16bit RGB images display 2023-06-02 10:51:17 +01:00
mpg123 meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
pulse pulsedeviceprovider: fix incorrect usage of GST_ELEMENT_ERROR 2023-09-19 14:09:46 +01:00
qt qmlglsrc: sync on the streaming thread 2023-10-20 00:36:26 +00:00
qt6 meson: Fix searching of qt5/qt6 tools with qmake 2023-08-04 16:40:21 +01:00
raw1394 Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
shout2 shout: fix minimum requirement to libshout >= 2.4.3 2022-09-19 20:50:25 +03:00
soup souphttpsrc: Chain finalize call to parent 2023-09-27 11:27:02 +00:00
speex meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
taglib meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
twolame meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
vpx vpx: Complete high bitdepth vp9 en/decoding support 2022-11-04 05:37:58 +09:00
wavpack meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
meson.build add new plugin for Qt 6 rendering inside a QML scene 2022-11-24 16:11:04 +11:00