summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem Dyomin <artem.dyomin@qt.io>2023-02-21 20:21:18 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-02-22 10:04:24 +0000
commit3fcec009087bc4f61922c961ced4e1734be7df56 (patch)
tree1269d3f6e6586d352fe6908fe69be7fda0fa3d35
parent3161f750488092ad022d51f00c2713cecbcd2135 (diff)
downloadqtmultimedia-3fcec009087bc4f61922c961ced4e1734be7df56.tar.gz
Add cmake var for explicit setting of default media backend
Embedded team needs a possibility to customize the default media backend on compile-time; gstreamer backend is likely to be used for their aims. The most flexible solution is adding cmake env var as it's hard to match required embedded platforms to gstreamer in QtMM. QT_DEFAULT_MEDIA_BACKEND has been added. If it's not set, the logic is the same as before the change. Change-Id: Id81b0e2b82edd6195c310bc8f2ad40555c6b1a2d Reviewed-by: Lars Knoll <lars@knoll.priv.no> (cherry picked from commit 8c2d8219ddda4dd28443af8e85a9a3eaf9f95972) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/multimedia/CMakeLists.txt5
-rw-r--r--src/multimedia/platform/qplatformmediaintegration.cpp6
2 files changed, 11 insertions, 0 deletions
diff --git a/src/multimedia/CMakeLists.txt b/src/multimedia/CMakeLists.txt
index 1f0a3c749..d46d7832b 100644
--- a/src/multimedia/CMakeLists.txt
+++ b/src/multimedia/CMakeLists.txt
@@ -319,3 +319,8 @@ qt_internal_add_shaders(Multimedia "shaders_gl_macos_linear"
OUTPUTS
"shaders/rectsampler_bgra_linear.frag.qsb"
)
+
+if (DEFINED QT_DEFAULT_MEDIA_BACKEND)
+ target_compile_definitions(Multimedia
+ PRIVATE QT_DEFAULT_MEDIA_BACKEND="${QT_DEFAULT_MEDIA_BACKEND}")
+endif()
diff --git a/src/multimedia/platform/qplatformmediaintegration.cpp b/src/multimedia/platform/qplatformmediaintegration.cpp
index 75eee37d4..546267ac8 100644
--- a/src/multimedia/platform/qplatformmediaintegration.cpp
+++ b/src/multimedia/platform/qplatformmediaintegration.cpp
@@ -47,6 +47,12 @@ static QStringList availableBackends()
static QString defaultBackend(const QStringList &backends)
{
+#ifdef QT_DEFAULT_MEDIA_BACKEND
+ auto backend = QString::fromUtf8(QT_DEFAULT_MEDIA_BACKEND);
+ if (backends.contains(backend))
+ return backend;
+#endif
+
#if defined(Q_OS_DARWIN) || defined(Q_OS_LINUX) || defined(Q_OS_WINDOWS) || defined(Q_OS_ANDROID)
// Return ffmpeg backend by default.
// Platform backends for the OS list are optionally available but have limited support.