diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-03-05 12:54:30 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-03-18 12:17:57 +0000 |
commit | 3362cea38918f933f454a7b8db0c09b65fc4f1cb (patch) | |
tree | 3487d928642d2914b9145e46d9956162d8de2557 | |
parent | 625ae91bddb9f920494ac80ccc1ebe9f54a1ec2a (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.cpp | 4 | ||||
-rw-r--r-- | examples/multimediawidgets/camera/videosettings.cpp | 6 | ||||
-rw-r--r-- | src/multimedia/recording/qmediaencoder.cpp | 49 | ||||
-rw-r--r-- | src/multimedia/recording/qmediaencoder.h | 7 | ||||
-rw-r--r-- | src/multimedia/recording/qmediarecorder.cpp | 16 | ||||
-rw-r--r-- | src/multimedia/recording/qmediarecorder.h | 3 |
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); |