gstreamer/subprojects/gst-plugins-good/ext
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
..
aalib meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
adaptivedemux2 adaptivedemux2: Do not submit_transfer when cancelled 2023-10-05 20:55:00 +00:00
amrnb amrnb, amrwbdec: move AMR-NB and AMR-WB plugins to -good 2023-05-02 23:33:12 +00:00
amrwbdec amrnb, amrwbdec: move AMR-NB and AMR-WB plugins to -good 2023-05-02 23:33:12 +00: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: signal in output caps that the output is framed 2023-10-22 00:25:50 +00:00
gdk_pixbuf gdkpixbuf: drop use of GSlice 2023-01-24 15:25:06 +00:00
gtk gtk: Fix critical caused by pointer movement when stream is getting ready 2023-07-17 14:53:43 -04:00
jack jack: tone down log ERRORs in case no JACK server is running 2023-05-08 21:20:20 +00:00
jpeg jpegdec: be stricter when detecting interlaced video 2023-05-25 18:34:34 +00: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 pngenc: Allocate a single GstMemory per frame 2023-07-05 08:41:14 +00: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:13:49 +02:00
qt qmlglsrc: sync on the streaming thread 2023-10-19 08:19:05 +00:00
qt6 qml6glsrc: sync on the streaming thread 2023-10-23 08:43:16 +00:00
raw1394 Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
shout2 shout2send: use version template in user-agent property 2023-08-07 10:41:16 +00:00
soup souphttpsrc: Chain finalize call to parent 2023-09-27 09:01:43 +02: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 GstCustomMeta: Use simplified API where possible 2023-09-27 18:46:34 +00:00
wavpack gst-plugins-good: re-indent with GNU indent 2.2.12 2023-03-17 03:18:54 +00:00
meson.build amrnb, amrwbdec: move AMR-NB and AMR-WB plugins to -good 2023-05-02 23:33:12 +00:00