diff options
Diffstat (limited to 'src/multimedia/platform/qplatformmediaencoder_p.h')
-rw-r--r-- | src/multimedia/platform/qplatformmediaencoder_p.h | 70 |
1 files changed, 68 insertions, 2 deletions
diff --git a/src/multimedia/platform/qplatformmediaencoder_p.h b/src/multimedia/platform/qplatformmediaencoder_p.h index 102842dc1..2661718d9 100644 --- a/src/multimedia/platform/qplatformmediaencoder_p.h +++ b/src/multimedia/platform/qplatformmediaencoder_p.h @@ -52,9 +52,12 @@ #define QPLATFORMMEDIAENCODER_H #include <QtCore/qurl.h> +#include <QtCore/qsize.h> +#include <QtCore/qmimetype.h> #include <QtMultimedia/qmediarecorder.h> #include <QtMultimedia/qmediametadata.h> +#include <QtMultimedia/qmediaformat.h> QT_BEGIN_NAMESPACE @@ -63,8 +66,71 @@ QT_END_NAMESPACE QT_BEGIN_NAMESPACE -// Required for QDoc workaround -class QString; +class Q_MULTIMEDIA_EXPORT QMediaEncoderSettings +{ + QMediaRecorder::EncodingMode m_encodingMode = QMediaRecorder::ConstantQualityEncoding; + QMediaRecorder::Quality m_quality = QMediaRecorder::NormalQuality; + + QMediaFormat m_format; + int m_audioBitrate = -1; + int m_audioSampleRate = -1; + int m_audioChannels = -1; + + QSize m_videoResolution = QSize(-1, -1); + int m_videoFrameRate = -1; + int m_videoBitRate = -1; +public: + + QMediaFormat mediaFormat() const { return m_format; } + void setMediaFormat(const QMediaFormat &format) { m_format = format; } + void resolveFormat(QMediaFormat::ResolveFlags flags = QMediaFormat::NoFlags) + { m_format.resolveForEncoding(flags); } + + QMediaFormat::FileFormat fileFormat() const { return mediaFormat().fileFormat(); } + QMediaFormat::VideoCodec videoCodec() const { return mediaFormat().videoCodec(); } + QMediaFormat::AudioCodec audioCodec() const { return mediaFormat().audioCodec(); } + QMimeType mimeType() const { return mediaFormat().mimeType(); } + + QMediaRecorder::EncodingMode encodingMode() const { return m_encodingMode; } + void setEncodingMode(QMediaRecorder::EncodingMode mode) { m_encodingMode = mode; } + + QMediaRecorder::Quality quality() const { return m_quality; } + void setQuality(QMediaRecorder::Quality quality) { m_quality = quality; } + + QSize videoResolution() const { return m_videoResolution; } + void setVideoResolution(const QSize &size) { m_videoResolution = size; } + + qreal videoFrameRate() const { return m_videoFrameRate; } + void setVideoFrameRate(qreal rate) { m_videoFrameRate = rate; } + + int videoBitRate() const { return m_videoBitRate; } + void setVideoBitRate(int bitrate) { m_videoBitRate = bitrate; } + + int audioBitRate() const { return m_audioBitrate; } + void setAudioBitRate(int bitrate) { m_audioBitrate = bitrate; } + + int audioChannelCount() const { return m_audioChannels; } + void setAudioChannelCount(int channels) { m_audioChannels = channels; } + + int audioSampleRate() const { return m_audioSampleRate; } + void setAudioSampleRate(int rate) { m_audioSampleRate = rate; } + + bool operator==(const QMediaEncoderSettings &other) const + { + return m_format == other.m_format && + m_encodingMode == other.m_encodingMode && + m_quality == other.m_quality && + m_audioBitrate == other.m_audioBitrate && + m_audioSampleRate == other.m_audioSampleRate && + m_audioChannels == other.m_audioChannels && + m_videoResolution == other.m_videoResolution && + m_videoFrameRate == other.m_videoFrameRate && + m_videoBitRate == other.m_videoBitRate; + } + + bool operator!=(const QMediaEncoderSettings &other) const + { return !operator==(other); } +}; class Q_MULTIMEDIA_EXPORT QPlatformMediaEncoder { |