diff options
author | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2012-01-31 10:08:49 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-01 08:10:20 +0100 |
commit | a22a0195f146e83174ee4eacffe33c161ab39e50 (patch) | |
tree | ecc72efc2790bce4238c8c1c9df223f54c0b3651 /tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp | |
parent | 9d3102efe29e294971b30aa2ce00be5cb7db5e05 (diff) |
Split QMediaRecorder::setEncodingSettings to separate setters.
It's easier to change only the necessary part of encoding settings.
The settings are applied during the next event loop or before recording
starts.
Change-Id: Ia2b5c93826a302212aa7f79a0c75e4cbaaf1dd7a
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp')
-rw-r--r-- | tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp | 56 |
1 files changed, 50 insertions, 6 deletions
diff --git a/tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp b/tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp index f252aa4c8..550809ec7 100644 --- a/tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp +++ b/tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp @@ -83,6 +83,7 @@ private slots: void testEncodingSettings(); void testAudioSettings(); void testVideoSettings(); + void testSettingsApplied(); void nullMetaDataControl(); void isMetaDataAvailable(); @@ -171,7 +172,7 @@ void tst_QMediaRecorder::testNullService() QCOMPARE(continuous, false); QCOMPARE(recorder.audioSettings(), QAudioEncoderSettings()); QCOMPARE(recorder.videoSettings(), QVideoEncoderSettings()); - QCOMPARE(recorder.containerMimeType(), QString()); + QCOMPARE(recorder.containerFormat(), QString()); QVERIFY(!recorder.isMuted()); recorder.setMuted(true); QVERIFY(!recorder.isMuted()); @@ -205,7 +206,7 @@ void tst_QMediaRecorder::testNullControls() QCOMPARE(continuous, false); QCOMPARE(recorder.audioSettings(), QAudioEncoderSettings()); QCOMPARE(recorder.videoSettings(), QVideoEncoderSettings()); - QCOMPARE(recorder.containerMimeType(), QString()); + QCOMPARE(recorder.containerFormat(), QString()); recorder.setOutputLocation(QUrl("file://test/save/file.mp4")); QCOMPARE(recorder.outputLocation(), QUrl()); @@ -222,7 +223,7 @@ void tst_QMediaRecorder::testNullControls() QCOMPARE(recorder.audioSettings(), QAudioEncoderSettings()); QCOMPARE(recorder.videoSettings(), QVideoEncoderSettings()); - QCOMPARE(recorder.containerMimeType(), QString()); + QCOMPARE(recorder.containerFormat(), QString()); QSignalSpy spy(&recorder, SIGNAL(stateChanged(QMediaRecorder::State))); @@ -410,7 +411,7 @@ void tst_QMediaRecorder::testEncodingSettings() QCOMPARE(videoSettings.quality(), QtMultimedia::NormalQuality); QCOMPARE(videoSettings.encodingMode(), QtMultimedia::ConstantQualityEncoding); - QString format = capture->containerMimeType(); + QString format = capture->containerFormat(); QCOMPARE(format, QString()); audioSettings.setCodec("audio/mpeg"); @@ -428,11 +429,13 @@ void tst_QMediaRecorder::testEncodingSettings() format = QString("mov"); - capture->setEncodingSettings(audioSettings,videoSettings,format); + capture->setAudioSettings(audioSettings); + capture->setVideoSettings(videoSettings); + capture->setContainerFormat(format); QCOMPARE(capture->audioSettings(), audioSettings); QCOMPARE(capture->videoSettings(), videoSettings); - QCOMPARE(capture->containerMimeType(), format); + QCOMPARE(capture->containerFormat(), format); } void tst_QMediaRecorder::testAudioSettings() @@ -688,6 +691,47 @@ void tst_QMediaRecorder::testVideoSettings() QVERIFY(settings1 != settings2); } +void tst_QMediaRecorder::testSettingsApplied() +{ + MockMediaRecorderControl recorderControl(0); + MockMediaRecorderService service(0, &recorderControl); + MockMediaObject object(0, &service); + + //if the media recorder is not configured after construction + //the settings are applied in the next event loop + QMediaRecorder recorder(&object); + QCOMPARE(recorderControl.m_settingAppliedCount, 0); + QTest::qWait(10); + QCOMPARE(recorderControl.m_settingAppliedCount, 1); + + QVideoEncoderSettings videoSettings; + videoSettings.setResolution(640,480); + recorder.setVideoSettings(videoSettings); + + QAudioEncoderSettings audioSettings; + audioSettings.setQuality(QtMultimedia::HighQuality); + recorder.setAudioSettings(audioSettings); + + recorder.setContainerFormat("mkv"); + + QCOMPARE(recorderControl.m_settingAppliedCount, 1); + QTest::qWait(10); + QCOMPARE(recorderControl.m_settingAppliedCount, 2); + + //encoder settings are applied before recording if changed + audioSettings.setQuality(QtMultimedia::VeryHighQuality); + recorder.setAudioSettings(audioSettings); + + QCOMPARE(recorderControl.m_settingAppliedCount, 2); + recorder.record(); + QCOMPARE(recorderControl.m_settingAppliedCount, 3); + + recorder.stop(); + + //applySettings is not called if setting has not changes + recorder.record(); + QCOMPARE(recorderControl.m_settingAppliedCount, 3); +} void tst_QMediaRecorder::nullMetaDataControl() { |