summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/qplatformmediaencoder_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/qplatformmediaencoder_p.h')
-rw-r--r--src/multimedia/platform/qplatformmediaencoder_p.h70
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
{