diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-04-21 14:10:58 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-04-28 07:12:27 +0000 |
commit | 921e8a593d7a289f57a71f30698646edc2f2b444 (patch) | |
tree | b3c86082dc62b42704bf92b186a6fb026e6c9c49 /src | |
parent | 1caf848d3dabfe732cab702cdaf2e56016724861 (diff) |
Re-enable tst_qvideowidget and fix most errors in the test
Change-Id: I77bf951d9e334d92b65d0f9f5c37c22033e91060
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Doris Verria <doris.verria@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/multimedia/video/qvideosink.cpp | 13 | ||||
-rw-r--r-- | src/multimedia/video/qvideosink.h | 9 | ||||
-rw-r--r-- | src/multimediawidgets/qvideowidget.cpp | 33 | ||||
-rw-r--r-- | src/multimediawidgets/qvideowidget_p.h | 4 |
4 files changed, 28 insertions, 31 deletions
diff --git a/src/multimedia/video/qvideosink.cpp b/src/multimedia/video/qvideosink.cpp index 7e2adb6b5..ee4c81cc6 100644 --- a/src/multimedia/video/qvideosink.cpp +++ b/src/multimedia/video/qvideosink.cpp @@ -177,12 +177,13 @@ void QVideoSink::setFullScreen(bool fullscreen) return; d->fullScreen = fullscreen; d->videoSink->setFullScreen(fullscreen); + emit fullScreenChanged(d->fullScreen); } /*! Returns true when rendering full screen. */ -bool QVideoSink::isFullscreen() const +bool QVideoSink::isFullScreen() const { return d->fullScreen; } @@ -196,7 +197,9 @@ void QVideoSink::setAspectRatioMode(Qt::AspectRatioMode mode) { if (d->aspectRatioMode == mode) return; + d->aspectRatioMode = mode; d->videoSink->setAspectRatioMode(mode); + emit aspectRatioModeChanged(mode); } QRectF QVideoSink::targetRect() const @@ -219,10 +222,12 @@ float QVideoSink::brightness() const void QVideoSink::setBrightness(float brightness) { + brightness = qBound(-1., brightness, 1.); if (d->brightness == brightness) return; d->brightness = brightness; d->videoSink->setBrightness(brightness); + emit brightnessChanged(brightness); } float QVideoSink::contrast() const @@ -232,10 +237,12 @@ float QVideoSink::contrast() const void QVideoSink::setContrast(float contrast) { + contrast = qBound(-1., contrast, 1.); if (d->contrast == contrast) return; d->contrast = contrast; d->videoSink->setContrast(contrast); + emit contrastChanged(contrast); } float QVideoSink::hue() const @@ -245,10 +252,12 @@ float QVideoSink::hue() const void QVideoSink::setHue(float hue) { + hue = qBound(-1., hue, 1.); if (d->hue == hue) return; d->hue = hue; d->videoSink->setHue(hue); + emit hueChanged(hue); } float QVideoSink::saturation() const @@ -258,10 +267,12 @@ float QVideoSink::saturation() const void QVideoSink::setSaturation(float saturation) { + saturation = qBound(-1., saturation, 1.); if (d->saturation == saturation) return; d->saturation = saturation; d->videoSink->setSaturation(saturation); + emit saturationChanged(saturation); } Qt::BGMode QVideoSink::backgroundMode() const diff --git a/src/multimedia/video/qvideosink.h b/src/multimedia/video/qvideosink.h index 20053c6e2..7092f80bf 100644 --- a/src/multimedia/video/qvideosink.h +++ b/src/multimedia/video/qvideosink.h @@ -69,7 +69,7 @@ public: void setRhi(QRhi *rhi); void setFullScreen(bool fullscreen); - bool isFullscreen() const; + bool isFullScreen() const; Qt::AspectRatioMode aspectRatioMode() const; void setAspectRatioMode(Qt::AspectRatioMode mode); @@ -100,6 +100,13 @@ Q_SIGNALS: // would never get called in windowed mode void newVideoFrame(const QVideoFrame &frame) const; + void fullScreenChanged(bool fullScreen); + void brightnessChanged(float brightness); + void contrastChanged(float contrast); + void hueChanged(float hue); + void saturationChanged(float saturation); + void aspectRatioModeChanged(Qt::AspectRatioMode mode); + private: QVideoSinkPrivate *d = nullptr; }; diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp index 4e597a5af..eebda495b 100644 --- a/src/multimediawidgets/qvideowidget.cpp +++ b/src/multimediawidgets/qvideowidget.cpp @@ -112,6 +112,10 @@ QVideoWidget::QVideoWidget(QWidget *parent) d_ptr->videoSink->setNativeWindowId(winId()); connect(d_ptr->videoSink, SIGNAL(newVideoFrame(const QVideoFrame &)), this, SLOT(_q_newFrame(const QVideoFrame &))); + connect(d_ptr->videoSink, &QVideoSink::brightnessChanged, this, &QVideoWidget::brightnessChanged); + connect(d_ptr->videoSink, &QVideoSink::contrastChanged, this, &QVideoWidget::contrastChanged); + connect(d_ptr->videoSink, &QVideoSink::hueChanged, this, &QVideoWidget::hueChanged); + connect(d_ptr->videoSink, &QVideoSink::saturationChanged, this, &QVideoWidget::saturationChanged); } /*! @@ -201,7 +205,7 @@ float QVideoWidget::brightness() const void QVideoWidget::setBrightness(float brightness) { Q_D(QVideoWidget); - + d->videoSink->setBrightness(brightness); float boundedBrightness = qBound(-1., brightness, 1.); if (boundedBrightness == d->videoSink->brightness()) @@ -235,14 +239,7 @@ float QVideoWidget::contrast() const void QVideoWidget::setContrast(float contrast) { Q_D(QVideoWidget); - - float boundedContrast = qBound(-1., contrast, 1.); - - if (boundedContrast == d->videoSink->contrast()) - return; - - d->videoSink->setContrast(boundedContrast); - emit contrastChanged(boundedContrast); + d->videoSink->setContrast(contrast); } /*! @@ -268,14 +265,7 @@ float QVideoWidget::hue() const void QVideoWidget::setHue(float hue) { Q_D(QVideoWidget); - - float boundedHue = qBound(-1., hue, 1.); - - if (boundedHue == d->videoSink->hue()) - return; - - d->videoSink->setHue(boundedHue); - emit hueChanged(boundedHue); + d->videoSink->setHue(hue); } /*! @@ -301,14 +291,7 @@ float QVideoWidget::saturation() const void QVideoWidget::setSaturation(float saturation) { Q_D(QVideoWidget); - - float boundedSaturation = qBound(-1., saturation, 1.); - - if (boundedSaturation == d->videoSink->saturation()) - return; - - d->videoSink->setSaturation(boundedSaturation); - emit saturationChanged(boundedSaturation); + d->videoSink->setSaturation(saturation); } /*! diff --git a/src/multimediawidgets/qvideowidget_p.h b/src/multimediawidgets/qvideowidget_p.h index a5842bb17..e425ff315 100644 --- a/src/multimediawidgets/qvideowidget_p.h +++ b/src/multimediawidgets/qvideowidget_p.h @@ -64,10 +64,6 @@ class QVideoWidgetPrivate Q_DECLARE_PUBLIC(QVideoWidget) public: QVideoWidget *q_ptr = nullptr; - int brightness = 0; - int contrast = 0; - int hue = 0; - int saturation = 0; Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio; Qt::WindowFlags nonFullScreenFlags; bool wasFullScreen = false; |