summaryrefslogtreecommitdiffstats
path: root/src/multimediawidgets/qgraphicsvideoitem.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-04-26 17:23:21 +0200
committerLars Knoll <lars.knoll@qt.io>2021-04-28 08:46:06 +0000
commit2f322997e3ee6651b7517520355b7eda5f190925 (patch)
treefba8cae6d0759c748d140e774990b5f041f7b01a /src/multimediawidgets/qgraphicsvideoitem.cpp
parent2dceee374cad71ad204f04acd967cc939fa93b5f (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/multimediawidgets/qgraphicsvideoitem.cpp')
-rw-r--r--src/multimediawidgets/qgraphicsvideoitem.cpp16
1 files changed, 7 insertions, 9 deletions
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;