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:
committed by
Qt by Nokia
parent
9d3102efe2
commit
a22a0195f1
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user