Color conversion seems to be redundant before the sink (upload too, but removing that breaks stuff)

This commit is contained in:
Nicolas Werner 2024-04-05 04:15:29 +02:00
parent f1722d5f64
commit a415b39bf9
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9

View file

@ -333,19 +333,16 @@ newVideoSinkChain(GstElement *pipe)
GstElement *queue = gst_element_factory_make("queue", nullptr);
GstElement *compositor = gst_element_factory_make("compositor", "compositor");
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 *glsinkbin = gst_element_factory_make("glsinkbin", nullptr);
g_object_set(compositor, "background", 1, nullptr);
g_object_set(qmlglsink, "widget", WebRTCSession::instance().getVideoItem(), nullptr);
g_object_set(glsinkbin, "sink", qmlglsink, nullptr);
gst_bin_add_many(
GST_BIN(pipe), queue, compositor, glupload, glcolorconvert, glsinkbin, nullptr);
gst_element_link_many(queue, compositor, glupload, glcolorconvert, glsinkbin, nullptr);
gst_bin_add_many(GST_BIN(pipe), queue, compositor, glupload, glsinkbin, nullptr);
gst_element_link_many(queue, compositor, glupload, glsinkbin, nullptr);
gst_element_sync_state_with_parent(queue);
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);
// to propagate context (hopefully)
@ -624,7 +621,6 @@ WebRTCSession::havePlugins(bool isVideo,
static constexpr std::initializer_list<const char *> video_elements = {
"compositor",
"glcolorconvert",
"glsinkbin",
"glupload",
"qml6glsink",