From 92658f152656f6d8373e79be0b2bfe331857560a Mon Sep 17 00:00:00 2001 From: VaL Doroshchuk Date: Tue, 19 May 2020 12:34:39 +0200 Subject: iMX: Introduce QT_GSTREAMER_PLAYBIN_CONVERT to inject a converter in playbin Injects a converter between decoders and video sink. Pick-to: 5.15 Task-number: QTBUG-76179 Change-Id: If5fc8090bc1ade424a1157e94d83dc5a51051fd7 Reviewed-by: Samuli Piippo --- src/gsttools/qgstreamerplayersession.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/gsttools') diff --git a/src/gsttools/qgstreamerplayersession.cpp b/src/gsttools/qgstreamerplayersession.cpp index c6d2df810..5a00afc72 100644 --- a/src/gsttools/qgstreamerplayersession.cpp +++ b/src/gsttools/qgstreamerplayersession.cpp @@ -162,7 +162,15 @@ void QGstreamerPlayerSession::initPlaybin() } #if GST_CHECK_VERSION(1,0,0) - m_videoIdentity = gst_element_factory_make("identity", nullptr); // floating ref + static const auto convDesc = qEnvironmentVariable("QT_GSTREAMER_PLAYBIN_CONVERT"); + GError *err = nullptr; + auto convPipeline = !convDesc.isEmpty() ? convDesc.toLatin1().constData() : "identity"; + auto convElement = gst_parse_launch(convPipeline, &err); + if (err) { + qWarning() << "Error:" << convDesc << ":" << QLatin1String(err->message); + g_clear_error(&err); + } + m_videoIdentity = convElement; #else m_videoIdentity = GST_ELEMENT(g_object_new(gst_video_connector_get_type(), 0)); // floating ref g_signal_connect(G_OBJECT(m_videoIdentity), "connection-failed", G_CALLBACK(insertColorSpaceElement), (gpointer)this); -- cgit v1.2.3