Merge pull request #1727 from checkraisefold/test_linux_fix

Fix OpenGL video sinkchain crash
This commit is contained in:
DeepBlueV7.X 2024-05-24 21:37:01 +00:00 committed by GitHub
commit d3561d7939
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -339,21 +339,16 @@ newVideoSinkChain(GstElement *pipe)
g_object_set(compositor, "background", 1, nullptr); g_object_set(compositor, "background", 1, nullptr);
switch (graphicsApi) { switch (graphicsApi) {
case QSGRendererInterface::OpenGL: { case QSGRendererInterface::OpenGL: {
GstElement *glupload = gst_element_factory_make("glupload", nullptr);
GstElement *glcolorconvert = gst_element_factory_make("glcolorconvert", nullptr);
GstElement *qmlglsink = gst_element_factory_make("qml6glsink", nullptr); GstElement *qmlglsink = gst_element_factory_make("qml6glsink", nullptr);
GstElement *glsinkbin = gst_element_factory_make("glsinkbin", nullptr); GstElement *glsinkbin = gst_element_factory_make("glsinkbin", nullptr);
g_object_set(qmlglsink, "widget", WebRTCSession::instance().getVideoItem(), nullptr); g_object_set(qmlglsink, "widget", WebRTCSession::instance().getVideoItem(), nullptr);
g_object_set(glsinkbin, "sink", qmlglsink, nullptr); g_object_set(glsinkbin, "sink", qmlglsink, nullptr);
gst_bin_add_many( gst_bin_add_many(GST_BIN(pipe), queue, compositor, glsinkbin, nullptr);
GST_BIN(pipe), queue, compositor, glupload, glcolorconvert, glsinkbin, nullptr); gst_element_link_many(queue, compositor, glsinkbin, nullptr);
gst_element_link_many(queue, compositor, glupload, glcolorconvert, glsinkbin, nullptr);
gst_element_sync_state_with_parent(queue); gst_element_sync_state_with_parent(queue);
gst_element_sync_state_with_parent(compositor); gst_element_sync_state_with_parent(compositor);
gst_element_sync_state_with_parent(glupload);
gst_element_sync_state_with_parent(glcolorconvert);
gst_element_sync_state_with_parent(glsinkbin); gst_element_sync_state_with_parent(glsinkbin);
// to propagate context (hopefully) // to propagate context (hopefully)