diff options
author | Jøger Hansegård <joger.hansegard@qt.io> | 2024-03-05 21:49:07 +0100 |
---|---|---|
committer | Artem Dyomin <artem.dyomin@qt.io> | 2024-03-10 12:22:56 +0000 |
commit | 77a026fa418aa6236a466a93e652f2ab6494e50c (patch) | |
tree | ec3ecf2787d0a9bc075e1e090e319b2d1c91e6be /src/multimedia | |
parent | 554a73e004c7b0159e39e14e2241e1ff614f32f1 (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.cpp | 32 | ||||
-rw-r--r-- | src/multimedia/platform/qplatformmediaintegration_p.h | 2 |
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(); |