diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-04-20 11:36:46 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-04-27 06:11:46 +0000 |
commit | 934cdc9da185d5b7e85f898259ede4dcac9dcc21 (patch) | |
tree | 0feccb06492304284f976c96711549d294755c53 /src/multimedia | |
parent | d69631a206982c35c856103f27f5a9e4ed449883 (diff) |
Fix tst_qmediaencoder
Fix and re-enable all tests for QMediaEncoderSettings
while at it.
Change-Id: Ie15cd59a849412e02c6d38c91bf1bea16456cdd5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Doris Verria <doris.verria@qt.io>
Diffstat (limited to 'src/multimedia')
-rw-r--r-- | src/multimedia/qmediaformat.cpp | 9 | ||||
-rw-r--r-- | src/multimedia/qmediaformat.h | 4 | ||||
-rw-r--r-- | src/multimedia/recording/qmediacapturesession.cpp | 6 | ||||
-rw-r--r-- | src/multimedia/recording/qmediaencoder.cpp | 6 | ||||
-rw-r--r-- | src/multimedia/recording/qmediaencodersettings.cpp | 16 | ||||
-rw-r--r-- | src/multimedia/recording/qmediaencodersettings.h | 4 |
6 files changed, 39 insertions, 6 deletions
diff --git a/src/multimedia/qmediaformat.cpp b/src/multimedia/qmediaformat.cpp index 3c2841bfa..77cb4bbbe 100644 --- a/src/multimedia/qmediaformat.cpp +++ b/src/multimedia/qmediaformat.cpp @@ -335,4 +335,13 @@ QString QMediaFormat::videoCodecDescription(QMediaFormat::VideoCodec c) return QString::fromUtf8(descriptions[int(c) + 1]); } +bool QMediaFormat::operator==(const QMediaFormat &other) const +{ + Q_ASSERT(!d); + return fmtMode == other.fmtMode && + fmt == other.fmt && + audio == other.audio && + video == other.video; +} + QT_END_NAMESPACE diff --git a/src/multimedia/qmediaformat.h b/src/multimedia/qmediaformat.h index 3b8b9d9ce..4bd070135 100644 --- a/src/multimedia/qmediaformat.h +++ b/src/multimedia/qmediaformat.h @@ -147,6 +147,10 @@ public: static QString audioCodecDescription(QMediaFormat::AudioCodec c); static QString videoCodecDescription(QMediaFormat::VideoCodec c); + bool operator==(const QMediaFormat &other) const; + bool operator!=(const QMediaFormat &other) const + { return !operator==(other); } + protected: friend class QMediaFormatPrivate; Mode fmtMode; diff --git a/src/multimedia/recording/qmediacapturesession.cpp b/src/multimedia/recording/qmediacapturesession.cpp index 7580a4a8e..d45ae84db 100644 --- a/src/multimedia/recording/qmediacapturesession.cpp +++ b/src/multimedia/recording/qmediacapturesession.cpp @@ -203,14 +203,14 @@ QMediaEncoder *QMediaCaptureSession::encoder() return d_ptr->encoder; } -void QMediaCaptureSession::setEncoder(QMediaEncoder *recorder) +void QMediaCaptureSession::setEncoder(QMediaEncoder *encoder) { - if (d_ptr->encoder == recorder) + if (d_ptr->encoder == encoder) return; if (d_ptr->encoder) d_ptr->encoder->setCaptureSession(nullptr); - d_ptr->encoder = recorder; + d_ptr->encoder = encoder; if (d_ptr->encoder) d_ptr->encoder->setCaptureSession(this); emit encoderChanged(); diff --git a/src/multimedia/recording/qmediaencoder.cpp b/src/multimedia/recording/qmediaencoder.cpp index 127304c26..ad050aaa8 100644 --- a/src/multimedia/recording/qmediaencoder.cpp +++ b/src/multimedia/recording/qmediaencoder.cpp @@ -165,7 +165,8 @@ void QMediaEncoder::setCaptureSession(QMediaCaptureSession *session) } d->control = d->captureSession->platformSession()->mediaEncoder(); - Q_ASSERT(d->control); + if (!d->control) + return; connect(d->control, SIGNAL(stateChanged(QMediaEncoder::State)), this, SLOT(_q_stateChanged(QMediaEncoder::State))); @@ -303,7 +304,8 @@ void QMediaEncoder::setEncoderSettings(const QMediaEncoderSettings &settings) Q_D(QMediaEncoder); d->encoderSettings = settings; - d->control->setEncoderSettings(settings); + if (d->control) + d->control->setEncoderSettings(settings); d->applySettingsLater(); } diff --git a/src/multimedia/recording/qmediaencodersettings.cpp b/src/multimedia/recording/qmediaencodersettings.cpp index 1a4657578..da70caa6b 100644 --- a/src/multimedia/recording/qmediaencodersettings.cpp +++ b/src/multimedia/recording/qmediaencodersettings.cpp @@ -122,7 +122,6 @@ constexpr QMediaFormat::VideoCodec videoPriorityList[] = class QMediaEncoderSettingsPrivate : public QSharedData { public: - bool isNull = true; QMediaEncoderSettings::EncodingMode encodingMode = QMediaEncoderSettings::ConstantQualityEncoding; QMediaEncoderSettings::Quality quality = QMediaEncoderSettings::NormalQuality; @@ -437,6 +436,21 @@ void QMediaEncoderSettings::setAudioSampleRate(int rate) d->audioSampleRate = rate; } +bool QMediaEncoderSettings::operator==(const QMediaEncoderSettings &other) const +{ + if (d == other.d) + return true; + return QMediaFormat::operator==(other) && + d->encodingMode == other.d->encodingMode && + d->quality == other.d->quality && + d->audioBitrate == other.d->audioBitrate && + d->audioSampleRate == other.d->audioSampleRate && + d->audioChannels == other.d->audioChannels && + d->videoResolution == other.d->videoResolution && + d->videoFrameRate == other.d->videoFrameRate && + d->videoBitRate == other.d->videoBitRate; +} + class QImageEncoderSettingsPrivate : public QSharedData { diff --git a/src/multimedia/recording/qmediaencodersettings.h b/src/multimedia/recording/qmediaencodersettings.h index 2b7532543..0e490f47e 100644 --- a/src/multimedia/recording/qmediaencodersettings.h +++ b/src/multimedia/recording/qmediaencodersettings.h @@ -112,6 +112,10 @@ public: int audioSampleRate() const; void setAudioSampleRate(int rate); + bool operator==(const QMediaEncoderSettings &other) const; + bool operator!=(const QMediaEncoderSettings &other) const + { return !operator==(other); } + private: QSharedDataPointer<QMediaEncoderSettingsPrivate> d; }; |