diff options
Diffstat (limited to 'examples')
7 files changed, 57 insertions, 69 deletions
diff --git a/examples/multimedia/audiorecorder/audiorecorder.cpp b/examples/multimedia/audiorecorder/audiorecorder.cpp index 4983fa97c..63efc4ba8 100644 --- a/examples/multimedia/audiorecorder/audiorecorder.cpp +++ b/examples/multimedia/audiorecorder/audiorecorder.cpp @@ -59,6 +59,7 @@ #include <QMediaRecorder> #include <QStandardPaths> #include <qmediadevices.h> +#include <qmediaformat.h> #include <qaudiodevice.h> #include <qaudiobuffer.h> #include <qaudioinput.h> @@ -194,18 +195,18 @@ void AudioRecorder::toggleRecord() if (m_audioEncoder->recorderState() == QMediaRecorder::StoppedState) { m_captureSession.audioInput()->setDevice(boxValue(ui->audioDeviceBox).value<QAudioDevice>()); - QMediaEncoderSettings settings; - settings.setFileFormat(boxValue(ui->containerBox).value<QMediaFormat::FileFormat>()); - settings.setAudioCodec(boxValue(ui->audioCodecBox).value<QMediaFormat::AudioCodec>()); - settings.setAudioSampleRate(ui->sampleRateBox->value()); - settings.setAudioBitRate(boxValue(ui->bitrateBox).toInt()); - settings.setAudioChannelCount(boxValue(ui->channelsBox).toInt()); - settings.setQuality(QMediaEncoderSettings::Quality(ui->qualitySlider->value())); - settings.setEncodingMode(ui->constantQualityRadioButton->isChecked() ? - QMediaEncoderSettings::ConstantQualityEncoding : - QMediaEncoderSettings::ConstantBitRateEncoding); - - m_audioEncoder->setEncoderSettings(settings); + QMediaFormat format; + format.setFileFormat(boxValue(ui->containerBox).value<QMediaFormat::FileFormat>()); + format.setAudioCodec(boxValue(ui->audioCodecBox).value<QMediaFormat::AudioCodec>()); + m_audioEncoder->setMediaFormat(format); + m_audioEncoder->setAudioSampleRate(ui->sampleRateBox->value()); + m_audioEncoder->setAudioBitRate(boxValue(ui->bitrateBox).toInt()); + m_audioEncoder->setAudioChannelCount(boxValue(ui->channelsBox).toInt()); + m_audioEncoder->setQuality(QMediaRecorder::Quality(ui->qualitySlider->value())); + m_audioEncoder->setEncodingMode(ui->constantQualityRadioButton->isChecked() ? + QMediaRecorder::ConstantQualityEncoding : + QMediaRecorder::ConstantBitRateEncoding); + m_audioEncoder->record(); } else { diff --git a/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc b/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc index d5d49e723..723f7742f 100644 --- a/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc +++ b/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc @@ -51,8 +51,8 @@ \l{QAudioRecorder::supportedContainers()}{supportedContainers()}, and \l{QAudioRecorder::supportedAudioSampleRates()}{supportedAudioSampleRates()} methods. The quality slider is setup from 0 (zero) to - \l{QMediaEncoderSettings::VeryHighQuality} with a default value of - \l{QMediaEncoderSettings::NormalQuality}, while the bitrates are hardcoded + \l{QMediaRecorder::VeryHighQuality} with a default value of + \l{QMediaRecorder::NormalQuality}, while the bitrates are hardcoded into the list. \section1 Recording Audio @@ -79,18 +79,18 @@ \l{QMediaRecorder::record()}{record()} method. \code - QAudioEncoderSettings settings; - settings.setCodec(boxValue(ui->audioCodecBox).toString()); - settings.setSampleRate(boxValue(ui->sampleRateBox).toInt()); - settings.setBitRate(boxValue(ui->bitrateBox).toInt()); - settings.setQuality(QMediaEncoderSettings::EncodingQuality(ui->qualitySlider->value())); - settings.setEncodingMode(ui->constantQualityRadioButton->isChecked() ? - QMediaEncoderSettings::ConstantQualityEncoding : - QMediaEncoderSettings::ConstantBitRateEncoding); + QMediaFormat format; + format.setCodec(boxValue(ui->audioCodecBox).toString()); + audioRecorder->setMediaFormat(format); + audioRecorder->setSampleRate(boxValue(ui->sampleRateBox).toInt()); + audioRecorder->setBitRate(boxValue(ui->bitrateBox).toInt()); + audioRecorder->setQuality(QMediaRecorder::EncodingQuality(ui->qualitySlider->value())); + audioRecorder->setEncodingMode(ui->constantQualityRadioButton->isChecked() ? + QMediaRecorder::ConstantQualityEncoding : + QMediaRecorder::ConstantBitRateEncoding); QString container = boxValue(ui->containerBox).toString(); - audioRecorder->setEncodingSettings(settings, QVideoEncoderSettings(), container); audioRecorder->record(); \endcode diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp index f45971e9f..552990496 100644 --- a/examples/multimediawidgets/camera/camera.cpp +++ b/examples/multimediawidgets/camera/camera.cpp @@ -192,13 +192,8 @@ void Camera::configureVideoSettings() VideoSettings settingsDialog(m_mediaEncoder.data()); settingsDialog.setWindowFlags(settingsDialog.windowFlags() & ~Qt::WindowContextHelpButtonHint); - settingsDialog.setEncoderSettings(m_encoderSettings); - - if (settingsDialog.exec()) { - m_encoderSettings = settingsDialog.encoderSettings(); - - m_mediaEncoder->setEncoderSettings(m_encoderSettings); - } + if (settingsDialog.exec()) + settingsDialog.applySettings(); } void Camera::configureImageSettings() diff --git a/examples/multimediawidgets/camera/camera.h b/examples/multimediawidgets/camera/camera.h index 6a55f42b3..2b19dae86 100644 --- a/examples/multimediawidgets/camera/camera.h +++ b/examples/multimediawidgets/camera/camera.h @@ -138,7 +138,6 @@ private: QCameraImageCapture *m_imageCapture; QScopedPointer<QMediaRecorder> m_mediaEncoder; - QMediaEncoderSettings m_encoderSettings; bool m_isCapturingImage = false; bool m_applicationExiting = false; bool m_doImageCapture = true; diff --git a/examples/multimediawidgets/camera/imagesettings.h b/examples/multimediawidgets/camera/imagesettings.h index cb7691045..c155c5531 100644 --- a/examples/multimediawidgets/camera/imagesettings.h +++ b/examples/multimediawidgets/camera/imagesettings.h @@ -52,7 +52,6 @@ #define IMAGESETTINGS_H #include <QDialog> -#include <QMediaEncoderSettings> QT_BEGIN_NAMESPACE class QComboBox; diff --git a/examples/multimediawidgets/camera/videosettings.cpp b/examples/multimediawidgets/camera/videosettings.cpp index 9bc0d0ea0..22b82fb60 100644 --- a/examples/multimediawidgets/camera/videosettings.cpp +++ b/examples/multimediawidgets/camera/videosettings.cpp @@ -113,7 +113,26 @@ VideoSettings::VideoSettings(QMediaRecorder *mediaRecorder, QWidget *parent) QVariant::fromValue(format)); } - ui->qualitySlider->setRange(0, int(QMediaEncoderSettings::VeryHighQuality)); + ui->qualitySlider->setRange(0, int(QMediaRecorder::VeryHighQuality)); + + QMediaFormat format = mediaRecorder->mediaFormat(); + selectComboBoxItem(ui->containerFormatBox, QVariant::fromValue(format.fileFormat())); + selectComboBoxItem(ui->audioCodecBox, QVariant::fromValue(format.audioCodec())); + selectComboBoxItem(ui->videoCodecBox, QVariant::fromValue(format.videoCodec())); + + ui->qualitySlider->setValue(mediaRecorder->quality()); + ui->audioSampleRateBox->setValue(mediaRecorder->audioSampleRate()); + selectComboBoxItem(ui->videoResolutionBox, QVariant(mediaRecorder->videoResolution())); + + //special case for frame rate + for (int i = 0; i < ui->videoFramerateBox->count(); ++i) { + qreal itemRate = ui->videoFramerateBox->itemData(i).value<qreal>(); + if (qFuzzyCompare(itemRate, mediaRecorder->videoFrameRate())) { + ui->videoFramerateBox->setCurrentIndex(i); + break; + } + } + } VideoSettings::~VideoSettings() @@ -133,40 +152,17 @@ void VideoSettings::changeEvent(QEvent *e) } } -QMediaEncoderSettings VideoSettings::encoderSettings() const -{ - QMediaEncoderSettings settings = mediaRecorder->encoderSettings(); - settings.setQuality(QMediaEncoderSettings::Quality(ui->qualitySlider->value())); - settings.setFileFormat(boxValue(ui->containerFormatBox).value<QMediaFormat::FileFormat>()); - - settings.setAudioCodec(boxValue(ui->audioCodecBox).value<QMediaFormat::AudioCodec>()); - settings.setAudioSampleRate(ui->audioSampleRateBox->value()); - - settings.setVideoCodec(boxValue(ui->videoCodecBox).value<QMediaFormat::VideoCodec>()); - settings.setVideoResolution(boxValue(ui->videoResolutionBox).toSize()); - settings.setVideoFrameRate(boxValue(ui->videoFramerateBox).value<qreal>()); - return settings; -} - -void VideoSettings::setEncoderSettings(const QMediaEncoderSettings &encoderSettings) +void VideoSettings::applySettings() { - selectComboBoxItem(ui->containerFormatBox, QVariant::fromValue(encoderSettings.fileFormat())); - ui->qualitySlider->setValue(encoderSettings.quality()); - - selectComboBoxItem(ui->audioCodecBox, QVariant::fromValue(encoderSettings.audioCodec())); - ui->audioSampleRateBox->setValue(encoderSettings.audioSampleRate()); - - selectComboBoxItem(ui->videoCodecBox, QVariant::fromValue(encoderSettings.videoCodec())); - selectComboBoxItem(ui->videoResolutionBox, QVariant(encoderSettings.videoResolution())); - - //special case for frame rate - for (int i = 0; i < ui->videoFramerateBox->count(); ++i) { - qreal itemRate = ui->videoFramerateBox->itemData(i).value<qreal>(); - if (qFuzzyCompare(itemRate, encoderSettings.videoFrameRate())) { - ui->videoFramerateBox->setCurrentIndex(i); - break; - } - } + QMediaFormat format; + format.setFileFormat(boxValue(ui->containerFormatBox).value<QMediaFormat::FileFormat>()); + format.setAudioCodec(boxValue(ui->audioCodecBox).value<QMediaFormat::AudioCodec>()); + format.setVideoCodec(boxValue(ui->videoCodecBox).value<QMediaFormat::VideoCodec>()); + + mediaRecorder->setQuality(QMediaRecorder::Quality(ui->qualitySlider->value())); + mediaRecorder->setAudioSampleRate(ui->audioSampleRateBox->value()); + mediaRecorder->setVideoResolution(boxValue(ui->videoResolutionBox).toSize()); + mediaRecorder->setVideoFrameRate(boxValue(ui->videoFramerateBox).value<qreal>()); } QVariant VideoSettings::boxValue(const QComboBox *box) const diff --git a/examples/multimediawidgets/camera/videosettings.h b/examples/multimediawidgets/camera/videosettings.h index 2cb690d27..28f8ce8a7 100644 --- a/examples/multimediawidgets/camera/videosettings.h +++ b/examples/multimediawidgets/camera/videosettings.h @@ -52,7 +52,6 @@ #define VIDEOSETTINGS_H #include <QDialog> -#include <QMediaEncoderSettings> QT_BEGIN_NAMESPACE class QComboBox; @@ -68,8 +67,7 @@ public: explicit VideoSettings(QMediaRecorder *mediaRecorder, QWidget *parent = nullptr); ~VideoSettings(); - QMediaEncoderSettings encoderSettings() const; - void setEncoderSettings(const QMediaEncoderSettings&); + void applySettings(); protected: void changeEvent(QEvent *e) override; |