|
1 /**************************************************************************** |
|
2 ** |
|
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
4 ** All rights reserved. |
|
5 ** Contact: Nokia Corporation (qt-info@nokia.com) |
|
6 ** |
|
7 ** This file is part of the Qt Mobility Components. |
|
8 ** |
|
9 ** $QT_BEGIN_LICENSE:LGPL$ |
|
10 ** No Commercial Usage |
|
11 ** This file contains pre-release code and may not be distributed. |
|
12 ** You may use this file in accordance with the terms and conditions |
|
13 ** contained in the Technology Preview License Agreement accompanying |
|
14 ** this package. |
|
15 ** |
|
16 ** GNU Lesser General Public License Usage |
|
17 ** Alternatively, this file may be used under the terms of the GNU Lesser |
|
18 ** General Public License version 2.1 as published by the Free Software |
|
19 ** Foundation and appearing in the file LICENSE.LGPL included in the |
|
20 ** packaging of this file. Please review the following information to |
|
21 ** ensure the GNU Lesser General Public License version 2.1 requirements |
|
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
|
23 ** |
|
24 ** In addition, as a special exception, Nokia gives you certain additional |
|
25 ** rights. These rights are described in the Nokia Qt LGPL Exception |
|
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
|
27 ** |
|
28 ** If you have questions regarding the use of this file, please contact |
|
29 ** Nokia at qt-info@nokia.com. |
|
30 ** |
|
31 ** |
|
32 ** |
|
33 ** |
|
34 ** |
|
35 ** |
|
36 ** |
|
37 ** |
|
38 ** $QT_END_LICENSE$ |
|
39 ** |
|
40 ****************************************************************************/ |
|
41 |
|
42 #include <QtTest/QtTest> |
|
43 #include <QDebug> |
|
44 #include <qmediaobject.h> |
|
45 #include <qmediacontrol.h> |
|
46 #include <qmediaservice.h> |
|
47 #include <qmediarecordercontrol.h> |
|
48 #include <qmediarecorder.h> |
|
49 #include <qaudioendpointselector.h> |
|
50 #include <qaudioencodercontrol.h> |
|
51 #include <qmediacontainercontrol.h> |
|
52 #include <QtMultimedia/qaudioformat.h> |
|
53 #include <qaudiocapturesource.h> |
|
54 |
|
55 #define QTRY_COMPARE(a,e) \ |
|
56 for (int _i = 0; _i < 5000; _i += 100) { \ |
|
57 if ((a) == (e)) break; \ |
|
58 QTest::qWait(100); \ |
|
59 } \ |
|
60 QCOMPARE(a, e) |
|
61 |
|
62 #define QTRY_VERIFY(a) \ |
|
63 for (int _i = 0; _i < 5000; _i += 100) { \ |
|
64 if (a) break; \ |
|
65 QTest::qWait(100); \ |
|
66 } \ |
|
67 QVERIFY(a) |
|
68 |
|
69 QT_USE_NAMESPACE |
|
70 class tst_QMediaRecorder: public QObject |
|
71 { |
|
72 Q_OBJECT |
|
73 |
|
74 public slots: |
|
75 void initTestCase(); |
|
76 void cleanupTestCase(); |
|
77 |
|
78 private slots: |
|
79 |
|
80 // Positive test cases |
|
81 void testMediaRecorderObject(); |
|
82 void testAudioSink(); |
|
83 void testAudioEndPointSelector(); |
|
84 void testDefaultAudioEncodingSettings(); |
|
85 void testAudioWav(); |
|
86 void testAudioWavSr8kHz(); |
|
87 void testAudioWavSr16kHz(); |
|
88 void testAudioWavSr32kHz(); |
|
89 void testAudioWavSr96kHz(); |
|
90 void testAudioWavSr8kHzStereo(); |
|
91 void testAudioWavSr16kHzStereo(); |
|
92 void testAudioWavSr32kHzStereo(); |
|
93 void testAudioWavSr96kHzStereo(); |
|
94 void testAudioWavQualityVeryLow(); |
|
95 void testAudioWavQualityLow(); |
|
96 void testAudioWavQualityNormal(); |
|
97 void testAudioWavQualityHigh(); |
|
98 void testAudioWavQualityVeryHigh(); |
|
99 // Negetive test cases |
|
100 void testAudioWavSr4kHz(); |
|
101 void testAudioWavSr8kHz5Channel(); |
|
102 |
|
103 // Positive test cases |
|
104 void testAudioAmr(); |
|
105 void testAudioAmrBr4750bps(); |
|
106 void testAudioAmrBr5150bps(); |
|
107 void testAudioAmrBr5900bps(); |
|
108 void testAudioAmrBr6700bps(); |
|
109 void testAudioAmrBr7400bps(); |
|
110 void testAudioAmrBr7950bps(); |
|
111 void testAudioAmrBr10200bps(); |
|
112 void testAudioAmrBr12200bps(); |
|
113 void testAudioAmrQualityVeryLow(); |
|
114 void testAudioAmrQualityLow(); |
|
115 void testAudioAmrQualityNormal(); |
|
116 void testAudioAmrQualityHigh(); |
|
117 void testAudioAmrQualityVeryHigh(); |
|
118 // Negetive test cases |
|
119 void testAudioAmrSr8kHzMono(); |
|
120 void testAudioAmrStereo(); |
|
121 void testAudioAmrSr16kHz(); |
|
122 |
|
123 // Positive test cases |
|
124 void testAudioMpeg(); |
|
125 void testAudioMpegBr32kSr8kHz(); |
|
126 void testAudioMpegBr32kbpsSr8kHzStereo(); |
|
127 void testAudioMpegBr128kbpsSr16kHz(); |
|
128 void testAudioMpegBr128kbpsSr16kHzStereo(); |
|
129 void testAudioMpegBr256kbpsSr48kHz(); |
|
130 void testAudioMpegBr256kbpsSr48kHzStereo(); |
|
131 void testAudioMpegQualityVeryLow(); |
|
132 void testAudioMpegQualityLow(); |
|
133 void testAudioMpegQualityNormal(); |
|
134 void testAudioMpegQualityHigh(); |
|
135 void testAudioMpegQualityVeryHigh(); |
|
136 // Negetive test cases |
|
137 void testAudioMpegBr16kSr8kHz(); |
|
138 |
|
139 |
|
140 private: |
|
141 |
|
142 QUrl nextFileName(QDir outputDir, QString appendName, QString ext); |
|
143 |
|
144 QAudioEncoderControl *audioEncoder; |
|
145 QAudioEndpointSelector *audioEndpoint; |
|
146 QMediaRecorder *audiocapture; |
|
147 QAudioCaptureSource *captureSource; |
|
148 }; |
|
149 |
|
150 void tst_QMediaRecorder::initTestCase() |
|
151 { |
|
152 qRegisterMetaType<QMediaRecorder::State>("QMediaRecorder::State"); |
|
153 qRegisterMetaType<QMediaRecorder::Error>("QMediaRecorder::Error"); |
|
154 |
|
155 captureSource = new QAudioCaptureSource; |
|
156 audiocapture = new QMediaRecorder(captureSource); |
|
157 |
|
158 audioEndpoint = qobject_cast<QAudioEndpointSelector*>(audiocapture->service()->control(QAudioEndpointSelector_iid)); |
|
159 audioEncoder = qobject_cast<QAudioEncoderControl*>(audiocapture->service()->control(QAudioEncoderControl_iid)); |
|
160 } |
|
161 |
|
162 void tst_QMediaRecorder::cleanupTestCase() |
|
163 { |
|
164 delete audiocapture; |
|
165 delete captureSource; |
|
166 } |
|
167 |
|
168 void tst_QMediaRecorder::testMediaRecorderObject() |
|
169 { |
|
170 //audioocontainer types |
|
171 QCOMPARE(audiocapture->audioCodecDescription("pcm"), QString("pcm")); |
|
172 QCOMPARE(audiocapture->audioCodecDescription("amr"), QString("amr")); |
|
173 QCOMPARE(audiocapture->audioCodecDescription("aac"), QString("aac")); |
|
174 QCOMPARE(audiocapture->containerDescription("audio/wav"), QString("wav container")); |
|
175 QCOMPARE(audiocapture->containerDescription("audio/amr"), QString("amr File format")); |
|
176 QCOMPARE(audiocapture->containerDescription("audio/mpeg"), QString("mpeg container")); |
|
177 QCOMPARE(audiocapture->containerMimeType(), QString("audio/wav")); |
|
178 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
179 QCOMPARE(audiocapture->errorString(), QString()); |
|
180 QCOMPARE(audiocapture->outputLocation().toLocalFile(), QString()); |
|
181 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
182 QCOMPARE(audiocapture->supportedAudioCodecs().count(), 3); // "pcm", "amr", "aac"); |
|
183 QAudioEncoderSettings settings; |
|
184 settings.setCodec("pcm"); |
|
185 QCOMPARE(audiocapture->supportedAudioSampleRates(settings).count(), 12); |
|
186 bool isContinuous; |
|
187 audiocapture->supportedAudioSampleRates(settings, &isContinuous); |
|
188 QCOMPARE(isContinuous, false); |
|
189 QCOMPARE(audiocapture->supportedContainers().count(), 3); // "audio/wav", "audio/amr", "audio/mpeg"); |
|
190 } |
|
191 |
|
192 void tst_QMediaRecorder::testAudioSink() |
|
193 { |
|
194 audiocapture->setOutputLocation(QUrl("test.wav")); |
|
195 QUrl s = audiocapture->outputLocation(); |
|
196 QCOMPARE(s.toString(), QString("test.wav")); |
|
197 } |
|
198 |
|
199 void tst_QMediaRecorder::testAudioEndPointSelector() |
|
200 { |
|
201 QSignalSpy audioSignal(audioEndpoint,SIGNAL(activeEndpointChanged(QString))); |
|
202 QVERIFY(audioEndpoint->availableEndpoints().count() == 1); |
|
203 QVERIFY(audioEndpoint->defaultEndpoint().compare("Default Mic") == 0); |
|
204 audioEndpoint->setActiveEndpoint("Default Mic"); |
|
205 QVERIFY(audioEndpoint->activeEndpoint().compare("Default Mic") == 0); |
|
206 QVERIFY(audioSignal.count() == 1); |
|
207 QVERIFY(audioEndpoint->endpointDescription("Default Mic").compare("Default Mic") == 0); |
|
208 } |
|
209 |
|
210 void tst_QMediaRecorder::testDefaultAudioEncodingSettings() |
|
211 { |
|
212 QAudioEncoderSettings audioSettings = audiocapture->audioSettings(); |
|
213 QCOMPARE(audioSettings.codec(), QString("pcm")); |
|
214 QCOMPARE(audiocapture->containerMimeType(), QString("audio/wav")); |
|
215 QCOMPARE(audioSettings.bitRate(), 0); |
|
216 QCOMPARE(audioSettings.channelCount(), 1); |
|
217 QCOMPARE(audioSettings.encodingMode(), QtMultimedia::ConstantQualityEncoding); |
|
218 QCOMPARE(audioSettings.quality(), QtMultimedia::VeryLowQuality); |
|
219 QCOMPARE(audioSettings.sampleRate(), 8000); |
|
220 } |
|
221 |
|
222 void tst_QMediaRecorder::testAudioWav() |
|
223 { |
|
224 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
225 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
226 QTest::qWait(500); // wait for recorder to initialize itself |
|
227 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "", "wav")); |
|
228 audiocapture->record(); |
|
229 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
230 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
231 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
232 QCOMPARE(audiocapture->errorString(), QString()); |
|
233 QCOMPARE(stateSignal.count(), 1); |
|
234 QTest::qWait(5000); // wait for 5 seconds |
|
235 audiocapture->pause(); |
|
236 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
237 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
238 QCOMPARE(stateSignal.count(), 2); |
|
239 audiocapture->stop(); |
|
240 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
241 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
242 QCOMPARE(stateSignal.count(), 3); |
|
243 } |
|
244 |
|
245 void tst_QMediaRecorder::testAudioWavSr8kHz() |
|
246 { |
|
247 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
248 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr8kHz", "wav")); |
|
249 QAudioEncoderSettings audioSettings; |
|
250 audioSettings.setCodec("pcm"); |
|
251 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
252 audioSettings.setSampleRate(8000); |
|
253 QVideoEncoderSettings videoSettings; |
|
254 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
255 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
256 QTest::qWait(500); // wait for recorder to initialize itself |
|
257 audiocapture->record(); |
|
258 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
259 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
260 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
261 QCOMPARE(audiocapture->errorString(), QString()); |
|
262 QCOMPARE(stateSignal.count(), 1); |
|
263 QTest::qWait(5000); // wait for 5 seconds |
|
264 audiocapture->pause(); |
|
265 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
266 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
267 QCOMPARE(stateSignal.count(), 2); |
|
268 audiocapture->stop(); |
|
269 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
270 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
271 QCOMPARE(stateSignal.count(), 3); |
|
272 } |
|
273 |
|
274 void tst_QMediaRecorder::testAudioWavSr16kHz() |
|
275 { |
|
276 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
277 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr16kHz", "wav")); |
|
278 QAudioEncoderSettings audioSettings; |
|
279 audioSettings.setCodec("pcm"); |
|
280 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
281 audioSettings.setSampleRate(16000); |
|
282 QVideoEncoderSettings videoSettings; |
|
283 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
284 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
285 QTest::qWait(500); // wait for recorder to initialize itself |
|
286 audiocapture->record(); |
|
287 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
288 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
289 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
290 QCOMPARE(audiocapture->errorString(), QString()); |
|
291 QCOMPARE(stateSignal.count(), 1); |
|
292 QTest::qWait(5000); // wait for 5 seconds |
|
293 audiocapture->pause(); |
|
294 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
295 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
296 QCOMPARE(stateSignal.count(), 2); |
|
297 audiocapture->stop(); |
|
298 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
299 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
300 QCOMPARE(stateSignal.count(), 3); |
|
301 } |
|
302 |
|
303 void tst_QMediaRecorder::testAudioWavSr32kHz() |
|
304 { |
|
305 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
306 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr32kHz", "wav")); |
|
307 QAudioEncoderSettings audioSettings; |
|
308 audioSettings.setCodec("pcm"); |
|
309 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
310 audioSettings.setSampleRate(32000); |
|
311 QVideoEncoderSettings videoSettings; |
|
312 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
313 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
314 QTest::qWait(500); // wait for recorder to initialize itself |
|
315 audiocapture->record(); |
|
316 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
317 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
318 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
319 QCOMPARE(audiocapture->errorString(), QString()); |
|
320 QCOMPARE(stateSignal.count(), 1); |
|
321 QTest::qWait(5000); // wait for 5 seconds |
|
322 audiocapture->pause(); |
|
323 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
324 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
325 QCOMPARE(stateSignal.count(), 2); |
|
326 audiocapture->stop(); |
|
327 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
328 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
329 QCOMPARE(stateSignal.count(), 3); |
|
330 } |
|
331 |
|
332 void tst_QMediaRecorder::testAudioWavSr96kHz() |
|
333 { |
|
334 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
335 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr32kHz", "wav")); |
|
336 QAudioEncoderSettings audioSettings; |
|
337 audioSettings.setCodec("pcm"); |
|
338 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
339 audioSettings.setSampleRate(96000); |
|
340 QVideoEncoderSettings videoSettings; |
|
341 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
342 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
343 QTest::qWait(500); // wait for recorder to initialize itself |
|
344 audiocapture->record(); |
|
345 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
346 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
347 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
348 QCOMPARE(audiocapture->errorString(), QString()); |
|
349 QCOMPARE(stateSignal.count(), 1); |
|
350 QTest::qWait(5000); // wait for 5 seconds |
|
351 audiocapture->pause(); |
|
352 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
353 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
354 QCOMPARE(stateSignal.count(), 2); |
|
355 audiocapture->stop(); |
|
356 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
357 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
358 QCOMPARE(stateSignal.count(), 3); |
|
359 } |
|
360 |
|
361 void tst_QMediaRecorder::testAudioWavSr8kHzStereo() |
|
362 { |
|
363 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
364 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr8kHzStereo", "wav")); |
|
365 QAudioEncoderSettings audioSettings; |
|
366 audioSettings.setCodec("pcm"); |
|
367 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
368 audioSettings.setSampleRate(8000); |
|
369 audioSettings.setChannelCount(2); |
|
370 QVideoEncoderSettings videoSettings; |
|
371 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
372 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
373 QTest::qWait(500); // wait for recorder to initialize itself |
|
374 audiocapture->record(); |
|
375 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
376 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
377 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
378 QCOMPARE(audiocapture->errorString(), QString()); |
|
379 QCOMPARE(stateSignal.count(), 1); |
|
380 QTest::qWait(5000); // wait for 5 seconds |
|
381 audiocapture->pause(); |
|
382 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
383 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
384 QCOMPARE(stateSignal.count(), 2); |
|
385 audiocapture->stop(); |
|
386 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
387 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
388 QCOMPARE(stateSignal.count(), 3); |
|
389 } |
|
390 |
|
391 void tst_QMediaRecorder::testAudioWavSr16kHzStereo() |
|
392 { |
|
393 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
394 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr16kHzStereo", "wav")); |
|
395 QAudioEncoderSettings audioSettings; |
|
396 audioSettings.setCodec("pcm"); |
|
397 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
398 audioSettings.setSampleRate(16000); |
|
399 audioSettings.setChannelCount(2); |
|
400 QVideoEncoderSettings videoSettings; |
|
401 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
402 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
403 QTest::qWait(500); // wait for recorder to initialize itself |
|
404 audiocapture->record(); |
|
405 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
406 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
407 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
408 QCOMPARE(audiocapture->errorString(), QString()); |
|
409 QCOMPARE(stateSignal.count(), 1); |
|
410 QTest::qWait(5000); // wait for 5 seconds |
|
411 audiocapture->pause(); |
|
412 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
413 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
414 QCOMPARE(stateSignal.count(), 2); |
|
415 audiocapture->stop(); |
|
416 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
417 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
418 QCOMPARE(stateSignal.count(), 3); |
|
419 } |
|
420 |
|
421 void tst_QMediaRecorder::testAudioWavSr32kHzStereo() |
|
422 { |
|
423 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
424 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr32kHzStereo", "wav")); |
|
425 QAudioEncoderSettings audioSettings; |
|
426 audioSettings.setCodec("pcm"); |
|
427 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
428 audioSettings.setSampleRate(32000); |
|
429 audioSettings.setChannelCount(2); |
|
430 QVideoEncoderSettings videoSettings; |
|
431 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
432 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
433 QTest::qWait(500); // wait for recorder to initialize itself |
|
434 audiocapture->record(); |
|
435 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
436 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
437 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
438 QCOMPARE(audiocapture->errorString(), QString()); |
|
439 QCOMPARE(stateSignal.count(), 1); |
|
440 QTest::qWait(5000); // wait for 5 seconds |
|
441 audiocapture->pause(); |
|
442 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
443 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
444 QCOMPARE(stateSignal.count(), 2); |
|
445 audiocapture->stop(); |
|
446 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
447 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
448 QCOMPARE(stateSignal.count(), 3); |
|
449 } |
|
450 |
|
451 void tst_QMediaRecorder::testAudioWavSr96kHzStereo() |
|
452 { |
|
453 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
454 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr32kHzStereo", "wav")); |
|
455 QAudioEncoderSettings audioSettings; |
|
456 audioSettings.setCodec("pcm"); |
|
457 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
458 audioSettings.setSampleRate(96000); |
|
459 audioSettings.setChannelCount(2); |
|
460 QVideoEncoderSettings videoSettings; |
|
461 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
462 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
463 QTest::qWait(500); // wait for recorder to initialize itself |
|
464 audiocapture->record(); |
|
465 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
466 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
467 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
468 QCOMPARE(audiocapture->errorString(), QString()); |
|
469 QCOMPARE(stateSignal.count(), 1); |
|
470 QTest::qWait(5000); // wait for 5 seconds |
|
471 audiocapture->pause(); |
|
472 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
473 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
474 QCOMPARE(stateSignal.count(), 2); |
|
475 audiocapture->stop(); |
|
476 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
477 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
478 QCOMPARE(stateSignal.count(), 3); |
|
479 } |
|
480 |
|
481 void tst_QMediaRecorder::testAudioWavQualityVeryLow() |
|
482 { |
|
483 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
484 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "VeryLowQuality", "wav")); |
|
485 QAudioEncoderSettings audioSettings; |
|
486 audioSettings.setCodec("pcm"); |
|
487 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
488 audioSettings.setQuality(QtMultimedia::VeryLowQuality); |
|
489 QVideoEncoderSettings videoSettings; |
|
490 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
491 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
492 QTest::qWait(500); // wait for recorder to initialize itself |
|
493 audiocapture->record(); |
|
494 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
495 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
496 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
497 QCOMPARE(audiocapture->errorString(), QString()); |
|
498 QCOMPARE(stateSignal.count(), 1); |
|
499 QTest::qWait(5000); // wait for 5 seconds |
|
500 audiocapture->pause(); |
|
501 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
502 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
503 QCOMPARE(stateSignal.count(), 2); |
|
504 audiocapture->stop(); |
|
505 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
506 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
507 QCOMPARE(stateSignal.count(), 3); |
|
508 } |
|
509 |
|
510 void tst_QMediaRecorder::testAudioWavQualityLow() |
|
511 { |
|
512 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
513 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "LowQuality", "wav")); |
|
514 QAudioEncoderSettings audioSettings; |
|
515 audioSettings.setCodec("pcm"); |
|
516 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
517 audioSettings.setQuality(QtMultimedia::LowQuality); |
|
518 QVideoEncoderSettings videoSettings; |
|
519 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
520 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
521 QTest::qWait(500); // wait for recorder to initialize itself |
|
522 audiocapture->record(); |
|
523 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
524 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
525 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
526 QCOMPARE(audiocapture->errorString(), QString()); |
|
527 QCOMPARE(stateSignal.count(), 1); |
|
528 QTest::qWait(5000); // wait for 5 seconds |
|
529 audiocapture->pause(); |
|
530 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
531 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
532 QCOMPARE(stateSignal.count(), 2); |
|
533 audiocapture->stop(); |
|
534 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
535 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
536 QCOMPARE(stateSignal.count(), 3); |
|
537 } |
|
538 |
|
539 void tst_QMediaRecorder::testAudioWavQualityNormal() |
|
540 { |
|
541 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
542 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "NormalQuality", "wav")); |
|
543 QAudioEncoderSettings audioSettings; |
|
544 audioSettings.setCodec("pcm"); |
|
545 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
546 audioSettings.setQuality(QtMultimedia::NormalQuality); |
|
547 QVideoEncoderSettings videoSettings; |
|
548 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
549 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
550 QTest::qWait(500); // wait for recorder to initialize itself |
|
551 audiocapture->record(); |
|
552 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
553 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
554 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
555 QCOMPARE(audiocapture->errorString(), QString()); |
|
556 QCOMPARE(stateSignal.count(), 1); |
|
557 QTest::qWait(5000); // wait for 5 seconds |
|
558 audiocapture->pause(); |
|
559 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
560 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
561 QCOMPARE(stateSignal.count(), 2); |
|
562 audiocapture->stop(); |
|
563 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
564 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
565 QCOMPARE(stateSignal.count(), 3); |
|
566 } |
|
567 |
|
568 void tst_QMediaRecorder::testAudioWavQualityHigh() |
|
569 { |
|
570 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
571 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "HighQuality", "wav")); |
|
572 QAudioEncoderSettings audioSettings; |
|
573 audioSettings.setCodec("pcm"); |
|
574 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
575 audioSettings.setQuality(QtMultimedia::HighQuality); |
|
576 QVideoEncoderSettings videoSettings; |
|
577 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
578 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
579 QTest::qWait(500); // wait for recorder to initialize itself |
|
580 audiocapture->record(); |
|
581 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
582 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
583 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
584 QCOMPARE(audiocapture->errorString(), QString()); |
|
585 QCOMPARE(stateSignal.count(), 1); |
|
586 QTest::qWait(5000); // wait for 5 seconds |
|
587 audiocapture->pause(); |
|
588 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
589 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
590 QCOMPARE(stateSignal.count(), 2); |
|
591 audiocapture->stop(); |
|
592 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
593 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
594 QCOMPARE(stateSignal.count(), 3); |
|
595 } |
|
596 |
|
597 void tst_QMediaRecorder::testAudioWavQualityVeryHigh() |
|
598 { |
|
599 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
600 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "VeryHighQuality", "wav")); |
|
601 QAudioEncoderSettings audioSettings; |
|
602 audioSettings.setCodec("pcm"); |
|
603 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
604 audioSettings.setQuality(QtMultimedia::VeryHighQuality); |
|
605 QVideoEncoderSettings videoSettings; |
|
606 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
607 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
608 QTest::qWait(500); // wait for recorder to initialize itself |
|
609 audiocapture->record(); |
|
610 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
611 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
612 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
613 QCOMPARE(audiocapture->errorString(), QString()); |
|
614 QCOMPARE(stateSignal.count(), 1); |
|
615 QTest::qWait(5000); // wait for 5 seconds |
|
616 audiocapture->pause(); |
|
617 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
618 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
619 QCOMPARE(stateSignal.count(), 2); |
|
620 audiocapture->stop(); |
|
621 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
622 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
623 QCOMPARE(stateSignal.count(), 3); |
|
624 } |
|
625 |
|
626 void tst_QMediaRecorder::testAudioWavSr4kHz() |
|
627 { |
|
628 QSignalSpy errorSignal(audiocapture,SIGNAL(error(QMediaRecorder::Error))); |
|
629 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr441kHz", "wav")); |
|
630 QAudioEncoderSettings audioSettings; |
|
631 audioSettings.setCodec("pcm"); |
|
632 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
633 audioSettings.setSampleRate(4000); |
|
634 QVideoEncoderSettings videoSettings; |
|
635 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
636 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
637 QTest::qWait(500); // wait for recorder to initialize itself |
|
638 audiocapture->record(); |
|
639 QTRY_COMPARE(errorSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
640 QCOMPARE(audiocapture->error(), QMediaRecorder::ResourceError); |
|
641 QCOMPARE(audiocapture->errorString(), QString("Generic error")); |
|
642 } |
|
643 |
|
644 void tst_QMediaRecorder::testAudioWavSr8kHz5Channel() |
|
645 { |
|
646 QSignalSpy errorSignal(audiocapture,SIGNAL(error(QMediaRecorder::Error))); |
|
647 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr441kHz", "wav")); |
|
648 QAudioEncoderSettings audioSettings; |
|
649 audioSettings.setCodec("pcm"); |
|
650 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
651 audioSettings.setSampleRate(8000); |
|
652 audioSettings.setChannelCount(6); |
|
653 QVideoEncoderSettings videoSettings; |
|
654 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/wav")); |
|
655 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
656 QTest::qWait(500); // wait for recorder to initialize itself |
|
657 audiocapture->record(); |
|
658 QTRY_COMPARE(errorSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
659 QCOMPARE(audiocapture->error(), QMediaRecorder::ResourceError); |
|
660 QCOMPARE(audiocapture->errorString(), QString("Generic error")); |
|
661 } |
|
662 |
|
663 void tst_QMediaRecorder::testAudioAmr() |
|
664 { |
|
665 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
666 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "", "amr")); |
|
667 QAudioEncoderSettings audioSettings; |
|
668 audioSettings.setCodec("amr"); |
|
669 audioSettings.setSampleRate(-1); |
|
670 QVideoEncoderSettings videoSettings; |
|
671 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
672 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
673 QTest::qWait(500); // wait for recorder to initialize itself |
|
674 audiocapture->record(); |
|
675 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
676 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
677 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
678 QCOMPARE(audiocapture->errorString(), QString()); |
|
679 QCOMPARE(stateSignal.count(), 1); |
|
680 QTest::qWait(5000); // wait for 5 seconds |
|
681 audiocapture->pause(); |
|
682 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
683 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
684 QCOMPARE(stateSignal.count(), 2); |
|
685 audiocapture->stop(); |
|
686 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
687 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
688 QCOMPARE(stateSignal.count(), 3); |
|
689 } |
|
690 |
|
691 void tst_QMediaRecorder::testAudioAmrBr4750bps() |
|
692 { |
|
693 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
694 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br4750bps", "amr")); |
|
695 QAudioEncoderSettings audioSettings; |
|
696 audioSettings.setCodec("amr"); |
|
697 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
698 audioSettings.setBitRate(4750); |
|
699 QVideoEncoderSettings videoSettings; |
|
700 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
701 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
702 QTest::qWait(500); // wait for recorder to initialize itself |
|
703 audiocapture->record(); |
|
704 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
705 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
706 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
707 QCOMPARE(audiocapture->errorString(), QString()); |
|
708 QCOMPARE(stateSignal.count(), 1); |
|
709 QTest::qWait(5000); // wait for 5 seconds |
|
710 audiocapture->pause(); |
|
711 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
712 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
713 QCOMPARE(stateSignal.count(), 2); |
|
714 audiocapture->stop(); |
|
715 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
716 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
717 QCOMPARE(stateSignal.count(), 3); |
|
718 } |
|
719 |
|
720 void tst_QMediaRecorder::testAudioAmrBr5150bps() |
|
721 { |
|
722 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
723 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br4750bps", "amr")); |
|
724 QAudioEncoderSettings audioSettings; |
|
725 audioSettings.setCodec("amr"); |
|
726 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
727 audioSettings.setBitRate(5150); |
|
728 QVideoEncoderSettings videoSettings; |
|
729 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
730 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
731 QTest::qWait(500); // wait for recorder to initialize itself |
|
732 audiocapture->record(); |
|
733 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
734 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
735 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
736 QCOMPARE(audiocapture->errorString(), QString()); |
|
737 QCOMPARE(stateSignal.count(), 1); |
|
738 QTest::qWait(5000); // wait for 5 seconds |
|
739 audiocapture->pause(); |
|
740 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
741 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
742 QCOMPARE(stateSignal.count(), 2); |
|
743 audiocapture->stop(); |
|
744 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
745 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
746 QCOMPARE(stateSignal.count(), 3); |
|
747 } |
|
748 |
|
749 void tst_QMediaRecorder::testAudioAmrBr5900bps() |
|
750 { |
|
751 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
752 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br4750bps", "amr")); |
|
753 QAudioEncoderSettings audioSettings; |
|
754 audioSettings.setCodec("amr"); |
|
755 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
756 audioSettings.setBitRate(5900); |
|
757 QVideoEncoderSettings videoSettings; |
|
758 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
759 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
760 QTest::qWait(500); // wait for recorder to initialize itself |
|
761 audiocapture->record(); |
|
762 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
763 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
764 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
765 QCOMPARE(audiocapture->errorString(), QString()); |
|
766 QCOMPARE(stateSignal.count(), 1); |
|
767 QTest::qWait(5000); // wait for 5 seconds |
|
768 audiocapture->pause(); |
|
769 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
770 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
771 QCOMPARE(stateSignal.count(), 2); |
|
772 audiocapture->stop(); |
|
773 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
774 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
775 QCOMPARE(stateSignal.count(), 3); |
|
776 } |
|
777 |
|
778 void tst_QMediaRecorder::testAudioAmrBr6700bps() |
|
779 { |
|
780 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
781 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br4750bps", "amr")); |
|
782 QAudioEncoderSettings audioSettings; |
|
783 audioSettings.setCodec("amr"); |
|
784 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
785 audioSettings.setBitRate(6700); |
|
786 QVideoEncoderSettings videoSettings; |
|
787 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
788 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
789 QTest::qWait(500); // wait for recorder to initialize itself |
|
790 audiocapture->record(); |
|
791 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
792 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
793 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
794 QCOMPARE(audiocapture->errorString(), QString()); |
|
795 QCOMPARE(stateSignal.count(), 1); |
|
796 QTest::qWait(5000); // wait for 5 seconds |
|
797 audiocapture->pause(); |
|
798 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
799 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
800 QCOMPARE(stateSignal.count(), 2); |
|
801 audiocapture->stop(); |
|
802 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
803 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
804 QCOMPARE(stateSignal.count(), 3); |
|
805 } |
|
806 |
|
807 void tst_QMediaRecorder::testAudioAmrBr7400bps() |
|
808 { |
|
809 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
810 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br4750bps", "amr")); |
|
811 QAudioEncoderSettings audioSettings; |
|
812 audioSettings.setCodec("amr"); |
|
813 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
814 audioSettings.setBitRate(7400); |
|
815 QVideoEncoderSettings videoSettings; |
|
816 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
817 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
818 QTest::qWait(500); // wait for recorder to initialize itself |
|
819 audiocapture->record(); |
|
820 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
821 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
822 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
823 QCOMPARE(audiocapture->errorString(), QString()); |
|
824 QCOMPARE(stateSignal.count(), 1); |
|
825 QTest::qWait(5000); // wait for 5 seconds |
|
826 audiocapture->pause(); |
|
827 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
828 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
829 QCOMPARE(stateSignal.count(), 2); |
|
830 audiocapture->stop(); |
|
831 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
832 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
833 QCOMPARE(stateSignal.count(), 3); |
|
834 } |
|
835 |
|
836 void tst_QMediaRecorder::testAudioAmrBr7950bps() |
|
837 { |
|
838 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
839 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br4750bps", "amr")); |
|
840 QAudioEncoderSettings audioSettings; |
|
841 audioSettings.setCodec("amr"); |
|
842 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
843 audioSettings.setBitRate(7950); |
|
844 QVideoEncoderSettings videoSettings; |
|
845 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
846 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
847 QTest::qWait(500); // wait for recorder to initialize itself |
|
848 audiocapture->record(); |
|
849 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
850 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
851 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
852 QCOMPARE(audiocapture->errorString(), QString()); |
|
853 QCOMPARE(stateSignal.count(), 1); |
|
854 QTest::qWait(5000); // wait for 5 seconds |
|
855 audiocapture->pause(); |
|
856 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
857 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
858 QCOMPARE(stateSignal.count(), 2); |
|
859 audiocapture->stop(); |
|
860 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
861 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
862 QCOMPARE(stateSignal.count(), 3); |
|
863 } |
|
864 |
|
865 void tst_QMediaRecorder::testAudioAmrBr10200bps() |
|
866 { |
|
867 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
868 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br4750bps", "amr")); |
|
869 QAudioEncoderSettings audioSettings; |
|
870 audioSettings.setCodec("amr"); |
|
871 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
872 audioSettings.setBitRate(10200); |
|
873 QVideoEncoderSettings videoSettings; |
|
874 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
875 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
876 QTest::qWait(500); // wait for recorder to initialize itself |
|
877 audiocapture->record(); |
|
878 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
879 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
880 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
881 QCOMPARE(audiocapture->errorString(), QString()); |
|
882 QCOMPARE(stateSignal.count(), 1); |
|
883 QTest::qWait(5000); // wait for 5 seconds |
|
884 audiocapture->pause(); |
|
885 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
886 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
887 QCOMPARE(stateSignal.count(), 2); |
|
888 audiocapture->stop(); |
|
889 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
890 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
891 QCOMPARE(stateSignal.count(), 3); |
|
892 } |
|
893 |
|
894 void tst_QMediaRecorder::testAudioAmrBr12200bps() |
|
895 { |
|
896 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
897 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br4750bps", "amr")); |
|
898 QAudioEncoderSettings audioSettings; |
|
899 audioSettings.setCodec("amr"); |
|
900 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
901 audioSettings.setBitRate(12200); |
|
902 QVideoEncoderSettings videoSettings; |
|
903 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
904 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
905 QTest::qWait(500); // wait for recorder to initialize itself |
|
906 audiocapture->record(); |
|
907 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
908 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
909 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
910 QCOMPARE(audiocapture->errorString(), QString()); |
|
911 QCOMPARE(stateSignal.count(), 1); |
|
912 QTest::qWait(5000); // wait for 5 seconds |
|
913 audiocapture->pause(); |
|
914 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
915 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
916 QCOMPARE(stateSignal.count(), 2); |
|
917 audiocapture->stop(); |
|
918 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
919 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
920 QCOMPARE(stateSignal.count(), 3); |
|
921 } |
|
922 |
|
923 void tst_QMediaRecorder::testAudioAmrQualityVeryLow() |
|
924 { |
|
925 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
926 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "VeryLowQuality", "amr")); |
|
927 QAudioEncoderSettings audioSettings; |
|
928 audioSettings.setCodec("amr"); |
|
929 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
930 audioSettings.setQuality(QtMultimedia::VeryLowQuality); |
|
931 QVideoEncoderSettings videoSettings; |
|
932 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
933 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
934 QTest::qWait(500); // wait for recorder to initialize itself |
|
935 audiocapture->record(); |
|
936 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
937 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
938 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
939 QCOMPARE(audiocapture->errorString(), QString()); |
|
940 QCOMPARE(stateSignal.count(), 1); |
|
941 QTest::qWait(5000); // wait for 5 seconds |
|
942 audiocapture->pause(); |
|
943 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
944 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
945 QCOMPARE(stateSignal.count(), 2); |
|
946 audiocapture->stop(); |
|
947 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
948 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
949 QCOMPARE(stateSignal.count(), 3); |
|
950 } |
|
951 |
|
952 void tst_QMediaRecorder::testAudioAmrQualityLow() |
|
953 { |
|
954 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
955 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "LowQuality", "amr")); |
|
956 QAudioEncoderSettings audioSettings; |
|
957 audioSettings.setCodec("amr"); |
|
958 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
959 audioSettings.setQuality(QtMultimedia::LowQuality); |
|
960 QVideoEncoderSettings videoSettings; |
|
961 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
962 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
963 QTest::qWait(500); // wait for recorder to initialize itself |
|
964 audiocapture->record(); |
|
965 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
966 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
967 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
968 QCOMPARE(audiocapture->errorString(), QString()); |
|
969 QCOMPARE(stateSignal.count(), 1); |
|
970 QTest::qWait(5000); // wait for 5 seconds |
|
971 audiocapture->pause(); |
|
972 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
973 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
974 QCOMPARE(stateSignal.count(), 2); |
|
975 audiocapture->stop(); |
|
976 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
977 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
978 QCOMPARE(stateSignal.count(), 3); |
|
979 } |
|
980 |
|
981 void tst_QMediaRecorder::testAudioAmrQualityNormal() |
|
982 { |
|
983 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
984 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "NormalQuality", "amr")); |
|
985 QAudioEncoderSettings audioSettings; |
|
986 audioSettings.setCodec("amr"); |
|
987 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
988 audioSettings.setQuality(QtMultimedia::NormalQuality); |
|
989 QVideoEncoderSettings videoSettings; |
|
990 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
991 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
992 QTest::qWait(500); // wait for recorder to initialize itself |
|
993 audiocapture->record(); |
|
994 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
995 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
996 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
997 QCOMPARE(audiocapture->errorString(), QString()); |
|
998 QCOMPARE(stateSignal.count(), 1); |
|
999 QTest::qWait(5000); // wait for 5 seconds |
|
1000 audiocapture->pause(); |
|
1001 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1002 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
1003 QCOMPARE(stateSignal.count(), 2); |
|
1004 audiocapture->stop(); |
|
1005 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
1006 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1007 QCOMPARE(stateSignal.count(), 3); |
|
1008 } |
|
1009 |
|
1010 void tst_QMediaRecorder::testAudioAmrQualityHigh() |
|
1011 { |
|
1012 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1013 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "HighQuality", "amr")); |
|
1014 QAudioEncoderSettings audioSettings; |
|
1015 audioSettings.setCodec("amr"); |
|
1016 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
1017 audioSettings.setQuality(QtMultimedia::HighQuality); |
|
1018 QVideoEncoderSettings videoSettings; |
|
1019 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
1020 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1021 QTest::qWait(500); // wait for recorder to initialize itself |
|
1022 audiocapture->record(); |
|
1023 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1024 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1025 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1026 QCOMPARE(audiocapture->errorString(), QString()); |
|
1027 QCOMPARE(stateSignal.count(), 1); |
|
1028 QTest::qWait(5000); // wait for 5 seconds |
|
1029 audiocapture->pause(); |
|
1030 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1031 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
1032 QCOMPARE(stateSignal.count(), 2); |
|
1033 audiocapture->stop(); |
|
1034 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
1035 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1036 QCOMPARE(stateSignal.count(), 3); |
|
1037 } |
|
1038 |
|
1039 void tst_QMediaRecorder::testAudioAmrQualityVeryHigh() |
|
1040 { |
|
1041 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1042 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "LowQuality", "amr")); |
|
1043 QAudioEncoderSettings audioSettings; |
|
1044 audioSettings.setCodec("amr"); |
|
1045 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
1046 audioSettings.setQuality(QtMultimedia::VeryHighQuality); |
|
1047 QVideoEncoderSettings videoSettings; |
|
1048 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
1049 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1050 QTest::qWait(500); // wait for recorder to initialize itself |
|
1051 audiocapture->record(); |
|
1052 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1053 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1054 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1055 QCOMPARE(audiocapture->errorString(), QString()); |
|
1056 QCOMPARE(stateSignal.count(), 1); |
|
1057 QTest::qWait(5000); // wait for 5 seconds |
|
1058 audiocapture->pause(); |
|
1059 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1060 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
1061 QCOMPARE(stateSignal.count(), 2); |
|
1062 audiocapture->stop(); |
|
1063 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
1064 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1065 QCOMPARE(stateSignal.count(), 3); |
|
1066 } |
|
1067 |
|
1068 void tst_QMediaRecorder::testAudioAmrSr8kHzMono() |
|
1069 { |
|
1070 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1071 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr8kHzMono", "amr")); |
|
1072 QAudioEncoderSettings audioSettings; |
|
1073 audioSettings.setCodec("amr"); |
|
1074 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
1075 audioSettings.setSampleRate(8000); |
|
1076 audioSettings.setChannelCount(1); |
|
1077 QVideoEncoderSettings videoSettings; |
|
1078 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
1079 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1080 QTest::qWait(500); // wait for recorder to initialize itself |
|
1081 audiocapture->record(); |
|
1082 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1083 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1084 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1085 QCOMPARE(audiocapture->errorString(), QString()); |
|
1086 QCOMPARE(stateSignal.count(), 1); |
|
1087 QTest::qWait(5000); // wait for 5 seconds |
|
1088 audiocapture->pause(); |
|
1089 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1090 QCOMPARE(audiocapture->state(), QMediaRecorder::PausedState); |
|
1091 QCOMPARE(stateSignal.count(), 2); |
|
1092 audiocapture->stop(); |
|
1093 QTRY_COMPARE(stateSignal.count(), 3); // wait for callbacks to complete in symbian API |
|
1094 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1095 QCOMPARE(stateSignal.count(), 3); |
|
1096 } |
|
1097 |
|
1098 void tst_QMediaRecorder::testAudioAmrStereo() |
|
1099 { |
|
1100 QSignalSpy errorSignal(audiocapture,SIGNAL(error(QMediaRecorder::Error))); |
|
1101 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Stereo", "amr")); |
|
1102 QAudioEncoderSettings audioSettings; |
|
1103 audioSettings.setCodec("amr"); |
|
1104 audioSettings.setSampleRate(-1); |
|
1105 audioSettings.setChannelCount(2); |
|
1106 QVideoEncoderSettings videoSettings; |
|
1107 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
1108 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1109 QTest::qWait(500); // wait for recorder to initialize itself |
|
1110 audiocapture->record(); |
|
1111 QTRY_COMPARE(errorSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1112 QCOMPARE(audiocapture->error(), QMediaRecorder::ResourceError); |
|
1113 QCOMPARE(audiocapture->errorString(), QString("Generic error")); |
|
1114 } |
|
1115 |
|
1116 void tst_QMediaRecorder::testAudioAmrSr16kHz() |
|
1117 { |
|
1118 QSignalSpy errorSignal(audiocapture,SIGNAL(error(QMediaRecorder::Error))); |
|
1119 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Sr16kHz", "amr")); |
|
1120 QAudioEncoderSettings audioSettings; |
|
1121 audioSettings.setCodec("amr"); |
|
1122 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
1123 audioSettings.setSampleRate(16000); |
|
1124 QVideoEncoderSettings videoSettings; |
|
1125 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/amr")); |
|
1126 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1127 QTest::qWait(500); // wait for recorder to initialize itself |
|
1128 audiocapture->record(); |
|
1129 QTRY_COMPARE(errorSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1130 QCOMPARE(audiocapture->error(), QMediaRecorder::ResourceError); |
|
1131 QCOMPARE(audiocapture->errorString(), QString("Generic error")); |
|
1132 } |
|
1133 |
|
1134 void tst_QMediaRecorder::testAudioMpeg() |
|
1135 { |
|
1136 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1137 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "", "mp4")); |
|
1138 QAudioEncoderSettings audioSettings; |
|
1139 audioSettings.setCodec("aac"); |
|
1140 audioSettings.setSampleRate(-1); |
|
1141 QVideoEncoderSettings videoSettings; |
|
1142 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1143 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1144 QTest::qWait(500); // wait for recorder to initialize itself |
|
1145 audiocapture->record(); |
|
1146 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1147 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1148 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1149 QCOMPARE(audiocapture->errorString(), QString()); |
|
1150 QCOMPARE(stateSignal.count(), 1); |
|
1151 QTest::qWait(5000); // wait for 5 seconds |
|
1152 audiocapture->stop(); |
|
1153 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1154 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1155 QCOMPARE(stateSignal.count(), 2); |
|
1156 } |
|
1157 |
|
1158 void tst_QMediaRecorder::testAudioMpegBr32kSr8kHz() |
|
1159 { |
|
1160 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1161 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br32kSr8kHz", "mp4")); |
|
1162 QAudioEncoderSettings audioSettings; |
|
1163 audioSettings.setCodec("aac"); |
|
1164 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
1165 audioSettings.setBitRate(32000); |
|
1166 audioSettings.setSampleRate(8000); |
|
1167 audioSettings.setChannelCount(1); |
|
1168 QVideoEncoderSettings videoSettings; |
|
1169 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1170 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1171 QTest::qWait(500); // wait for recorder to initialize itself |
|
1172 audiocapture->record(); |
|
1173 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1174 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1175 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1176 QCOMPARE(audiocapture->errorString(), QString()); |
|
1177 QCOMPARE(stateSignal.count(), 1); |
|
1178 QTest::qWait(5000); // wait for 5 seconds |
|
1179 audiocapture->stop(); |
|
1180 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1181 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1182 QCOMPARE(stateSignal.count(), 2); |
|
1183 } |
|
1184 |
|
1185 void tst_QMediaRecorder::testAudioMpegBr32kbpsSr8kHzStereo() |
|
1186 { |
|
1187 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1188 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br32kSr8kHzStereo", "mp4")); |
|
1189 QAudioEncoderSettings audioSettings; |
|
1190 audioSettings.setCodec("aac"); |
|
1191 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
1192 audioSettings.setBitRate(32000); |
|
1193 audioSettings.setSampleRate(8000); |
|
1194 audioSettings.setChannelCount(2); |
|
1195 QVideoEncoderSettings videoSettings; |
|
1196 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1197 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1198 QTest::qWait(500); // wait for recorder to initialize itself |
|
1199 audiocapture->record(); |
|
1200 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1201 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1202 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1203 QCOMPARE(audiocapture->errorString(), QString()); |
|
1204 QCOMPARE(stateSignal.count(), 1); |
|
1205 QTest::qWait(5000); // wait for 5 seconds |
|
1206 audiocapture->stop(); |
|
1207 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1208 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1209 QCOMPARE(stateSignal.count(), 2); |
|
1210 } |
|
1211 |
|
1212 void tst_QMediaRecorder::testAudioMpegBr128kbpsSr16kHz() |
|
1213 { |
|
1214 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1215 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br128kSr16kHz", "mp4")); |
|
1216 QAudioEncoderSettings audioSettings; |
|
1217 audioSettings.setCodec("aac"); |
|
1218 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
1219 audioSettings.setBitRate(128000); |
|
1220 audioSettings.setSampleRate(16000); |
|
1221 audioSettings.setChannelCount(1); |
|
1222 QVideoEncoderSettings videoSettings; |
|
1223 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1224 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1225 QTest::qWait(500); // wait for recorder to initialize itself |
|
1226 audiocapture->record(); |
|
1227 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1228 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1229 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1230 QCOMPARE(audiocapture->errorString(), QString()); |
|
1231 QCOMPARE(stateSignal.count(), 1); |
|
1232 QTest::qWait(5000); // wait for 5 seconds |
|
1233 audiocapture->stop(); |
|
1234 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1235 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1236 QCOMPARE(stateSignal.count(), 2); |
|
1237 } |
|
1238 |
|
1239 void tst_QMediaRecorder::testAudioMpegBr128kbpsSr16kHzStereo() |
|
1240 { |
|
1241 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1242 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br128kSr16kHzStereo", "mp4")); |
|
1243 QAudioEncoderSettings audioSettings; |
|
1244 audioSettings.setCodec("aac"); |
|
1245 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
1246 audioSettings.setBitRate(128000); |
|
1247 audioSettings.setSampleRate(16000); |
|
1248 audioSettings.setChannelCount(2); |
|
1249 QVideoEncoderSettings videoSettings; |
|
1250 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1251 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1252 QTest::qWait(500); // wait for recorder to initialize itself |
|
1253 audiocapture->record(); |
|
1254 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1255 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1256 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1257 QCOMPARE(audiocapture->errorString(), QString()); |
|
1258 QCOMPARE(stateSignal.count(), 1); |
|
1259 QTest::qWait(5000); // wait for 5 seconds |
|
1260 audiocapture->stop(); |
|
1261 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1262 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1263 QCOMPARE(stateSignal.count(), 2); |
|
1264 } |
|
1265 |
|
1266 void tst_QMediaRecorder::testAudioMpegBr256kbpsSr48kHz() |
|
1267 { |
|
1268 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1269 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br256kSr48kHz", "mp4")); |
|
1270 QAudioEncoderSettings audioSettings; |
|
1271 audioSettings.setCodec("aac"); |
|
1272 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
1273 audioSettings.setBitRate(256000); |
|
1274 audioSettings.setSampleRate(48000); |
|
1275 audioSettings.setChannelCount(1); |
|
1276 QVideoEncoderSettings videoSettings; |
|
1277 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1278 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1279 QTest::qWait(500); // wait for recorder to initialize itself |
|
1280 audiocapture->record(); |
|
1281 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1282 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1283 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1284 QCOMPARE(audiocapture->errorString(), QString()); |
|
1285 QCOMPARE(stateSignal.count(), 1); |
|
1286 QTest::qWait(5000); // wait for 5 seconds |
|
1287 audiocapture->stop(); |
|
1288 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1289 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1290 QCOMPARE(stateSignal.count(), 2); |
|
1291 } |
|
1292 |
|
1293 void tst_QMediaRecorder::testAudioMpegBr256kbpsSr48kHzStereo() |
|
1294 { |
|
1295 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1296 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br256kSr48kHzStereo", "mp4")); |
|
1297 QAudioEncoderSettings audioSettings; |
|
1298 audioSettings.setCodec("aac"); |
|
1299 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
1300 audioSettings.setBitRate(256000); |
|
1301 audioSettings.setSampleRate(48000); |
|
1302 audioSettings.setChannelCount(2); |
|
1303 QVideoEncoderSettings videoSettings; |
|
1304 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1305 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1306 QTest::qWait(500); // wait for recorder to initialize itself |
|
1307 audiocapture->record(); |
|
1308 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1309 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1310 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1311 QCOMPARE(audiocapture->errorString(), QString()); |
|
1312 QCOMPARE(stateSignal.count(), 1); |
|
1313 QTest::qWait(5000); // wait for 5 seconds |
|
1314 audiocapture->stop(); |
|
1315 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1316 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1317 QCOMPARE(stateSignal.count(), 2); |
|
1318 } |
|
1319 |
|
1320 void tst_QMediaRecorder::testAudioMpegQualityVeryLow() |
|
1321 { |
|
1322 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1323 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "VeryLowQuality", "mp4")); |
|
1324 QAudioEncoderSettings audioSettings; |
|
1325 audioSettings.setCodec("aac"); |
|
1326 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
1327 audioSettings.setQuality(QtMultimedia::VeryLowQuality); |
|
1328 QVideoEncoderSettings videoSettings; |
|
1329 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1330 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1331 QTest::qWait(500); // wait for recorder to initialize itself |
|
1332 audiocapture->record(); |
|
1333 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1334 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1335 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1336 QCOMPARE(audiocapture->errorString(), QString()); |
|
1337 QCOMPARE(stateSignal.count(), 1); |
|
1338 QTest::qWait(5000); // wait for 5 seconds |
|
1339 audiocapture->stop(); |
|
1340 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1341 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1342 QCOMPARE(stateSignal.count(), 2); |
|
1343 } |
|
1344 |
|
1345 void tst_QMediaRecorder::testAudioMpegQualityLow() |
|
1346 { |
|
1347 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1348 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "LowQuality", "mp4")); |
|
1349 QAudioEncoderSettings audioSettings; |
|
1350 audioSettings.setCodec("aac"); |
|
1351 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
1352 audioSettings.setQuality(QtMultimedia::LowQuality); |
|
1353 QVideoEncoderSettings videoSettings; |
|
1354 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1355 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1356 QTest::qWait(500); // wait for recorder to initialize itself |
|
1357 audiocapture->record(); |
|
1358 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1359 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1360 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1361 QCOMPARE(audiocapture->errorString(), QString()); |
|
1362 QCOMPARE(stateSignal.count(), 1); |
|
1363 QTest::qWait(5000); // wait for 5 seconds |
|
1364 audiocapture->stop(); |
|
1365 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1366 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1367 QCOMPARE(stateSignal.count(), 2); |
|
1368 } |
|
1369 |
|
1370 void tst_QMediaRecorder::testAudioMpegQualityNormal() |
|
1371 { |
|
1372 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1373 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "NormalQuality", "mp4")); |
|
1374 QAudioEncoderSettings audioSettings; |
|
1375 audioSettings.setCodec("aac"); |
|
1376 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
1377 audioSettings.setQuality(QtMultimedia::NormalQuality); |
|
1378 QVideoEncoderSettings videoSettings; |
|
1379 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1380 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1381 QTest::qWait(500); // wait for recorder to initialize itself |
|
1382 audiocapture->record(); |
|
1383 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1384 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1385 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1386 QCOMPARE(audiocapture->errorString(), QString()); |
|
1387 QCOMPARE(stateSignal.count(), 1); |
|
1388 QTest::qWait(5000); // wait for 5 seconds |
|
1389 audiocapture->stop(); |
|
1390 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1391 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1392 QCOMPARE(stateSignal.count(), 2); |
|
1393 } |
|
1394 |
|
1395 void tst_QMediaRecorder::testAudioMpegQualityHigh() |
|
1396 { |
|
1397 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1398 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "HighQuality", "mp4")); |
|
1399 QAudioEncoderSettings audioSettings; |
|
1400 audioSettings.setCodec("aac"); |
|
1401 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
1402 audioSettings.setQuality(QtMultimedia::HighQuality); |
|
1403 QVideoEncoderSettings videoSettings; |
|
1404 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1405 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1406 QTest::qWait(500); // wait for recorder to initialize itself |
|
1407 audiocapture->record(); |
|
1408 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1409 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1410 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1411 QCOMPARE(audiocapture->errorString(), QString()); |
|
1412 QCOMPARE(stateSignal.count(), 1); |
|
1413 QTest::qWait(5000); // wait for 5 seconds |
|
1414 audiocapture->stop(); |
|
1415 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1416 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1417 QCOMPARE(stateSignal.count(), 2); |
|
1418 } |
|
1419 |
|
1420 void tst_QMediaRecorder::testAudioMpegQualityVeryHigh() |
|
1421 { |
|
1422 QSignalSpy stateSignal(audiocapture,SIGNAL(stateChanged(QMediaRecorder::State))); |
|
1423 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "VeryHighQuality", "mp4")); |
|
1424 QAudioEncoderSettings audioSettings; |
|
1425 audioSettings.setCodec("aac"); |
|
1426 audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding); |
|
1427 audioSettings.setQuality(QtMultimedia::VeryHighQuality); |
|
1428 QVideoEncoderSettings videoSettings; |
|
1429 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1430 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1431 QTest::qWait(500); // wait for recorder to initialize itself |
|
1432 audiocapture->record(); |
|
1433 QTRY_COMPARE(stateSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1434 QCOMPARE(audiocapture->state(), QMediaRecorder::RecordingState); |
|
1435 QCOMPARE(audiocapture->error(), QMediaRecorder::NoError); |
|
1436 QCOMPARE(audiocapture->errorString(), QString()); |
|
1437 QCOMPARE(stateSignal.count(), 1); |
|
1438 QTest::qWait(5000); // wait for 5 seconds |
|
1439 audiocapture->stop(); |
|
1440 QTRY_COMPARE(stateSignal.count(), 2); // wait for callbacks to complete in symbian API |
|
1441 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1442 QCOMPARE(stateSignal.count(), 2); |
|
1443 } |
|
1444 |
|
1445 void tst_QMediaRecorder::testAudioMpegBr16kSr8kHz() |
|
1446 { |
|
1447 QSignalSpy errorSignal(audiocapture,SIGNAL(error(QMediaRecorder::Error))); |
|
1448 audiocapture->setOutputLocation(nextFileName(QDir::rootPath(), "Br16kHzSr8kHz", "mp4")); |
|
1449 QAudioEncoderSettings audioSettings; |
|
1450 audioSettings.setCodec("aac"); |
|
1451 audioSettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding); |
|
1452 audioSettings.setBitRate(16000); |
|
1453 audioSettings.setSampleRate(8000); |
|
1454 QVideoEncoderSettings videoSettings; |
|
1455 audiocapture->setEncodingSettings(audioSettings, videoSettings, QString("audio/mpeg")); |
|
1456 QCOMPARE(audiocapture->state(), QMediaRecorder::StoppedState); |
|
1457 QTest::qWait(500); // wait for recorder to initialize itself |
|
1458 audiocapture->record(); |
|
1459 QTRY_COMPARE(errorSignal.count(), 1); // wait for callbacks to complete in symbian API |
|
1460 QCOMPARE(audiocapture->error(), QMediaRecorder::ResourceError); |
|
1461 QCOMPARE(audiocapture->errorString(), QString("Generic error")); |
|
1462 } |
|
1463 |
|
1464 |
|
1465 QUrl tst_QMediaRecorder::nextFileName(QDir outputDir, QString appendName, QString ext) |
|
1466 { |
|
1467 int lastImage = 0; |
|
1468 int fileCount = 0; |
|
1469 foreach( QString fileName, outputDir.entryList(QStringList() << "testclip_*." + ext) ) { |
|
1470 int imgNumber = fileName.mid(5, fileName.size()-9).toInt(); |
|
1471 lastImage = qMax(lastImage, imgNumber); |
|
1472 if (outputDir.exists(fileName)) |
|
1473 fileCount+=1; |
|
1474 } |
|
1475 lastImage+=fileCount; |
|
1476 |
|
1477 QUrl location(QDir::toNativeSeparators(outputDir.canonicalPath() + QString("/testclip_%1").arg(lastImage+1 , 4, 10, QLatin1Char('0')) + appendName + "." + ext)); |
|
1478 return location; |
|
1479 } |
|
1480 |
|
1481 QTEST_MAIN(tst_QMediaRecorder) |
|
1482 |
|
1483 #include "tst_qmediarecorder_xa.moc" |