diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-04-26 17:23:21 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-04-28 08:46:06 +0000 |
commit | 2f322997e3ee6651b7517520355b7eda5f190925 (patch) | |
tree | fba8cae6d0759c748d140e774990b5f041f7b01a /src | |
parent | 2dceee374cad71ad204f04acd967cc939fa93b5f (diff) |
Fix test failures in tst_qvideowidget and tst_qgraphicsvideoitem
This passes now, but might require some more massaging to get
correct display rects for the widget case.
Change-Id: I4673240bb1afacfe714580e586e293c09f690d11
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/multimedia/platform/qplatformmediaintegration.cpp | 11 | ||||
-rw-r--r-- | src/multimediawidgets/qgraphicsvideoitem.cpp | 16 | ||||
-rw-r--r-- | src/multimediawidgets/qvideowidget.cpp | 1 |
3 files changed, 14 insertions, 14 deletions
diff --git a/src/multimedia/platform/qplatformmediaintegration.cpp b/src/multimedia/platform/qplatformmediaintegration.cpp index 4dca72a17..dd9843f2d 100644 --- a/src/multimedia/platform/qplatformmediaintegration.cpp +++ b/src/multimedia/platform/qplatformmediaintegration.cpp @@ -66,19 +66,22 @@ namespace { struct Holder { ~Holder() { - delete instance; + delete nativeInstance; + nativeInstance = nullptr; instance = nullptr; } QPlatformMediaIntegration *instance = nullptr; + QPlatformMediaIntegration *nativeInstance = nullptr; } holder; } QPlatformMediaIntegration *QPlatformMediaIntegration::instance() { - if (!holder.instance) { - holder.instance = new PlatformIntegration; - } + if (!holder.nativeInstance) + holder.nativeInstance = new PlatformIntegration; + if (!holder.instance) + holder.instance = holder.nativeInstance; return holder.instance; } diff --git a/src/multimediawidgets/qgraphicsvideoitem.cpp b/src/multimediawidgets/qgraphicsvideoitem.cpp index 240a9eb32..e72ce90ad 100644 --- a/src/multimediawidgets/qgraphicsvideoitem.cpp +++ b/src/multimediawidgets/qgraphicsvideoitem.cpp @@ -64,10 +64,8 @@ public: QGraphicsVideoItem *q_ptr = nullptr; QVideoSink *sink = nullptr; - Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio; QRectF rect; QRectF boundingRect; - QRectF sourceRect; QSizeF nativeSize; QVideoFrame m_frame; @@ -81,7 +79,10 @@ void QGraphicsVideoItemPrivate::updateRects() q_ptr->prepareGeometryChange(); boundingRect = rect; - if (aspectRatioMode == Qt::KeepAspectRatio && !nativeSize.isEmpty()) { + if (nativeSize.isEmpty()) + return; + + if (sink->aspectRatioMode() == Qt::KeepAspectRatio) { QSizeF size = nativeSize; size.scale(rect.size(), Qt::KeepAspectRatio); @@ -93,13 +94,10 @@ void QGraphicsVideoItemPrivate::updateRects() void QGraphicsVideoItemPrivate::_q_present(const QVideoFrame &frame) { m_frame = frame; - if (q_ptr->isObscured()) { - q_ptr->update(boundingRect); - } else { - q_ptr->update(boundingRect); - } + q_ptr->update(boundingRect); + if (frame.isValid()) { - const QSize &size = frame.size(); + const QSize &size = frame.surfaceFormat().viewport().size(); if (nativeSize != size) { nativeSize = size; diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp index ff7b488d6..f6a6d6f0c 100644 --- a/src/multimediawidgets/qvideowidget.cpp +++ b/src/multimediawidgets/qvideowidget.cpp @@ -179,7 +179,6 @@ void QVideoWidget::setFullScreen(bool fullScreen) } d->wasFullScreen = fullScreen; d->videoSink->setFullScreen(fullScreen); - emit fullScreenChanged(fullScreen); } /*! |