From fa3c22a0bd392a10af9466be17bcaf153c76e3fc Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 8 Apr 2021 14:29:32 +0200 Subject: Cleanups in QVideoSink Remove render() and the transform and opacity properties. render() because it won't work that way, and the other two properties because they aren't needed. Those properties can be set up before drawing and QVideoSink doesn't need to know about that. Change-Id: Ib4e45336a59bd1c5b6d95448dbbf858571e8e0ea Reviewed-by: Doris Verria Reviewed-by: Lars Knoll --- src/multimedia/video/qvideosink.cpp | 33 +-------------------------------- src/multimedia/video/qvideosink.h | 11 ----------- 2 files changed, 1 insertion(+), 43 deletions(-) (limited to 'src/multimedia/video') diff --git a/src/multimedia/video/qvideosink.cpp b/src/multimedia/video/qvideosink.cpp index b996392b4..d9c678b5a 100644 --- a/src/multimedia/video/qvideosink.cpp +++ b/src/multimedia/video/qvideosink.cpp @@ -77,8 +77,6 @@ public: int saturation = 0; int hue = 0; Qt::BGMode backgroundMode = Qt::OpaqueMode; - QMatrix4x4 transform; - float opacity = 1.; }; QVideoSink::QVideoSink(QObject *parent) @@ -203,26 +201,6 @@ void QVideoSink::setSaturation(int saturation) d->videoSink->setSaturation(saturation); } -QMatrix4x4 QVideoSink::transform() const -{ - return d->transform; -} - -void QVideoSink::setTransform(const QMatrix4x4 &transform) -{ - d->transform = transform; -} - -float QVideoSink::opacity() const -{ - return d->opacity; -} - -void QVideoSink::setOpacity(float opacity) -{ - d->opacity = opacity; -} - Qt::BGMode QVideoSink::backgroundMode() const { return d->backgroundMode; @@ -233,17 +211,11 @@ void QVideoSink::setBackgroundMode(Qt::BGMode mode) d->backgroundMode = mode; } -void QVideoSink::render(const QVideoFrame &frame) -{ - Q_UNUSED(frame); - -} - void QVideoSink::paint(QPainter *painter, const QVideoFrame &f) { QVideoFrame frame(f); if (!frame.isValid()) { - painter->fillRect(d->targetRect, Qt::black); + painter->fillRect(d->targetRect, painter->background()); return; } @@ -294,7 +266,6 @@ void QVideoSink::paint(QPainter *painter, const QVideoFrame &f) if (frame.map(QVideoFrame::ReadOnly)) { QImage image = frame.toImage(); - auto oldOpacity = painter->opacity(); const QTransform oldTransform = painter->transform(); QTransform transform = oldTransform; if (scanLineDirection == QVideoSurfaceFormat::BottomToTop) { @@ -309,10 +280,8 @@ void QVideoSink::paint(QPainter *painter, const QVideoFrame &f) targetRect = QRectF(0, targetRect.y(), targetRect.width(), targetRect.height()); } painter->setTransform(transform); - painter->setOpacity(d->opacity); painter->drawImage(targetRect, image, source); painter->setTransform(oldTransform); - painter->setOpacity(oldOpacity); frame.unmap(); } else if (frame.isValid()) { diff --git a/src/multimedia/video/qvideosink.h b/src/multimedia/video/qvideosink.h index f94a43d2e..524a2af14 100644 --- a/src/multimedia/video/qvideosink.h +++ b/src/multimedia/video/qvideosink.h @@ -101,20 +101,9 @@ public: int saturation() const; void setSaturation(int saturation); - // ignored in windowed mode (GraphicsType == NativeWindow) - QMatrix4x4 transform() const; - void setTransform(const QMatrix4x4 &transform); - - // ignored in windowed mode? - float opacity() const; - void setOpacity(float opacity); - Qt::BGMode backgroundMode() const; void setBackgroundMode(Qt::BGMode mode); - // Thread safe - void render(const QVideoFrame &frame); - void paint(QPainter *painter, const QVideoFrame &frame); QPlatformVideoSink *platformVideoSink(); -- cgit v1.2.3