Added custom parameters to Audio/Video/ImageEncodingSettings

This allows to specify more advanced and system/codec specific settings

Change-Id: Ia0a2e94eaf56df285a219018e0beab895a2e7c2a
Reviewed-by: Ling Hu <ling.hu@nokia.com>
This commit is contained in:
Dmytro Poplavskiy
2012-05-18 10:26:51 +10:00
committed by Qt by Nokia
parent f965f683d0
commit 63db99a8ee
4 changed files with 254 additions and 6 deletions

View File

@@ -791,11 +791,26 @@ void tst_QCamera::testImageSettings()
QCOMPARE(settings.resolution(), QSize(800,600));
QVERIFY(!settings.isNull());
settings = QImageEncoderSettings();
settings.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(1));
QCOMPARE(settings.encodingOption(QLatin1Literal("encoderOption")), QVariant(1));
QVariantMap options;
options.insert(QLatin1Literal("encoderOption"), QVariant(1));
QCOMPARE(settings.encodingOptions(), options);
options.insert(QLatin1Literal("encoderOption2"), QVariant(2));
options.remove(QLatin1Literal("encoderOption"));
settings.setEncodingOptions(options);
QCOMPARE(settings.encodingOption(QLatin1Literal("encoderOption")), QVariant());
QCOMPARE(settings.encodingOption(QLatin1Literal("encoderOption2")), QVariant(2));
QVERIFY(!settings.isNull());
QVERIFY(settings != QImageEncoderSettings());
settings = QImageEncoderSettings();
QVERIFY(settings.isNull());
QCOMPARE(settings.codec(), QString());
QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
QCOMPARE(settings.resolution(), QSize());
QVERIFY(settings.encodingOptions().isEmpty());
{
QImageEncoderSettings settings1;
@@ -855,6 +870,14 @@ void tst_QCamera::testImageSettings()
QVERIFY(settings1 == settings2);
settings2.setQuality(QtMultimedia::LowQuality);
QVERIFY(settings1 != settings2);
settings1 = QImageEncoderSettings();
settings1.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(1));
settings2 = QImageEncoderSettings();
settings2.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(1));
QVERIFY(settings1 == settings2);
settings2.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(2));
QVERIFY(settings1 != settings2);
}
void tst_QCamera::testCameraLock()

View File

@@ -515,12 +515,27 @@ void tst_QMediaRecorder::testAudioSettings()
QCOMPARE(settings.channelCount(), 2);
QVERIFY(!settings.isNull());
settings = QAudioEncoderSettings();
settings.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(1));
QCOMPARE(settings.encodingOption(QLatin1Literal("encoderOption")), QVariant(1));
QVariantMap options;
options.insert(QLatin1Literal("encoderOption"), QVariant(1));
QCOMPARE(settings.encodingOptions(), options);
options.insert(QLatin1Literal("encoderOption2"), QVariant(2));
options.remove(QLatin1Literal("encoderOption"));
settings.setEncodingOptions(options);
QCOMPARE(settings.encodingOption(QLatin1Literal("encoderOption")), QVariant());
QCOMPARE(settings.encodingOption(QLatin1Literal("encoderOption2")), QVariant(2));
QVERIFY(!settings.isNull());
QVERIFY(settings != QAudioEncoderSettings());
settings = QAudioEncoderSettings();
QVERIFY(settings.isNull());
QCOMPARE(settings.codec(), QString());
QCOMPARE(settings.bitRate(), -1);
QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
QCOMPARE(settings.sampleRate(), -1);
QVERIFY(settings.encodingOptions().isEmpty());
{
QAudioEncoderSettings settings1;
@@ -601,6 +616,14 @@ void tst_QMediaRecorder::testAudioSettings()
QVERIFY(settings1 == settings2);
settings2.setSampleRate(2);
QVERIFY(settings1 != settings2);
settings1 = QAudioEncoderSettings();
settings1.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(1));
settings2 = QAudioEncoderSettings();
settings2.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(1));
QVERIFY(settings1 == settings2);
settings2.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(2));
QVERIFY(settings1 != settings2);
}
void tst_QMediaRecorder::testVideoSettings()
@@ -643,6 +666,20 @@ void tst_QMediaRecorder::testVideoSettings()
QCOMPARE(settings.resolution(), QSize(800,600));
QVERIFY(!settings.isNull());
settings = QVideoEncoderSettings();
settings.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(1));
QCOMPARE(settings.encodingOption(QLatin1Literal("encoderOption")), QVariant(1));
QVariantMap options;
options.insert(QLatin1Literal("encoderOption"), QVariant(1));
QCOMPARE(settings.encodingOptions(), options);
options.insert(QLatin1Literal("encoderOption2"), QVariant(2));
options.remove(QLatin1Literal("encoderOption"));
settings.setEncodingOptions(options);
QCOMPARE(settings.encodingOption(QLatin1Literal("encoderOption")), QVariant());
QCOMPARE(settings.encodingOption(QLatin1Literal("encoderOption2")), QVariant(2));
QVERIFY(!settings.isNull());
QVERIFY(settings != QVideoEncoderSettings());
settings = QVideoEncoderSettings();
QVERIFY(settings.isNull());
QCOMPARE(settings.codec(), QString());
@@ -650,6 +687,7 @@ void tst_QMediaRecorder::testVideoSettings()
QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
QCOMPARE(settings.frameRate(), qreal());
QCOMPARE(settings.resolution(), QSize());
QVERIFY(settings.encodingOptions().isEmpty());
{
QVideoEncoderSettings settings1;
@@ -730,6 +768,14 @@ void tst_QMediaRecorder::testVideoSettings()
QVERIFY(settings1 == settings2);
settings2.setFrameRate(2);
QVERIFY(settings1 != settings2);
settings1 = QVideoEncoderSettings();
settings1.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(1));
settings2 = QVideoEncoderSettings();
settings2.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(1));
QVERIFY(settings1 == settings2);
settings2.setEncodingOption(QLatin1Literal("encoderOption"), QVariant(2));
QVERIFY(settings1 != settings2);
}
void tst_QMediaRecorder::testSettingsApplied()