diff options
-rw-r--r-- | src/multimedia/qmediaformat.cpp | 17 | ||||
-rw-r--r-- | src/multimedia/video/qvideosink.cpp | 8 |
2 files changed, 19 insertions, 6 deletions
diff --git a/src/multimedia/qmediaformat.cpp b/src/multimedia/qmediaformat.cpp index ccf926026..72b9a5118 100644 --- a/src/multimedia/qmediaformat.cpp +++ b/src/multimedia/qmediaformat.cpp @@ -198,6 +198,14 @@ 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; +} + /*! Returns a list of container formats that are supported for \a mode. @@ -208,7 +216,8 @@ QMimeType QMediaFormat::mimeType() const */ QList<QMediaFormat::FileFormat> QMediaFormat::supportedFileFormats(QMediaFormat::ConversionMode m) { - return QPlatformMediaIntegration::instance()->formatInfo()->supportedFileFormats(*this, m); + auto *fi = formatInfo(); + return fi != nullptr ? fi->supportedFileFormats(*this, m) : QList<QMediaFormat::FileFormat>{}; } /*! @@ -221,7 +230,8 @@ QList<QMediaFormat::FileFormat> QMediaFormat::supportedFileFormats(QMediaFormat: */ QList<QMediaFormat::VideoCodec> QMediaFormat::supportedVideoCodecs(QMediaFormat::ConversionMode m) { - return QPlatformMediaIntegration::instance()->formatInfo()->supportedVideoCodecs(*this, m); + auto *fi = formatInfo(); + return fi != nullptr ? fi->supportedVideoCodecs(*this, m) : QList<QMediaFormat::VideoCodec>{}; } /*! @@ -234,7 +244,8 @@ QList<QMediaFormat::VideoCodec> QMediaFormat::supportedVideoCodecs(QMediaFormat: */ QList<QMediaFormat::AudioCodec> QMediaFormat::supportedAudioCodecs(QMediaFormat::ConversionMode m) { - return QPlatformMediaIntegration::instance()->formatInfo()->supportedAudioCodecs(*this, m); + auto *fi = formatInfo(); + return fi != nullptr ? fi->supportedAudioCodecs(*this, m) : QList<QMediaFormat::AudioCodec>{}; } QString QMediaFormat::fileFormatName(QMediaFormat::FileFormat c) diff --git a/src/multimedia/video/qvideosink.cpp b/src/multimedia/video/qvideosink.cpp index 3776b603b..18afcbfad 100644 --- a/src/multimedia/video/qvideosink.cpp +++ b/src/multimedia/video/qvideosink.cpp @@ -157,7 +157,8 @@ void QVideoSink::setNativeWindowId(WId id) if (d->window == id) return; d->window = id; - d->videoSink->setWinId(id); + if (d->videoSink != nullptr) + d->videoSink->setWinId(id); } /*! @@ -228,7 +229,8 @@ void QVideoSink::setTargetRect(const QRectF &rect) if (d->targetRect == rect) return; d->targetRect = rect; - d->videoSink->setDisplayRect(rect.toRect()); + if (d->videoSink != nullptr) + d->videoSink->setDisplayRect(rect.toRect()); } float QVideoSink::brightness() const @@ -399,7 +401,7 @@ QPlatformVideoSink *QVideoSink::platformVideoSink() const */ QSize QVideoSink::videoSize() const { - return d->videoSink->nativeSize(); + return d->videoSink ? d->videoSink->nativeSize() : QSize{}; } void QVideoSink::setSource(QObject *source) |