Qmlsink example on imx8qxp board doesn't render videotstsrc (only white screen)

Hello! Colleague of @roodani here.

I’ve attached GDB to the example and it was not hanging, just never calling the scheduled job (SetPlaying::run). I’ve narrowed it down to the root view just never hitting the QQuickWindow::BeforeSynchronizingStage. Replacing that with QQuickWindow::NoStage made it work.

On the desktop, it does function as expected with the original code, but on our SOC (NXP iMX.8) with our build of Qt from Yocto Scarthgap, it doesn’t.

It also worked with a single shot QTimer setting the pipeline’s state to GST_STATE_PLAYING after the rest of the application’s UI was loaded, so I assume it’s just an issue with scheduling jobs based on QQuickWindow’s render stages.

In case anyone hits the same issue, this is the minimal fix patch that worked for us:

diff --git a/subprojects/gst-plugins-good/tests/examples/qt6/qmlsink/main.cpp   
b/subprojects/gst-plugins-good/tests/examples/qt6/qmlsink/main.cpp  
index f5cd3cf07f..a28ab98fb4 100644  
--- a/subprojects/gst-plugins-good/tests/examples/qt6/qmlsink/main.cpp  
+++ b/subprojects/gst-plugins-good/tests/examples/qt6/qmlsink/main.cpp  
@@ -101,7 +101,7 @@ int main(int argc, char *argv[])  
 g_object_set(sink, "widget", videoItem, NULL);  
 rootObject->scheduleRenderJob (new SetPlaying (pipeline),  
- QQuickWindow::BeforeSynchronizingStage);  
+ QQuickWindow::NoStage);  
 ret = app.exec();