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 *queue = gst_element_factory_make("queue", nullptr);
GstElement *compositor = gst_element_factory_make("compositor", "compositor"); GstElement *compositor = gst_element_factory_make("compositor", "compositor");
GstElement *glupload = gst_element_factory_make("glupload", nullptr); 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(compositor, "background", 1, nullptr); g_object_set(compositor, "background", 1, 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, glupload, glsinkbin, nullptr);
GST_BIN(pipe), queue, compositor, glupload, glcolorconvert, glsinkbin, nullptr); gst_element_link_many(queue, compositor, glupload, 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(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)
@ -624,7 +621,6 @@ WebRTCSession::havePlugins(bool isVideo,
static constexpr std::initializer_list<const char *> video_elements = { static constexpr std::initializer_list<const char *> video_elements = {
"compositor", "compositor",
"glcolorconvert",
"glsinkbin", "glsinkbin",
"glupload", "glupload",
"qml6glsink", "qml6glsink",