summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVaL Doroshchuk <valentyn.doroshchuk@qt.io>2020-05-19 12:34:39 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-05-28 08:11:43 +0000
commitf8fc4b74558c1e809e0920cb582cb1f95ef9283f (patch)
tree67e944f1ad8f9c5ffa472b5f288de1179704be5b
parent89f92578ece66aaa50e03cacd81434cd18006185 (diff)
downloadqtmultimedia-f8fc4b74558c1e809e0920cb582cb1f95ef9283f.tar.gz
iMX: Introduce QT_GSTREAMER_PLAYBIN_CONVERT to inject a converter in playbin
Injects a converter between decoders and video sink. Task-number: QTBUG-76179 Change-Id: If5fc8090bc1ade424a1157e94d83dc5a51051fd7 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io> (cherry picked from commit 92658f152656f6d8373e79be0b2bfe331857560a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/gsttools/qgstreamerplayersession.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gsttools/qgstreamerplayersession.cpp b/src/gsttools/qgstreamerplayersession.cpp
index f7f3b7ca1..adf11b022 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);