diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-05-21 11:11:52 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-05-21 12:28:27 +0000 |
commit | 57a11c18947a032e70d5d416e0c42d0fe8a10977 (patch) | |
tree | 54864e2c3ecfc563e564ab4663de49472d47f9ff /tests | |
parent | c7108362fe5c11db4e268231f7dda1c44e6978a1 (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.cpp | 50 |
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) |