summaryrefslogtreecommitdiffstats
path: root/src/multimedia
diff options
context:
space:
mode:
authorJøger Hansegård <joger.hansegard@qt.io>2024-03-05 21:49:07 +0100
committerArtem Dyomin <artem.dyomin@qt.io>2024-03-10 12:22:56 +0000
commit77a026fa418aa6236a466a93e652f2ab6494e50c (patch)
treeec3ecf2787d0a9bc075e1e090e319b2d1c91e6be /src/multimedia
parent554a73e004c7b0159e39e14e2241e1ff614f32f1 (diff)
Add tests that verify backend availability in QtMultimedia
This test verifies that the expected media backends are available on all platforms. Task-number: QTBUG-122976 Pick-to: 6.7 6.6 6.5 Change-Id: Ie21cf933fedaedfb3c06f0980fb13d47729ed69c Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Diffstat (limited to 'src/multimedia')
-rw-r--r--src/multimedia/platform/qplatformmediaintegration.cpp32
-rw-r--r--src/multimedia/platform/qplatformmediaintegration_p.h2
2 files changed, 18 insertions, 16 deletions
diff --git a/src/multimedia/platform/qplatformmediaintegration.cpp b/src/multimedia/platform/qplatformmediaintegration.cpp
index 1eb113b28..dfa248c56 100644
--- a/src/multimedia/platform/qplatformmediaintegration.cpp
+++ b/src/multimedia/platform/qplatformmediaintegration.cpp
@@ -40,21 +40,6 @@ Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
static const auto FFmpegBackend = QStringLiteral("ffmpeg");
-static QStringList availableBackends()
-{
- QStringList list;
-
- if (QFactoryLoader *fl = loader()) {
- const auto keyMap = fl->keyMap();
- for (auto it = keyMap.constBegin(); it != keyMap.constEnd(); ++it)
- if (!list.contains(it.value()))
- list << it.value();
- }
-
- qCDebug(qLcMediaPlugin) << "Available backends" << list;
- return list;
-}
-
static QString defaultBackend(const QStringList &backends)
{
#ifdef QT_DEFAULT_MEDIA_BACKEND
@@ -84,7 +69,7 @@ struct InstanceHolder
if (!QCoreApplication::instance())
qCCritical(qLcMediaPlugin()) << "Qt Multimedia requires a QCoreApplication instance";
- const auto backends = availableBackends();
+ const QStringList backends = QPlatformMediaIntegration::availableBackends();
QString backend = QString::fromUtf8(qgetenv("QT_MEDIA_BACKEND"));
if (backend.isEmpty() && !backends.isEmpty())
backend = defaultBackend(backends);
@@ -202,6 +187,21 @@ QPlatformMediaDevices *QPlatformMediaIntegration::mediaDevices()
// clang-format on
+QStringList QPlatformMediaIntegration::availableBackends()
+{
+ QStringList list;
+
+ if (QFactoryLoader *fl = loader()) {
+ const auto keyMap = fl->keyMap();
+ for (auto it = keyMap.constBegin(); it != keyMap.constEnd(); ++it)
+ if (!list.contains(it.value()))
+ list << it.value();
+ }
+
+ qCDebug(qLcMediaPlugin) << "Available backends" << list;
+ return list;
+}
+
QPlatformMediaIntegration::QPlatformMediaIntegration() = default;
QPlatformMediaIntegration::~QPlatformMediaIntegration() = default;
diff --git a/src/multimedia/platform/qplatformmediaintegration_p.h b/src/multimedia/platform/qplatformmediaintegration_p.h
index d47687586..9c3d79a79 100644
--- a/src/multimedia/platform/qplatformmediaintegration_p.h
+++ b/src/multimedia/platform/qplatformmediaintegration_p.h
@@ -93,6 +93,8 @@ public:
QPlatformMediaDevices *mediaDevices();
+ static QStringList availableBackends();
+
protected:
virtual QPlatformMediaFormatInfo *createFormatInfo();