From d406a1c34131d6c9431034b41f77e0547b05eb07 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Fri, 10 Feb 2023 22:43:55 +0100 Subject: [PATCH] GstEnginePipeline: Use playbin3 with GStreamer 1.22.0 and higher --- src/engine/gstenginepipeline.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/engine/gstenginepipeline.cpp b/src/engine/gstenginepipeline.cpp index 36fc3ee4..419c0c1e 100644 --- a/src/engine/gstenginepipeline.cpp +++ b/src/engine/gstenginepipeline.cpp @@ -287,7 +287,15 @@ bool GstEnginePipeline::InitFromUrl(const QByteArray &stream_url, const QUrl &or original_url_ = original_url; end_offset_nanosec_ = end_nanosec; - pipeline_ = CreateElement("playbin", "pipeline", nullptr, error); + guint version_major = 0, version_minor = 0, version_micro = 0, version_nano = 0; + gst_plugins_base_version(&version_major, &version_minor, &version_micro, &version_nano); + if (QVersionNumber::compare(QVersionNumber(version_major, version_minor, version_micro), QVersionNumber(1, 22, 0)) >= 0) { + pipeline_ = CreateElement("playbin3", "pipeline", nullptr, error); + } + else { + pipeline_ = CreateElement("playbin", "pipeline", nullptr, error); + } + if (!pipeline_) return false; pad_added_cb_id_ = CHECKED_GCONNECT(G_OBJECT(pipeline_), "pad-added", &PadAddedCallback, this);