diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-05-21 10:50:12 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-05-25 11:35:02 +0000 |
commit | 7cf832df46781cab742fc71e6ff379e1059cadb4 (patch) | |
tree | b0c450d86aa4cd6eb48abffda91350fdd45ca6f6 /tests | |
parent | 454ce528541989e9116df1b7aff49085b5a37274 (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.cpp | 7 | ||||
-rw-r--r-- | tests/auto/unit/mockbackend/qmockcamera.h | 8 | ||||
-rw-r--r-- | tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp | 34 |
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); |