summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-05-21 11:11:52 +0200
committerLars Knoll <lars.knoll@qt.io>2021-05-21 12:28:27 +0000
commit57a11c18947a032e70d5d416e0c42d0fe8a10977 (patch)
tree54864e2c3ecfc563e564ab4663de49472d47f9ff /tests
parentc7108362fe5c11db4e268231f7dda1c44e6978a1 (diff)
Correctly resolve the actual output file for QMediaEncoder
The gstreamer media encoder remembered the last location as something that could be re-used for the next encoding run. Fix that and ensure it'll pick a new file name if the requested output location is empty. Change-Id: I02077c8632fc106701e8c5081ee8b5e1361b18df Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp50
1 files changed, 26 insertions, 24 deletions
diff --git a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
index 5692a3845..1db116d7b 100644
--- a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
+++ b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
@@ -471,35 +471,37 @@ void tst_QCameraBackend::testVideoRecording()
QTRY_COMPARE(camera->status(), QCamera::ActiveStatus);
QTRY_COMPARE(recorder.status(), QMediaEncoder::StoppedStatus);
- //record 1 seconds clip
- recorder.record();
- QTRY_COMPARE(recorder.status(), QMediaEncoder::RecordingStatus);
- QCOMPARE(recorderStatusSignal.last().first().value<QMediaEncoder::Status>(), recorder.status());
- QTest::qWait(1000);
- recorderStatusSignal.clear();
- recorder.stop();
- bool foundFinalizingStatus = false;
- for (auto &list : recorderStatusSignal) {
- if (qvariant_cast<QMediaEncoder::Status>(list.first()) == QMediaEncoder::FinalizingStatus) {
- foundFinalizingStatus = true;
- break;
+ for (int recordings = 0; recordings < 2; ++recordings) {
+ //record 200ms clip
+ recorder.record();
+ QTRY_COMPARE(recorder.status(), QMediaEncoder::RecordingStatus);
+ QCOMPARE(recorderStatusSignal.last().first().value<QMediaEncoder::Status>(), recorder.status());
+ QTest::qWait(200);
+ recorderStatusSignal.clear();
+ recorder.stop();
+ bool foundFinalizingStatus = false;
+ for (auto &list : recorderStatusSignal) {
+ if (qvariant_cast<QMediaEncoder::Status>(list.first()) == QMediaEncoder::FinalizingStatus) {
+ foundFinalizingStatus = true;
+ break;
+ }
}
- }
- QVERIFY(foundFinalizingStatus);
- QTRY_COMPARE(recorder.status(), QMediaEncoder::StoppedStatus);
- QCOMPARE(recorderStatusSignal.last().first().value<QMediaEncoder::Status>(), recorder.status());
+ QVERIFY(foundFinalizingStatus);
+ QTRY_COMPARE(recorder.status(), QMediaEncoder::StoppedStatus);
+ QCOMPARE(recorderStatusSignal.last().first().value<QMediaEncoder::Status>(), recorder.status());
- QVERIFY(errorSignal.isEmpty());
- QVERIFY(recorderErrorSignal.isEmpty());
+ QVERIFY(errorSignal.isEmpty());
+ QVERIFY(recorderErrorSignal.isEmpty());
- QString fileName = recorder.actualLocation().toLocalFile();
- QVERIFY(!fileName.isEmpty());
+ QString fileName = recorder.actualLocation().toLocalFile();
+ QVERIFY(!fileName.isEmpty());
- QVERIFY(QFileInfo(fileName).size() > 0);
- QFile(fileName).remove();
+ QVERIFY(QFileInfo(fileName).size() > 0);
+ QFile(fileName).remove();
- QTRY_COMPARE(recorder.status(), QMediaEncoder::StoppedStatus);
- QCOMPARE(recorderStatusSignal.last().first().value<QMediaEncoder::Status>(), recorder.status());
+ QTRY_COMPARE(recorder.status(), QMediaEncoder::StoppedStatus);
+ QCOMPARE(recorderStatusSignal.last().first().value<QMediaEncoder::Status>(), recorder.status());
+ }
}
QTEST_MAIN(tst_QCameraBackend)