summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-03-05 12:54:30 +0100
committerLars Knoll <lars.knoll@qt.io>2021-03-18 12:17:57 +0000
commit3362cea38918f933f454a7b8db0c09b65fc4f1cb (patch)
tree3487d928642d2914b9145e46d9956162d8de2557
parent625ae91bddb9f920494ac80ccc1ebe9f54a1ec2a (diff)
Remove audio/video device settings from QMediaEncoder
Configure those through the capture session. Change-Id: Ic9d9e2fb3ce0446499e0c36ecd8c9dd412d1bcda Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--examples/multimedia/audiorecorder/audiorecorder.cpp4
-rw-r--r--examples/multimediawidgets/camera/videosettings.cpp6
-rw-r--r--src/multimedia/recording/qmediaencoder.cpp49
-rw-r--r--src/multimedia/recording/qmediaencoder.h7
-rw-r--r--src/multimedia/recording/qmediarecorder.cpp16
-rw-r--r--src/multimedia/recording/qmediarecorder.h3
6 files changed, 12 insertions, 73 deletions
diff --git a/examples/multimedia/audiorecorder/audiorecorder.cpp b/examples/multimedia/audiorecorder/audiorecorder.cpp
index edfa50074..04f72c304 100644
--- a/examples/multimedia/audiorecorder/audiorecorder.cpp
+++ b/examples/multimedia/audiorecorder/audiorecorder.cpp
@@ -100,7 +100,7 @@ AudioRecorder::AudioRecorder()
}
//sample rate
- auto sampleRates = m_audioEncoder->audioInput().supportedSampleRates();
+ auto sampleRates = m_captureSession.audioInput().supportedSampleRates();
ui->sampleRateBox->setRange(sampleRates.minimum, sampleRates.maximum);
ui->sampleRateBox->setValue(qBound(sampleRates.minimum, 44100, sampleRates.maximum));
@@ -191,7 +191,7 @@ static QVariant boxValue(const QComboBox *box)
void AudioRecorder::toggleRecord()
{
if (m_audioEncoder->state() == QMediaEncoder::StoppedState) {
- m_audioEncoder->setAudioInput(boxValue(ui->audioDeviceBox).value<QAudioDeviceInfo>());
+ m_captureSession.setAudioInput(boxValue(ui->audioDeviceBox).value<QAudioDeviceInfo>());
QMediaEncoderSettings settings;
settings.setFormat(boxValue(ui->containerBox).value<QMediaFormat::FileFormat>());
diff --git a/examples/multimediawidgets/camera/videosettings.cpp b/examples/multimediawidgets/camera/videosettings.cpp
index 439fb774f..42f8ba65a 100644
--- a/examples/multimediawidgets/camera/videosettings.cpp
+++ b/examples/multimediawidgets/camera/videosettings.cpp
@@ -57,7 +57,9 @@
#include <QMediaEncoder>
#include <QMediaFormat>
#include <QAudioDeviceInfo>
+#include <QMediaCaptureSession>
#include <QCameraInfo>
+#include <QCamera>
VideoSettings::VideoSettings(QMediaEncoder *mediaRecorder, QWidget *parent)
: QDialog(parent),
@@ -75,7 +77,7 @@ VideoSettings::VideoSettings(QMediaEncoder *mediaRecorder, QWidget *parent)
}
//sample rate:
- const auto sampleRates = mediaRecorder->audioInput().supportedSampleRates();
+ const auto sampleRates = mediaRecorder->captureSession()->audioInput().supportedSampleRates();
ui->audioSampleRateBox->setRange(sampleRates.minimum, sampleRates.maximum);
//video codecs
@@ -88,7 +90,7 @@ VideoSettings::VideoSettings(QMediaEncoder *mediaRecorder, QWidget *parent)
ui->videoResolutionBox->addItem(tr("Default"));
- auto supportedResolutions = mediaRecorder->videoInput().photoResolutions(); // ### Should use resolutions from video formats
+ auto supportedResolutions = mediaRecorder->captureSession()->camera()->cameraInfo().photoResolutions(); // ### Should use resolutions from video formats
for (const QSize &resolution : supportedResolutions) {
ui->videoResolutionBox->addItem(QString("%1x%2").arg(resolution.width()).arg(resolution.height()),
QVariant(resolution));
diff --git a/src/multimedia/recording/qmediaencoder.cpp b/src/multimedia/recording/qmediaencoder.cpp
index 9d53c5163..83f337cca 100644
--- a/src/multimedia/recording/qmediaencoder.cpp
+++ b/src/multimedia/recording/qmediaencoder.cpp
@@ -569,61 +569,12 @@ void QMediaEncoder::addMetaData(const QMediaMetaData &metaData)
for each of them with metaDataChanged() changed emitted once.
*/
-/*!
- \property QMediaEncoder::audioInput
- \brief the active audio input name.
-
-*/
-
-/*!
- Returns the active audio input.
-*/
-
-QAudioDeviceInfo QMediaEncoder::audioInput() const
-{
- Q_D(const QMediaEncoder);
-
- return d->control->audioInput();
-}
-
-/*!
- Returns information about the active video input.
-*/
-QCameraInfo QMediaEncoder::videoInput() const
-{
- Q_D(const QMediaEncoder);
-
- auto *camera = d->captureSession->camera();
- return camera ? camera->cameraInfo() : QCameraInfo();
-}
-
QMediaCaptureSession *QMediaEncoder::captureSession() const
{
Q_D(const QMediaEncoder);
return d->captureSession;
}
-/*!
- Set the active audio input to \a device.
-*/
-
-bool QMediaEncoder::setAudioInput(const QAudioDeviceInfo &device)
-{
- Q_D(QMediaEncoder);
-
- if (d->control && d->control->setAudioInput(device)) {
- audioInputChanged();
- return true;
- }
- return false;
-}
-
-/*!
- \fn QMediaEncoder::audioInputChanged(const QString& name)
-
- Signal emitted when active audio input changes to \a name.
-*/
-
QT_END_NAMESPACE
#include "moc_qmediaencoder.cpp"
diff --git a/src/multimedia/recording/qmediaencoder.h b/src/multimedia/recording/qmediaencoder.h
index 6135fc1e5..0a1d76066 100644
--- a/src/multimedia/recording/qmediaencoder.h
+++ b/src/multimedia/recording/qmediaencoder.h
@@ -111,7 +111,6 @@ class Q_MULTIMEDIA_EXPORT QMediaEncoder : public QMediaEncoderBase
Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged)
Q_PROPERTY(qreal volume READ volume WRITE setVolume NOTIFY volumeChanged)
Q_PROPERTY(QMediaMetaData metaData READ metaData WRITE setMetaData NOTIFY metaDataChanged)
- Q_PROPERTY(QAudioDeviceInfo audioInput READ audioInput WRITE setAudioInput NOTIFY audioInputChanged)
public:
QMediaEncoder(QObject *parent = nullptr);
@@ -132,6 +131,7 @@ public:
qint64 duration() const;
+ // ### These two properties should move to the capture session or a QAudioDevice object
bool isMuted() const;
qreal volume() const;
@@ -142,9 +142,6 @@ public:
void setMetaData(const QMediaMetaData &metaData);
void addMetaData(const QMediaMetaData &metaData);
- QAudioDeviceInfo audioInput() const;
- QCameraInfo videoInput() const;
-
QMediaCaptureSession *captureSession() const;
public Q_SLOTS:
@@ -153,7 +150,6 @@ public Q_SLOTS:
void stop();
void setMuted(bool muted);
void setVolume(qreal volume);
- bool setAudioInput(const QAudioDeviceInfo &device);
Q_SIGNALS:
void stateChanged(QMediaEncoder::State state);
@@ -162,7 +158,6 @@ Q_SIGNALS:
void mutedChanged(bool muted);
void volumeChanged(qreal volume);
void actualLocationChanged(const QUrl &location);
- void audioInputChanged();
void error(QMediaEncoder::Error error);
diff --git a/src/multimedia/recording/qmediarecorder.cpp b/src/multimedia/recording/qmediarecorder.cpp
index 462b8c9c8..0ec5a6127 100644
--- a/src/multimedia/recording/qmediarecorder.cpp
+++ b/src/multimedia/recording/qmediarecorder.cpp
@@ -97,7 +97,7 @@ QMediaRecorder::QMediaRecorder(QObject *parent, CaptureMode mode)
connect(d->encoder, &QMediaEncoder::statusChanged, this, &QMediaRecorder::statusChanged);
connect(d->encoder, &QMediaEncoder::mutedChanged, this, &QMediaRecorder::mutedChanged);
connect(d->encoder, &QMediaEncoder::volumeChanged, this, &QMediaRecorder::volumeChanged);
- connect(d->encoder, &QMediaEncoder::audioInputChanged, this, &QMediaRecorder::audioInputChanged);
+ connect(d->captureSession, &QMediaCaptureSession::audioInputChanged, this, &QMediaRecorder::audioInputChanged);
}
/*!
@@ -452,15 +452,7 @@ void QMediaRecorder::addMetaData(const QMediaMetaData &metaData)
QAudioDeviceInfo QMediaRecorder::audioInput() const
{
- return d_ptr->encoder->audioInput();
-}
-
-/*!
- Returns information about the active video input.
-*/
-QCameraInfo QMediaRecorder::videoInput() const
-{
- return d_ptr->encoder->videoInput();
+ return d_ptr->captureSession->audioInput();
}
QMediaCaptureSession *QMediaRecorder::captureSession() const
@@ -473,9 +465,9 @@ QMediaCaptureSession *QMediaRecorder::captureSession() const
Set the active audio input to \a device.
*/
-bool QMediaRecorder::setAudioInput(const QAudioDeviceInfo &device)
+void QMediaRecorder::setAudioInput(const QAudioDeviceInfo &device)
{
- return d_ptr->encoder->setAudioInput(device);
+ d_ptr->captureSession->setAudioInput(device);
}
/*!
diff --git a/src/multimedia/recording/qmediarecorder.h b/src/multimedia/recording/qmediarecorder.h
index a9efcd945..0706fe6f4 100644
--- a/src/multimedia/recording/qmediarecorder.h
+++ b/src/multimedia/recording/qmediarecorder.h
@@ -99,7 +99,6 @@ public:
void addMetaData(const QMediaMetaData &metaData);
QAudioDeviceInfo audioInput() const;
- QCameraInfo videoInput() const;
QMediaCaptureSession *captureSession() const;
@@ -109,7 +108,7 @@ public Q_SLOTS:
void stop();
void setMuted(bool muted);
void setVolume(qreal volume);
- bool setAudioInput(const QAudioDeviceInfo &device);
+ void setAudioInput(const QAudioDeviceInfo &device);
Q_SIGNALS:
void stateChanged(QMediaRecorder::State state);