summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-05-21 10:50:12 +0200
committerLars Knoll <lars.knoll@qt.io>2021-05-25 11:35:02 +0000
commit7cf832df46781cab742fc71e6ff379e1059cadb4 (patch)
treeb0c450d86aa4cd6eb48abffda91350fdd45ca6f6 /tests
parent454ce528541989e9116df1b7aff49085b5a37274 (diff)
Some QCamera API cleanups
* Add QCamera::Features flags to determine supported features. * Rename (manual)shutterSpeed to (manual)ExposureTime, as digital cameras don't have a shutter anymore. Implement support for those feature flags on gstreamer, and add support for querying iso sensitivity, exposure time and setting a manual iso value. Change-Id: I776aa4bc11b02e4de4b02fe33aaccfb83e220ef7 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp7
-rw-r--r--tests/auto/unit/mockbackend/qmockcamera.h8
-rw-r--r--tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp34
3 files changed, 26 insertions, 23 deletions
diff --git a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
index fd2b03429..5e27ab1fd 100644
--- a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
+++ b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
@@ -361,6 +361,9 @@ void tst_QCameraBackend::testExposureCompensation()
//it should be possible to set exposure parameters in Unloaded state
QCOMPARE(camera.exposureCompensation(), 0.);
+ if (!(camera.supportedFeatures() & QCamera::Feature::ExposureCompensation))
+ return;
+
camera.setExposureCompensation(1.0);
QCOMPARE(camera.exposureCompensation(), 1.0);
QTRY_COMPARE(exposureCompensationSignal.count(), 1);
@@ -420,8 +423,8 @@ void tst_QCameraBackend::testExposureMode()
QTRY_COMPARE(camera.status(), QCamera::ActiveStatus);
QCOMPARE(camera.exposureMode(), QCamera::ExposureManual);
- camera.setManualShutterSpeed(.02); // ~20ms should be supported by most cameras
- QVERIFY(camera.manualShutterSpeed() > .01 && camera.manualShutterSpeed() < .04);
+ camera.setManualExposureTime(.02); // ~20ms should be supported by most cameras
+ QVERIFY(camera.manualExposureTime() > .01 && camera.manualExposureTime() < .04);
}
camera.setExposureMode(QCamera::ExposureAuto);
diff --git a/tests/auto/unit/mockbackend/qmockcamera.h b/tests/auto/unit/mockbackend/qmockcamera.h
index b5fe3f745..6e0894bf6 100644
--- a/tests/auto/unit/mockbackend/qmockcamera.h
+++ b/tests/auto/unit/mockbackend/qmockcamera.h
@@ -150,16 +150,16 @@ public:
if (!simpleCamera)
isoSensitivityChanged(qBound(100, iso, 800));
}
- void setManualShutterSpeed(float secs) override
+ void setManualExposureTime(float secs) override
{
if (!simpleCamera)
- shutterSpeedChanged(qBound(0.001, secs, 1.));
+ exposureTimeChanged(qBound(0.001, secs, 1.));
}
- float shutterSpeed() const override
+ float exposureTime() const override
{
if (simpleCamera)
return -1.;
- return manualShutterSpeed() > 0 ? manualShutterSpeed() : .05;
+ return manualExposureTime() > 0 ? manualExposureTime() : .05;
}
bool isWhiteBalanceModeSupported(QCamera::WhiteBalanceMode mode) const override
diff --git a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
index fa2410ae2..85bf07a76 100644
--- a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
+++ b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
@@ -173,13 +173,13 @@ void tst_QCamera::testSimpleCameraExposure()
camera.setAutoIsoSensitivity();
QCOMPARE(camera.isoSensitivity(), -1);
- QVERIFY(camera.shutterSpeed() < 0);
+ QVERIFY(camera.exposureTime() < 0);
QCOMPARE(camera.minimumShutterSpeed(), -1.);
QCOMPARE(camera.maximumShutterSpeed(), -1.);
- camera.setAutoShutterSpeed();
- QVERIFY(camera.shutterSpeed() < 0);
- camera.setManualShutterSpeed(1/128.0);
- QVERIFY(camera.shutterSpeed() < 0);
+ camera.setAutoExposureTime();
+ QVERIFY(camera.exposureTime() < 0);
+ camera.setManualExposureTime(1/128.0);
+ QVERIFY(camera.exposureTime() < 0);
}
void tst_QCamera::testSimpleCameraFocus()
@@ -389,20 +389,20 @@ void tst_QCamera::testCameraExposure()
qreal maxShutterSpeed = camera.maximumShutterSpeed();
QVERIFY(minShutterSpeed > 0);
QVERIFY(maxShutterSpeed > 0);
- QVERIFY(camera.shutterSpeed() >= minShutterSpeed);
- QVERIFY(camera.shutterSpeed() <= maxShutterSpeed);
+ QVERIFY(camera.exposureTime() >= minShutterSpeed);
+ QVERIFY(camera.exposureTime() <= maxShutterSpeed);
- camera.setAutoShutterSpeed();
- QVERIFY(camera.shutterSpeed() >= minShutterSpeed);
- QVERIFY(camera.shutterSpeed() <= maxShutterSpeed);
+ camera.setAutoExposureTime();
+ QVERIFY(camera.exposureTime() >= minShutterSpeed);
+ QVERIFY(camera.exposureTime() <= maxShutterSpeed);
- camera.setManualShutterSpeed(0);
- QCOMPARE(camera.shutterSpeed(), minShutterSpeed);
+ camera.setManualExposureTime(0);
+ QCOMPARE(camera.exposureTime(), minShutterSpeed);
- camera.setManualShutterSpeed(10000);
- QCOMPARE(camera.shutterSpeed(), maxShutterSpeed);
+ camera.setManualExposureTime(10000);
+ QCOMPARE(camera.exposureTime(), maxShutterSpeed);
- camera.setAutoShutterSpeed();
+ camera.setAutoExposureTime();
}
void tst_QCamera::testCameraFocus()
@@ -915,11 +915,11 @@ void tst_QCamera::testSignalShutterSpeedChanged()
QCamera camera;
session.setCamera(&camera);
- QSignalSpy spySignalShutterSpeedChanged(&camera, SIGNAL(shutterSpeedChanged(qreal)));
+ QSignalSpy spySignalShutterSpeedChanged(&camera, SIGNAL(exposureTimeChanged(qreal)));
QVERIFY(spySignalShutterSpeedChanged.count() ==0);
- camera.setManualShutterSpeed(2.0);//set the ManualShutterSpeed to 2.0
+ camera.setManualExposureTime(2.0);//set the ManualShutterSpeed to 2.0
QTest::qWait(100);
QVERIFY(spySignalShutterSpeedChanged.count() ==1);