diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-06-11 12:49:26 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-06-16 10:03:03 +0200 |
commit | 9c309ede2feb598908b1476062b79d0d23759bf3 (patch) | |
tree | 29e68c3ce8698272206b4fdda78d6b3641da2a8e /examples/multimediawidgets/camera/videosettings.cpp | |
parent | fde5d6f7cce6118cac4ce7b92cd056225737917f (diff) |
Get rid of QMediaEncoderSettings
As per API review, fold this class into QMediaRecorder as that's
the only place where it is being used. This removes one level
of indirection from the API and also makes it possible to use
from QML.
Change-Id: Id9157df04512382cce28e89b082433ec67d36b28
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'examples/multimediawidgets/camera/videosettings.cpp')
-rw-r--r-- | examples/multimediawidgets/camera/videosettings.cpp | 64 |
1 files changed, 30 insertions, 34 deletions
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 |