Removed encoding options from Audio/Video encoding controls
They are replaced with encoding options from QAudio/Video/ImageEncoderSettings. This also allows to specify options without requesting controls. Change-Id: I507e68cdb8cb46325689804d27c6d0561cada50b Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com> Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
committed by
Qt by Nokia
parent
f53788ae42
commit
62749d654d
@@ -120,24 +120,6 @@ QAudioEncoderControl::~QAudioEncoderControl()
|
|||||||
*\a continuous is set to true, otherwise *\a continuous is set to false.
|
*\a continuous is set to true, otherwise *\a continuous is set to false.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QAudioEncoderControl::supportedEncodingOptions(const QString &codec) const
|
|
||||||
|
|
||||||
Returns the list of \a codec specific audio encoding options.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QAudioEncoderControl::encodingOption(const QString &codec, const QString &option) const
|
|
||||||
|
|
||||||
Returns the value of audio encoding \a option for \a codec.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QAudioEncoderControl::setEncodingOption(const QString &codec, const QString &option, const QVariant &value)
|
|
||||||
|
|
||||||
Set the \a codec specific \a option to \a value.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn QAudioEncoderControl::audioSettings() const
|
\fn QAudioEncoderControl::audioSettings() const
|
||||||
|
|
||||||
|
|||||||
@@ -75,11 +75,6 @@ public:
|
|||||||
virtual QAudioEncoderSettings audioSettings() const = 0;
|
virtual QAudioEncoderSettings audioSettings() const = 0;
|
||||||
virtual void setAudioSettings(const QAudioEncoderSettings&) = 0;
|
virtual void setAudioSettings(const QAudioEncoderSettings&) = 0;
|
||||||
|
|
||||||
virtual QStringList supportedEncodingOptions(const QString &codec) const = 0;
|
|
||||||
virtual QVariant encodingOption(const QString &codec, const QString &name) const = 0;
|
|
||||||
virtual void setEncodingOption(
|
|
||||||
const QString &codec, const QString &name, const QVariant &value) = 0;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QAudioEncoderControl(QObject *parent = 0);
|
QAudioEncoderControl(QObject *parent = 0);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -107,26 +107,6 @@ QVideoEncoderControl::~QVideoEncoderControl()
|
|||||||
Returns a description of a video \a codec.
|
Returns a description of a video \a codec.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QVideoEncoderControl::supportedEncodingOptions(const QString &codec) const
|
|
||||||
|
|
||||||
Returns a list of supported encoding options for a video \a codec.
|
|
||||||
|
|
||||||
The names and types of the options in the list is system dependent.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QVideoEncoderControl::encodingOption(const QString &codec, const QString &option) const
|
|
||||||
|
|
||||||
Returns the value of a video \a codec \a option.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QVideoEncoderControl::setEncodingOption(const QString &codec, const QString &option, const QVariant &value)
|
|
||||||
|
|
||||||
Sets the \a value of a \a codec specific \a option.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn QVideoEncoderControl::supportedResolutions(const QVideoEncoderSettings &settings = QVideoEncoderSettings(),
|
\fn QVideoEncoderControl::supportedResolutions(const QVideoEncoderSettings &settings = QVideoEncoderSettings(),
|
||||||
bool *continuous = 0) const
|
bool *continuous = 0) const
|
||||||
|
|||||||
@@ -79,10 +79,6 @@ public:
|
|||||||
virtual QVideoEncoderSettings videoSettings() const = 0;
|
virtual QVideoEncoderSettings videoSettings() const = 0;
|
||||||
virtual void setVideoSettings(const QVideoEncoderSettings &settings) = 0;
|
virtual void setVideoSettings(const QVideoEncoderSettings &settings) = 0;
|
||||||
|
|
||||||
virtual QStringList supportedEncodingOptions(const QString &codec) const = 0;
|
|
||||||
virtual QVariant encodingOption(const QString &codec, const QString &name) const = 0;
|
|
||||||
virtual void setEncodingOption(const QString &codec, const QString &name, const QVariant &value) = 0;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QVideoEncoderControl(QObject *parent = 0);
|
QVideoEncoderControl(QObject *parent = 0);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -89,30 +89,6 @@ QString AudioEncoderControl::codecDescription(const QString &codecName) const
|
|||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList AudioEncoderControl::supportedEncodingOptions(const QString &codec) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(codec)
|
|
||||||
|
|
||||||
QStringList list;
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant AudioEncoderControl::encodingOption(const QString &codec, const QString &name) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(codec)
|
|
||||||
Q_UNUSED(name)
|
|
||||||
|
|
||||||
return QVariant();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AudioEncoderControl::setEncodingOption(
|
|
||||||
const QString &codec, const QString &name, const QVariant &value)
|
|
||||||
{
|
|
||||||
Q_UNUSED(value)
|
|
||||||
Q_UNUSED(codec)
|
|
||||||
Q_UNUSED(name)
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<int> AudioEncoderControl::supportedSampleRates(const QAudioEncoderSettings &, bool *continuous) const
|
QList<int> AudioEncoderControl::supportedSampleRates(const QAudioEncoderSettings &, bool *continuous) const
|
||||||
{
|
{
|
||||||
if (continuous)
|
if (continuous)
|
||||||
|
|||||||
@@ -67,10 +67,6 @@ public:
|
|||||||
QAudioEncoderSettings audioSettings() const;
|
QAudioEncoderSettings audioSettings() const;
|
||||||
void setAudioSettings(const QAudioEncoderSettings&);
|
void setAudioSettings(const QAudioEncoderSettings&);
|
||||||
|
|
||||||
QStringList supportedEncodingOptions(const QString &codec) const;
|
|
||||||
QVariant encodingOption(const QString &codec, const QString &name) const;
|
|
||||||
void setEncodingOption(const QString &codec, const QString &name, const QVariant &value);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AudioCaptureSession* m_session;
|
AudioCaptureSession* m_session;
|
||||||
QAudioEncoderSettings m_settings;
|
QAudioEncoderSettings m_settings;
|
||||||
|
|||||||
@@ -65,23 +65,6 @@ QString CameraBinAudioEncoder::codecDescription(const QString &codecName) const
|
|||||||
return m_codecs.codecDescription(codecName);
|
return m_codecs.codecDescription(codecName);
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList CameraBinAudioEncoder::supportedEncodingOptions(const QString &codec) const
|
|
||||||
{
|
|
||||||
return m_codecOptions.value(codec);
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant CameraBinAudioEncoder::encodingOption(
|
|
||||||
const QString &codec, const QString &name) const
|
|
||||||
{
|
|
||||||
return m_options[codec].value(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraBinAudioEncoder::setEncodingOption(
|
|
||||||
const QString &codec, const QString &name, const QVariant &value)
|
|
||||||
{
|
|
||||||
m_options[codec][name] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<int> CameraBinAudioEncoder::supportedSampleRates(const QAudioEncoderSettings &, bool *) const
|
QList<int> CameraBinAudioEncoder::supportedSampleRates(const QAudioEncoderSettings &, bool *) const
|
||||||
{
|
{
|
||||||
//TODO check element caps to find actual values
|
//TODO check element caps to find actual values
|
||||||
|
|||||||
@@ -90,8 +90,6 @@ Q_SIGNALS:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QGstCodecsInfo m_codecs;
|
QGstCodecsInfo m_codecs;
|
||||||
QMap<QString,QStringList> m_codecOptions;
|
|
||||||
QMap<QString, QMap<QString, QVariant> > m_options;
|
|
||||||
|
|
||||||
QAudioEncoderSettings m_audioSettings;
|
QAudioEncoderSettings m_audioSettings;
|
||||||
QAudioEncoderSettings m_userSettings;
|
QAudioEncoderSettings m_userSettings;
|
||||||
|
|||||||
@@ -94,22 +94,6 @@ QString CameraBinVideoEncoder::videoCodecDescription(const QString &codecName) c
|
|||||||
return m_codecs.codecDescription(codecName);
|
return m_codecs.codecDescription(codecName);
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList CameraBinVideoEncoder::supportedEncodingOptions(const QString &codec) const
|
|
||||||
{
|
|
||||||
return m_codecOptions.value(codec);
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant CameraBinVideoEncoder::encodingOption(const QString &codec, const QString &name) const
|
|
||||||
{
|
|
||||||
return m_options[codec].value(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraBinVideoEncoder::setEncodingOption(
|
|
||||||
const QString &codec, const QString &name, const QVariant &value)
|
|
||||||
{
|
|
||||||
m_options[codec][name] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
QVideoEncoderSettings CameraBinVideoEncoder::videoSettings() const
|
QVideoEncoderSettings CameraBinVideoEncoder::videoSettings() const
|
||||||
{
|
{
|
||||||
return m_videoSettings;
|
return m_videoSettings;
|
||||||
|
|||||||
@@ -77,10 +77,6 @@ public:
|
|||||||
QVideoEncoderSettings videoSettings() const;
|
QVideoEncoderSettings videoSettings() const;
|
||||||
void setVideoSettings(const QVideoEncoderSettings &settings);
|
void setVideoSettings(const QVideoEncoderSettings &settings);
|
||||||
|
|
||||||
QStringList supportedEncodingOptions(const QString &codec) const;
|
|
||||||
QVariant encodingOption(const QString &codec, const QString &name) const;
|
|
||||||
void setEncodingOption(const QString &codec, const QString &name, const QVariant &value);
|
|
||||||
|
|
||||||
void setActualVideoSettings(const QVideoEncoderSettings&);
|
void setActualVideoSettings(const QVideoEncoderSettings&);
|
||||||
void resetActualSettings();
|
void resetActualSettings();
|
||||||
|
|
||||||
@@ -93,8 +89,6 @@ private:
|
|||||||
CameraBinSession *m_session;
|
CameraBinSession *m_session;
|
||||||
|
|
||||||
QGstCodecsInfo m_codecs;
|
QGstCodecsInfo m_codecs;
|
||||||
QMap<QString,QStringList> m_codecOptions;
|
|
||||||
QMap<QString, QMap<QString, QVariant> > m_options;
|
|
||||||
|
|
||||||
QVideoEncoderSettings m_videoSettings; // backend selected settings, using m_userSettings
|
QVideoEncoderSettings m_videoSettings; // backend selected settings, using m_userSettings
|
||||||
QVideoEncoderSettings m_userSettings;
|
QVideoEncoderSettings m_userSettings;
|
||||||
|
|||||||
@@ -71,7 +71,6 @@ private slots:
|
|||||||
void testNullService();
|
void testNullService();
|
||||||
void testNullControl();
|
void testNullControl();
|
||||||
void testAudioSource();
|
void testAudioSource();
|
||||||
void testOptions();
|
|
||||||
void testDevices();
|
void testDevices();
|
||||||
void testAvailability();
|
void testAvailability();
|
||||||
void testAvailableAudioInputChangedSignal();
|
void testAvailableAudioInputChangedSignal();
|
||||||
@@ -142,16 +141,6 @@ void tst_QAudioRecorder::testAudioSource()
|
|||||||
QCOMPARE(audiosource->mediaObject()->service(),(QMediaService *) mockMediaRecorderService);
|
QCOMPARE(audiosource->mediaObject()->service(),(QMediaService *) mockMediaRecorderService);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QAudioRecorder::testOptions()
|
|
||||||
{
|
|
||||||
const QString codec(QLatin1String("audio/mpeg"));
|
|
||||||
|
|
||||||
QStringList options = mockMediaRecorderService->mockAudioEncoderControl->supportedEncodingOptions(codec);
|
|
||||||
QCOMPARE(options.count(), 4);
|
|
||||||
mockMediaRecorderService->mockAudioEncoderControl->setEncodingOption(codec, options.first(),8000);
|
|
||||||
QVERIFY(mockMediaRecorderService->mockAudioEncoderControl->encodingOption(codec, options.first()).toInt() == 8000);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QAudioRecorder::testDevices()
|
void tst_QAudioRecorder::testDevices()
|
||||||
{
|
{
|
||||||
audiosource = new QAudioRecorder;
|
audiosource = new QAudioRecorder;
|
||||||
|
|||||||
@@ -390,11 +390,6 @@ void tst_QMediaRecorder::testAudioEncodeControl()
|
|||||||
QStringList codecs = capture->supportedAudioCodecs();
|
QStringList codecs = capture->supportedAudioCodecs();
|
||||||
QVERIFY(codecs.count() == 2);
|
QVERIFY(codecs.count() == 2);
|
||||||
QVERIFY(capture->audioCodecDescription("audio/pcm") == "Pulse Code Modulation");
|
QVERIFY(capture->audioCodecDescription("audio/pcm") == "Pulse Code Modulation");
|
||||||
QStringList options = encode->supportedEncodingOptions("audio/mpeg");
|
|
||||||
QCOMPARE(options.count(), 4);
|
|
||||||
QVERIFY(encode->encodingOption("audio/mpeg","bitrate").isNull());
|
|
||||||
encode->setEncodingOption("audio/mpeg", "bitrate", QString("vbr"));
|
|
||||||
QCOMPARE(encode->encodingOption("audio/mpeg","bitrate").toString(), QString("vbr"));
|
|
||||||
QList<int> rates;
|
QList<int> rates;
|
||||||
rates << 8000 << 11025 << 22050 << 44100;
|
rates << 8000 << 11025 << 22050 << 44100;
|
||||||
QCOMPARE(capture->supportedAudioSampleRates(), rates);
|
QCOMPARE(capture->supportedAudioSampleRates(), rates);
|
||||||
@@ -423,14 +418,6 @@ void tst_QMediaRecorder::testVideoEncodeControl()
|
|||||||
QStringList vCodecs = capture->supportedVideoCodecs();
|
QStringList vCodecs = capture->supportedVideoCodecs();
|
||||||
QVERIFY(vCodecs.count() == 2);
|
QVERIFY(vCodecs.count() == 2);
|
||||||
QCOMPARE(capture->videoCodecDescription("video/3gpp"), QString("video/3gpp"));
|
QCOMPARE(capture->videoCodecDescription("video/3gpp"), QString("video/3gpp"));
|
||||||
|
|
||||||
QStringList options = videoEncode->supportedEncodingOptions("video/3gpp");
|
|
||||||
QCOMPARE(options.count(), 2);
|
|
||||||
|
|
||||||
QVERIFY(encode->encodingOption("video/3gpp","me").isNull());
|
|
||||||
encode->setEncodingOption("video/3gpp", "me", QString("dia"));
|
|
||||||
QCOMPARE(encode->encodingOption("video/3gpp","me").toString(), QString("dia"));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QMediaRecorder::testEncodingSettings()
|
void tst_QMediaRecorder::testEncodingSettings()
|
||||||
|
|||||||
@@ -53,8 +53,6 @@ public:
|
|||||||
{
|
{
|
||||||
m_codecs << "audio/pcm" << "audio/mpeg";
|
m_codecs << "audio/pcm" << "audio/mpeg";
|
||||||
m_descriptions << "Pulse Code Modulation" << "mp3 format";
|
m_descriptions << "Pulse Code Modulation" << "mp3 format";
|
||||||
m_supportedEncodeOptions.insert("audio/pcm", QStringList());
|
|
||||||
m_supportedEncodeOptions.insert("audio/mpeg", QStringList() << "quality" << "bitrate" << "mode" << "vbr");
|
|
||||||
m_audioSettings.setCodec("audio/pcm");
|
m_audioSettings.setCodec("audio/pcm");
|
||||||
m_audioSettings.setBitRate(128*1024);
|
m_audioSettings.setBitRate(128*1024);
|
||||||
m_audioSettings.setSampleRate(8000);
|
m_audioSettings.setSampleRate(8000);
|
||||||
@@ -96,21 +94,6 @@ public:
|
|||||||
return m_descriptions.value(m_codecs.indexOf(codecName));
|
return m_descriptions.value(m_codecs.indexOf(codecName));
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList supportedEncodingOptions(const QString &codec) const
|
|
||||||
{
|
|
||||||
return m_supportedEncodeOptions.value(codec);
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant encodingOption(const QString &codec, const QString &name) const
|
|
||||||
{
|
|
||||||
return m_encodeOptions[codec].value(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setEncodingOption(const QString &codec, const QString &name, const QVariant &value)
|
|
||||||
{
|
|
||||||
m_encodeOptions[codec][name] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QAudioEncoderSettings m_audioSettings;
|
QAudioEncoderSettings m_audioSettings;
|
||||||
|
|
||||||
@@ -119,9 +102,6 @@ private:
|
|||||||
|
|
||||||
QList<int> m_freqs;
|
QList<int> m_freqs;
|
||||||
|
|
||||||
QMap<QString, QStringList> m_supportedEncodeOptions;
|
|
||||||
QMap<QString, QMap<QString, QVariant> > m_encodeOptions;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MOCKAUDIOENCODERCONTROL_H
|
#endif // MOCKAUDIOENCODERCONTROL_H
|
||||||
|
|||||||
@@ -51,8 +51,6 @@ public:
|
|||||||
MockVideoEncoderControl(QObject *parent):
|
MockVideoEncoderControl(QObject *parent):
|
||||||
QVideoEncoderControl(parent)
|
QVideoEncoderControl(parent)
|
||||||
{
|
{
|
||||||
m_supportedEncodeOptions.insert("video/3gpp", QStringList() << "quantizer" << "me");
|
|
||||||
m_supportedEncodeOptions.insert("video/H264", QStringList() << "quantizer" << "me" << "bframes");
|
|
||||||
m_videoCodecs << "video/3gpp" << "video/H264";
|
m_videoCodecs << "video/3gpp" << "video/H264";
|
||||||
m_sizes << QSize(320,240) << QSize(640,480);
|
m_sizes << QSize(320,240) << QSize(640,480);
|
||||||
m_framerates << 30 << 15 << 1;
|
m_framerates << 30 << 15 << 1;
|
||||||
@@ -83,27 +81,9 @@ public:
|
|||||||
QStringList supportedVideoCodecs() const { return m_videoCodecs; }
|
QStringList supportedVideoCodecs() const { return m_videoCodecs; }
|
||||||
QString videoCodecDescription(const QString &codecName) const { return codecName; }
|
QString videoCodecDescription(const QString &codecName) const { return codecName; }
|
||||||
|
|
||||||
QStringList supportedEncodingOptions(const QString &codec) const
|
|
||||||
{
|
|
||||||
return m_supportedEncodeOptions.value(codec);
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant encodingOption(const QString &codec, const QString &name) const
|
|
||||||
{
|
|
||||||
return m_encodeOptions[codec].value(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setEncodingOption(const QString &codec, const QString &name, const QVariant &value)
|
|
||||||
{
|
|
||||||
m_encodeOptions[codec][name] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QVideoEncoderSettings m_videoSettings;
|
QVideoEncoderSettings m_videoSettings;
|
||||||
|
|
||||||
QMap<QString, QStringList> m_supportedEncodeOptions;
|
|
||||||
QMap< QString, QMap<QString, QVariant> > m_encodeOptions;
|
|
||||||
|
|
||||||
QStringList m_videoCodecs;
|
QStringList m_videoCodecs;
|
||||||
QList<QSize> m_sizes;
|
QList<QSize> m_sizes;
|
||||||
QList<qreal> m_framerates;
|
QList<qreal> m_framerates;
|
||||||
|
|||||||
@@ -97,27 +97,6 @@ public:
|
|||||||
{
|
{
|
||||||
Q_UNUSED(settings);
|
Q_UNUSED(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList supportedEncodingOptions(const QString &codec) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(codec);
|
|
||||||
return QStringList();
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant encodingOption(const QString &codec, const QString &name) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(codec);
|
|
||||||
Q_UNUSED(name);
|
|
||||||
return QVariant();
|
|
||||||
}
|
|
||||||
|
|
||||||
void setEncodingOption(const QString &codec, const QString &name, const QVariant &value)
|
|
||||||
{
|
|
||||||
Q_UNUSED(codec);
|
|
||||||
Q_UNUSED(name);
|
|
||||||
Q_UNUSED(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class tst_QVideoEncoderControl: public QObject
|
class tst_QVideoEncoderControl: public QObject
|
||||||
|
|||||||
Reference in New Issue
Block a user