diff options
author | Artem Dyomin <artem.dyomin@qt.io> | 2023-09-05 18:20:20 +0200 |
---|---|---|
committer | Artem Dyomin <artem.dyomin@qt.io> | 2023-09-06 13:15:07 +0000 |
commit | 13c9472acc761f772b0a14b80b24321b924d69e1 (patch) | |
tree | 3ce8f082433cf06c1148770b8ae68d9137e30291 /src/multimedia/qmediaformat.cpp | |
parent | ce53fdc205c17a70d8df5297916fa377d2f67c2a (diff) |
Fix potential thread-safety on lazy media format initialization
Let's have a common approach of lazy media format initialization
for all platforms.
The approach was introduced in some recent CR, but it hasn't been
integrated due to other reasons.
Pick-to: 6.5 6.6
Change-Id: I0fff558463753149d2381a2435f8ba300243f0a8
Reviewed-by: Pavel Dubsky <pavel.dubsky@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Diffstat (limited to 'src/multimedia/qmediaformat.cpp')
-rw-r--r-- | src/multimedia/qmediaformat.cpp | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/src/multimedia/qmediaformat.cpp b/src/multimedia/qmediaformat.cpp index 275cdf8b8..a05648636 100644 --- a/src/multimedia/qmediaformat.cpp +++ b/src/multimedia/qmediaformat.cpp @@ -455,14 +455,6 @@ QMimeType QMediaFormat::mimeType() const return QMimeDatabase().mimeTypeForName(QString::fromLatin1(mimeTypeForFormat[fmt + 1])); } -static QPlatformMediaFormatInfo *formatInfo() -{ - QPlatformMediaFormatInfo *result = nullptr; - if (auto *pi = QPlatformMediaIntegration::instance()) - result = pi->formatInfo(); - return result; -} - /*! \enum QMediaFormat::ConversionMode @@ -501,8 +493,7 @@ static QPlatformMediaFormatInfo *formatInfo() */ QList<QMediaFormat::FileFormat> QMediaFormat::supportedFileFormats(QMediaFormat::ConversionMode m) { - auto *fi = formatInfo(); - return fi != nullptr ? fi->supportedFileFormats(*this, m) : QList<QMediaFormat::FileFormat>{}; + return QPlatformMediaIntegration::instance()->formatInfo()->supportedFileFormats(*this, m); } /*! @@ -528,8 +519,7 @@ QList<QMediaFormat::FileFormat> QMediaFormat::supportedFileFormats(QMediaFormat: */ QList<QMediaFormat::VideoCodec> QMediaFormat::supportedVideoCodecs(QMediaFormat::ConversionMode m) { - auto *fi = formatInfo(); - return fi != nullptr ? fi->supportedVideoCodecs(*this, m) : QList<QMediaFormat::VideoCodec>{}; + return QPlatformMediaIntegration::instance()->formatInfo()->supportedVideoCodecs(*this, m); } /*! @@ -555,8 +545,7 @@ QList<QMediaFormat::VideoCodec> QMediaFormat::supportedVideoCodecs(QMediaFormat: */ QList<QMediaFormat::AudioCodec> QMediaFormat::supportedAudioCodecs(QMediaFormat::ConversionMode m) { - auto *fi = formatInfo(); - return fi != nullptr ? fi->supportedAudioCodecs(*this, m) : QList<QMediaFormat::AudioCodec>{}; + return QPlatformMediaIntegration::instance()->formatInfo()->supportedAudioCodecs(*this, m); } /*! |