summaryrefslogtreecommitdiffstats
path: root/src/multimediawidgets/qgraphicsvideoitem.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-08-24 19:45:39 +0200
committerLars Knoll <lars.knoll@qt.io>2021-08-25 23:11:22 +0200
commit0c00ef07b03ffe9c5e704a2834a04816f88b8d51 (patch)
tree487be58fdc58a56ff61086b8814ee64c0e67fb1b /src/multimediawidgets/qgraphicsvideoitem.cpp
parent5ef8dd45acf2b9a1d0c8a6c49cad2258f2fad95e (diff)
Clean up the QVideoSink API
The next couple of commits will simplify how we handle HW accelerated rendering by also going through the RHI code path for QVideoWidget. This implies that we can remove quite a few properties from QVideoSink, as those were only required for the old windowed code path. This does for the moment disable all HW acceleration on QVideoWidget. Support for that will be re-added in follow-up changes. Pick-to: 6.2 Change-Id: I1474f44ed7468eb263fbf4de75f75f9af16b7773 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
Diffstat (limited to 'src/multimediawidgets/qgraphicsvideoitem.cpp')
-rw-r--r--src/multimediawidgets/qgraphicsvideoitem.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/multimediawidgets/qgraphicsvideoitem.cpp b/src/multimediawidgets/qgraphicsvideoitem.cpp
index aa6649b15..42b94b717 100644
--- a/src/multimediawidgets/qgraphicsvideoitem.cpp
+++ b/src/multimediawidgets/qgraphicsvideoitem.cpp
@@ -64,6 +64,7 @@ public:
QRectF boundingRect;
QSizeF nativeSize;
QVideoFrame m_frame;
+ Qt::AspectRatioMode m_aspectRatioMode = Qt::KeepAspectRatio;
void updateRects();
@@ -78,7 +79,7 @@ void QGraphicsVideoItemPrivate::updateRects()
if (nativeSize.isEmpty())
return;
- if (sink->aspectRatioMode() == Qt::KeepAspectRatio) {
+ if (m_aspectRatioMode == Qt::KeepAspectRatio) {
QSizeF size = nativeSize;
size.scale(rect.size(), Qt::KeepAspectRatio);
@@ -133,7 +134,6 @@ QGraphicsVideoItem::QGraphicsVideoItem(QGraphicsItem *parent)
{
d_ptr->q_ptr = this;
d_ptr->sink = new QVideoSink(this);
- d_ptr->sink->setBackgroundMode(Qt::TransparentMode);
connect(d_ptr->sink, SIGNAL(newVideoFrame(const QVideoFrame &)), this, SLOT(_q_present(const QVideoFrame &)));
}
@@ -169,15 +169,17 @@ QVideoSink *QGraphicsVideoItem::videoSink() const
Qt::AspectRatioMode QGraphicsVideoItem::aspectRatioMode() const
{
- return d_func()->sink->aspectRatioMode();
+ return d_func()->m_aspectRatioMode;
}
void QGraphicsVideoItem::setAspectRatioMode(Qt::AspectRatioMode mode)
{
Q_D(QGraphicsVideoItem);
+ if (d->m_aspectRatioMode == mode)
+ return;
+ d->m_aspectRatioMode = mode;
d->updateRects();
- d->sink->setAspectRatioMode(mode);
}
/*!
@@ -199,7 +201,6 @@ void QGraphicsVideoItem::setOffset(const QPointF &offset)
d->rect.moveTo(offset);
d->updateRects();
- d->sink->setTargetRect(d->rect);
}
/*!
@@ -221,7 +222,6 @@ void QGraphicsVideoItem::setSize(const QSizeF &size)
d->rect.setSize(size.isValid() ? size : QSizeF(0, 0));
d->updateRects();
- d->sink->setTargetRect(d->rect);
}
/*!
@@ -258,7 +258,7 @@ void QGraphicsVideoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem
Q_UNUSED(option);
Q_UNUSED(widget);
- d->m_frame.paint(painter, d->rect, { Qt::transparent, d->sink->aspectRatioMode() });
+ d->m_frame.paint(painter, d->rect, { Qt::transparent, d->m_aspectRatioMode });
}
/*!