summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-04-21 14:10:58 +0200
committerLars Knoll <lars.knoll@qt.io>2021-04-28 07:12:27 +0000
commit921e8a593d7a289f57a71f30698646edc2f2b444 (patch)
treeb3c86082dc62b42704bf92b186a6fb026e6c9c49 /src
parent1caf848d3dabfe732cab702cdaf2e56016724861 (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.cpp13
-rw-r--r--src/multimedia/video/qvideosink.h9
-rw-r--r--src/multimediawidgets/qvideowidget.cpp33
-rw-r--r--src/multimediawidgets/qvideowidget_p.h4
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;