Split QMediaRecorder::setEncodingSettings to separate setters.

It's easier to change only the necessary part of encoding settings.
The settings are applied during the next event loop or before recording
starts.

Change-Id: Ia2b5c93826a302212aa7f79a0c75e4cbaaf1dd7a
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
Dmytro Poplavskiy
2012-01-31 10:08:49 +10:00
committed by Qt by Nokia
parent 9d3102efe2
commit a22a0195f1
19 changed files with 231 additions and 80 deletions

View File

@@ -146,7 +146,7 @@ QString AudioCaptureSession::containerDescription(const QString &formatMimeType)
return QString();
}
void AudioCaptureSession::setContainerMimeType(const QString &formatMimeType)
void AudioCaptureSession::setContainerFormat(const QString &formatMimeType)
{
if (!formatMimeType.contains(QLatin1String("audio/x-wav")) &&
!formatMimeType.contains(QLatin1String("audio/pcm")) &&
@@ -167,7 +167,7 @@ void AudioCaptureSession::setContainerMimeType(const QString &formatMimeType)
}
}
QString AudioCaptureSession::containerMimeType() const
QString AudioCaptureSession::containerFormat() const
{
if(wavFile)
return QString("audio/x-wav");

View File

@@ -69,8 +69,8 @@ public:
bool isFormatSupported(const QAudioFormat &format) const;
bool setFormat(const QAudioFormat &format);
QStringList supportedContainers() const;
QString containerMimeType() const;
void setContainerMimeType(const QString &formatMimeType);
QString containerFormat() const;
void setContainerFormat(const QString &formatMimeType);
QString containerDescription(const QString &formatMimeType) const;
QUrl outputLocation() const;

View File

@@ -57,14 +57,14 @@ QStringList AudioContainerControl::supportedContainers() const
return m_session->supportedContainers();
}
QString AudioContainerControl::containerMimeType() const
QString AudioContainerControl::containerFormat() const
{
return m_session->containerMimeType();
return m_session->containerFormat();
}
void AudioContainerControl::setContainerMimeType(const QString &formatMimeType)
void AudioContainerControl::setContainerFormat(const QString &formatMimeType)
{
m_session->setContainerMimeType(formatMimeType);
m_session->setContainerFormat(formatMimeType);
}
QString AudioContainerControl::containerDescription(const QString &formatMimeType) const

View File

@@ -59,8 +59,8 @@ public:
virtual ~AudioContainerControl();
QStringList supportedContainers() const;
QString containerMimeType() const;
void setContainerMimeType(const QString &formatMimeType);
QString containerFormat() const;
void setContainerFormat(const QString &formatMimeType);
QString containerDescription(const QString &formatMimeType) const;
private:

View File

@@ -101,7 +101,7 @@ QGstreamerMediaContainerControl::QGstreamerMediaContainerControl(QObject *parent
}
//if (!m_supportedContainers.isEmpty())
// setContainerMimeType(m_supportedContainers[0]);
// setContainerFormat(m_supportedContainers[0]);
}
QSet<QString> QGstreamerMediaContainerControl::supportedStreamTypes(GstElementFactory *factory, GstPadDirection direction)

View File

@@ -59,12 +59,12 @@ public:
virtual ~QGstreamerMediaContainerControl() {};
virtual QStringList supportedContainers() const { return m_supportedContainers; }
virtual QString containerMimeType() const { return m_format; }
virtual void setContainerMimeType(const QString &formatMimeType) { m_format = formatMimeType; }
virtual QString containerFormat() const { return m_format; }
virtual void setContainerFormat(const QString &formatMimeType) { m_format = formatMimeType; }
virtual QString containerDescription(const QString &formatMimeType) const { return m_containerDescriptions.value(formatMimeType); }
QByteArray formatElementName() const { return m_elementNames.value(containerMimeType()); }
QByteArray formatElementName() const { return m_elementNames.value(containerFormat()); }
QSet<QString> supportedStreamTypes(const QString &container) const;

View File

@@ -152,10 +152,10 @@ void QGstreamerRecorderControl::applySettings()
bool needVideo = m_session->captureMode() & QGstreamerCaptureSession::Video;
QStringList containerCandidates;
if (mediaContainerControl->containerMimeType().isEmpty())
if (mediaContainerControl->containerFormat().isEmpty())
containerCandidates = mediaContainerControl->supportedContainers();
else
containerCandidates << mediaContainerControl->containerMimeType();
containerCandidates << mediaContainerControl->containerFormat();
QStringList audioCandidates;
@@ -221,7 +221,7 @@ void QGstreamerRecorderControl::applySettings()
if (container.isEmpty()) {
emit error(QMediaRecorder::FormatError, tr("Not compatible codecs and container format."));
} else {
mediaContainerControl->setContainerMimeType(container);
mediaContainerControl->setContainerFormat(container);
if (needAudio) {
QAudioEncoderSettings audioSettings = audioEncodeControl->audioSettings();