diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-08-24 19:45:39 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-08-25 23:11:22 +0200 |
commit | 0c00ef07b03ffe9c5e704a2834a04816f88b8d51 (patch) | |
tree | 487be58fdc58a56ff61086b8814ee64c0e67fb1b /src/multimediawidgets/qgraphicsvideoitem.cpp | |
parent | 5ef8dd45acf2b9a1d0c8a6c49cad2258f2fad95e (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.cpp | 14 |
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 }); } /*! |