summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform')
-rw-r--r--src/multimedia/platform/android/audio/qandroidaudiosink.cpp37
-rw-r--r--src/multimedia/platform/android/audio/qandroidaudiosink_p.h2
-rw-r--r--src/multimedia/platform/android/common/qandroidaudiooutput_p.h13
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h1
-rw-r--r--src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp6
-rw-r--r--src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h1
-rw-r--r--src/multimedia/platform/android/wrappers/jni/androidmediaplayer.cpp2
-rw-r--r--src/multimedia/platform/android/wrappers/jni/androidmediaplayer_p.h1
-rw-r--r--src/multimedia/platform/darwin/camera/avfcamera.mm10
-rw-r--r--src/multimedia/platform/darwin/camera/avfcamera_p.h2
-rw-r--r--src/multimedia/platform/darwin/camera/avfcamerasession.mm14
-rw-r--r--src/multimedia/platform/darwin/camera/avfcamerasession_p.h4
-rw-r--r--src/multimedia/platform/darwin/camera/avfmediaencoder.mm40
-rw-r--r--src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp10
-rw-r--r--src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera_p.h2
-rw-r--r--src/multimedia/platform/pulseaudio/qpulseaudiosink.cpp8
-rw-r--r--src/multimedia/platform/qnx/camera/bbcamerasession.cpp10
-rw-r--r--src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp10
-rw-r--r--src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h3
-rw-r--r--src/multimedia/platform/qnx/mediaplayer/mmrendererutil.cpp75
-rw-r--r--src/multimedia/platform/qnx/mediaplayer/mmrendererutil_p.h3
-rw-r--r--src/multimedia/platform/qplatformaudiooutput_p.h3
-rw-r--r--src/multimedia/platform/qplatformcamera_p.h12
-rw-r--r--src/multimedia/platform/qplatformmediaencoder_p.h70
-rw-r--r--src/multimedia/platform/qplatformmediaformatinfo_p.h2
-rw-r--r--src/multimedia/platform/qplatformmediaplayer.cpp18
-rw-r--r--src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession.cpp34
-rw-r--r--src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession_p.h6
28 files changed, 148 insertions, 251 deletions
diff --git a/src/multimedia/platform/android/audio/qandroidaudiosink.cpp b/src/multimedia/platform/android/audio/qandroidaudiosink.cpp
index 48a536819..1a0b622a3 100644
--- a/src/multimedia/platform/android/audio/qandroidaudiosink.cpp
+++ b/src/multimedia/platform/android/audio/qandroidaudiosink.cpp
@@ -270,43 +270,6 @@ qreal QAndroidAudioSink::volume() const
return m_volume;
}
-void QAndroidAudioSink::setRole(QAudio::Role role)
-{
- QPlatformAudioSink::setRole(role);
-#ifdef ANDROID
- switch (role) {
- case QAudio::MusicRole:
- Q_FALLTHROUGH();
- case QAudio::VideoRole:
- m_streamType = SL_ANDROID_STREAM_MEDIA;
- break;
- case QAudio::VoiceCommunicationRole:
- m_streamType = SL_ANDROID_STREAM_VOICE;
- case QAudio::NotificationRole:
- m_streamType = SL_ANDROID_STREAM_NOTIFICATION;
- break;
- case QAudio::AlarmRole:
- m_streamType = SL_ANDROID_STREAM_ALARM;
- break;
- case QAudio::RingtoneRole:
- m_streamType = SL_ANDROID_STREAM_RING;
- break;
- case QAudio::AccessibilityRole:
-#define STREAM_ACCESSIBILITY 0xa // AudioManager.STREAM_ACCESSIBILITY
- m_streamType = STREAM_ACCESSIBILITY;
- case QAudio::SonificationRole:
- Q_FALLTHROUGH();
- case QAudio::GameRole:
- Q_FALLTHROUGH();
- case QAudio::UnknownRole:
- m_streamType = -1;
- break;
- }
-
- m_startRequiresInit = true;
-#endif // ANDROID
-}
-
void QAndroidAudioSink::onEOSEvent()
{
if (m_state != QAudio::ActiveState)
diff --git a/src/multimedia/platform/android/audio/qandroidaudiosink_p.h b/src/multimedia/platform/android/audio/qandroidaudiosink_p.h
index c8cf2b91a..40b964dc2 100644
--- a/src/multimedia/platform/android/audio/qandroidaudiosink_p.h
+++ b/src/multimedia/platform/android/audio/qandroidaudiosink_p.h
@@ -86,8 +86,6 @@ public:
void setVolume(qreal volume) override;
qreal volume() const override;
- void setRole(QAudio::Role role) override;
-
private:
friend class SLIODevicePrivate;
diff --git a/src/multimedia/platform/android/common/qandroidaudiooutput_p.h b/src/multimedia/platform/android/common/qandroidaudiooutput_p.h
index 65e40a300..e17f158fc 100644
--- a/src/multimedia/platform/android/common/qandroidaudiooutput_p.h
+++ b/src/multimedia/platform/android/common/qandroidaudiooutput_p.h
@@ -58,19 +58,6 @@ class Q_MULTIMEDIA_EXPORT QAndroidAudioOutput : public QPlatformAudioOutput
{
public:
QAndroidAudioOutput(QAudioOutput *qq) : QPlatformAudioOutput(qq) {}
-
- virtual QList<QAudio::Role> supportedAudioRoles() const {
- return QList<QAudio::Role>()
- << QAudio::VoiceCommunicationRole
- << QAudio::MusicRole
- << QAudio::VideoRole
- << QAudio::SonificationRole
- << QAudio::AlarmRole
- << QAudio::NotificationRole
- << QAudio::RingtoneRole
- << QAudio::AccessibilityRole
- << QAudio::GameRole;
- }
};
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h b/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h
index 75929b489..5513e5399 100644
--- a/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h
+++ b/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h
@@ -53,7 +53,6 @@
//
#include <qcamera.h>
-#include <qmediaencodersettings.h>
#include <QCameraImageCapture>
#include <QSet>
#include <QMutex>
diff --git a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp
index 85b4e3df4..7aff61200 100644
--- a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp
+++ b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp
@@ -220,11 +220,6 @@ void QAndroidMediaPlayerControl::setMuted(bool muted)
mPendingMute = -1;
}
-void QAndroidMediaPlayerControl::setAudioRole(QAudio::Role role)
-{
- mMediaPlayer->setAudioRole(role);
-}
-
QMediaMetaData QAndroidMediaPlayerControl::metaData() const
{
return QAndroidMetaData::extractMetadata(mMediaContent);
@@ -400,7 +395,6 @@ void QAndroidMediaPlayerControl::setAudioOutput(QPlatformAudioOutput *output)
// #### Implement device changes: connect(m_audioOutput->q, &QAudioOutput::deviceChanged, this, XXXX);
connect(m_audioOutput->q, &QAudioOutput::volumeChanged, this, &QAndroidMediaPlayerControl::setVolume);
connect(m_audioOutput->q, &QAudioOutput::mutedChanged, this, &QAndroidMediaPlayerControl::setMuted);
- connect(m_audioOutput->q, &QAudioOutput::audioRoleChanged, this, &QAndroidMediaPlayerControl::setAudioRole);
}
}
diff --git a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h
index 3bbc20260..cf5553a7e 100644
--- a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h
+++ b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h
@@ -99,7 +99,6 @@ public:
private Q_SLOTS:
void setVolume(float volume);
void setMuted(bool muted);
- void setAudioRole(QAudio::Role role);
void onVideoOutputReady(bool ready);
void onError(qint32 what, qint32 extra);
void onInfo(qint32 what, qint32 extra);
diff --git a/src/multimedia/platform/android/wrappers/jni/androidmediaplayer.cpp b/src/multimedia/platform/android/wrappers/jni/androidmediaplayer.cpp
index d60702cc0..26da7ed3d 100644
--- a/src/multimedia/platform/android/wrappers/jni/androidmediaplayer.cpp
+++ b/src/multimedia/platform/android/wrappers/jni/androidmediaplayer.cpp
@@ -241,6 +241,7 @@ void AndroidMediaPlayer::setDisplay(AndroidSurfaceTexture *surfaceTexture)
surfaceTexture ? surfaceTexture->surfaceHolder() : 0);
}
+#if 0
void AndroidMediaPlayer::setAudioRole(QAudio::Role role)
{
QString r;
@@ -320,6 +321,7 @@ void AndroidMediaPlayer::setAudioRole(QAudio::Role role)
mMediaPlayer.callMethod<void>("setAudioAttributes", "(II)V", jint(type), jint(usage));
}
+#endif
static void onErrorNative(JNIEnv *env, jobject thiz, jint what, jint extra, jlong id)
{
diff --git a/src/multimedia/platform/android/wrappers/jni/androidmediaplayer_p.h b/src/multimedia/platform/android/wrappers/jni/androidmediaplayer_p.h
index 7fb6094a1..2d1e645c4 100644
--- a/src/multimedia/platform/android/wrappers/jni/androidmediaplayer_p.h
+++ b/src/multimedia/platform/android/wrappers/jni/androidmediaplayer_p.h
@@ -129,7 +129,6 @@ public:
void setVolume(int volume);
bool setPlaybackRate(qreal rate);
void setDisplay(AndroidSurfaceTexture *surfaceTexture);
- void setAudioRole(QAudio::Role role);
static bool registerNativeMethods();
diff --git a/src/multimedia/platform/darwin/camera/avfcamera.mm b/src/multimedia/platform/darwin/camera/avfcamera.mm
index 89c8aa0de..b52ee7743 100644
--- a/src/multimedia/platform/darwin/camera/avfcamera.mm
+++ b/src/multimedia/platform/darwin/camera/avfcamera.mm
@@ -176,7 +176,7 @@ void AVFCamera::setActive(bool active)
{
if (m_active == active)
return;
- if (m_cameraInfo.isNull() && active)
+ if (m_cameraDevice.isNull() && active)
return;
m_active = active;
@@ -204,9 +204,9 @@ QCamera::Status AVFCamera::status() const
void AVFCamera::setCamera(const QCameraDevice &camera)
{
- if (m_cameraInfo == camera)
+ if (m_cameraDevice == camera)
return;
- m_cameraInfo = camera;
+ m_cameraDevice = camera;
if (m_session)
m_session->setActiveCamera(camera);
}
@@ -229,7 +229,7 @@ void AVFCamera::setCaptureSession(QPlatformMediaCaptureSession *session)
m_session->setActiveCamera(QCameraDevice());
m_session->setActive(m_active);
- m_session->setActiveCamera(m_cameraInfo);
+ m_session->setActiveCamera(m_cameraDevice);
}
void AVFCamera::updateStatus()
@@ -254,7 +254,7 @@ AVCaptureConnection *AVFCamera::videoConnection() const
AVCaptureDevice *AVFCamera::device() const
{
AVCaptureDevice *device = nullptr;
- QByteArray deviceId = m_cameraInfo.id();
+ QByteArray deviceId = m_cameraDevice.id();
if (!deviceId.isEmpty()) {
device = [AVCaptureDevice deviceWithUniqueID:
[NSString stringWithUTF8String:
diff --git a/src/multimedia/platform/darwin/camera/avfcamera_p.h b/src/multimedia/platform/darwin/camera/avfcamera_p.h
index 42999b917..296ef0350 100644
--- a/src/multimedia/platform/darwin/camera/avfcamera_p.h
+++ b/src/multimedia/platform/darwin/camera/avfcamera_p.h
@@ -127,7 +127,7 @@ private:
AVFCameraService *m_service = nullptr;
AVFCameraSession *m_session = nullptr;
- QCameraDevice m_cameraInfo;
+ QCameraDevice m_cameraDevice;
bool m_active;
QCamera::Status m_lastStatus;
diff --git a/src/multimedia/platform/darwin/camera/avfcamerasession.mm b/src/multimedia/platform/darwin/camera/avfcamerasession.mm
index 61dd83459..7febe567f 100644
--- a/src/multimedia/platform/darwin/camera/avfcamerasession.mm
+++ b/src/multimedia/platform/darwin/camera/avfcamerasession.mm
@@ -177,13 +177,13 @@ AVFCameraSession::~AVFCameraSession()
void AVFCameraSession::setActiveCamera(const QCameraDevice &info)
{
- if (m_activeCameraInfo != info) {
- m_activeCameraInfo = info;
+ if (m_activeCameraDevice != info) {
+ m_activeCameraDevice = info;
[m_captureSession beginConfiguration];
attachVideoInputDevice();
- if (!m_activeCameraInfo.isNull() && !m_videoOutput)
+ if (!m_activeCameraDevice.isNull() && !m_videoOutput)
setVideoOutput(new AVFCameraRenderer(this));
[m_captureSession commitConfiguration];
@@ -254,7 +254,7 @@ void AVFCameraSession::setActive(bool active)
attachAudioInputDevice();
setAudioOutput();
}
- if (!m_activeCameraInfo.isNull()) {
+ if (!m_activeCameraDevice.isNull()) {
attachVideoInputDevice();
Q_EMIT readyToConfigureConnections();
m_defaultCodec = 0;
@@ -309,7 +309,7 @@ AVCaptureDevice *AVFCameraSession::createVideoCaptureDevice()
{
AVCaptureDevice *device = nullptr;
- QByteArray deviceId = m_activeCameraInfo.id();
+ QByteArray deviceId = m_activeCameraDevice.id();
if (!deviceId.isEmpty()) {
device = [AVCaptureDevice deviceWithUniqueID:
[NSString stringWithUTF8String:
@@ -330,7 +330,7 @@ void AVFCameraSession::attachVideoInputDevice()
AVCaptureDevice *videoDevice = createVideoCaptureDevice();
if (!videoDevice) {
- m_activeCameraInfo = QCameraDevice();
+ m_activeCameraDevice = QCameraDevice();
return;
}
@@ -347,7 +347,7 @@ void AVFCameraSession::attachVideoInputDevice()
[m_captureSession addInput:m_videoInput];
} else {
qWarning() << "Failed to connect video device input";
- m_activeCameraInfo = QCameraDevice();
+ m_activeCameraDevice = QCameraDevice();
}
}
}
diff --git a/src/multimedia/platform/darwin/camera/avfcamerasession_p.h b/src/multimedia/platform/darwin/camera/avfcamerasession_p.h
index 9d863e7fa..fee807c21 100644
--- a/src/multimedia/platform/darwin/camera/avfcamerasession_p.h
+++ b/src/multimedia/platform/darwin/camera/avfcamerasession_p.h
@@ -75,7 +75,7 @@ public:
AVFCameraSession(AVFCameraService *service, QObject *parent = nullptr);
~AVFCameraSession();
- QCameraDevice activeCameraInfo() const { return m_activeCameraInfo; }
+ QCameraDevice activecameraDevice() const { return m_activeCameraDevice; }
void setActiveCamera(const QCameraDevice &info);
AVFCameraRenderer *videoOutput() const { return m_videoOutput; }
@@ -116,7 +116,7 @@ private:
bool applyImageEncoderSettings();
bool applyEncoderSettings();
- QCameraDevice m_activeCameraInfo;
+ QCameraDevice m_activeCameraDevice;
AVFCameraService *m_service;
AVCaptureSession *m_captureSession;
diff --git a/src/multimedia/platform/darwin/camera/avfmediaencoder.mm b/src/multimedia/platform/darwin/camera/avfmediaencoder.mm
index 916d9fe7e..6f881f986 100644
--- a/src/multimedia/platform/darwin/camera/avfmediaencoder.mm
+++ b/src/multimedia/platform/darwin/camera/avfmediaencoder.mm
@@ -166,22 +166,22 @@ static NSDictionary *avfAudioSettings(const QMediaEncoderSettings &encoderSettin
#ifdef Q_OS_MACOS
// Setting AVEncoderQualityKey is not allowed when format ID is alac or lpcm
if (codecId != kAudioFormatAppleLossless && codecId != kAudioFormatLinearPCM
- && encoderSettings.encodingMode() == QMediaEncoderSettings::ConstantQualityEncoding) {
+ && encoderSettings.encodingMode() == QMediaRecorder::ConstantQualityEncoding) {
int quality;
switch (encoderSettings.quality()) {
- case QMediaEncoderSettings::VeryLowQuality:
+ case QMediaRecorder::VeryLowQuality:
quality = AVAudioQualityMin;
break;
- case QMediaEncoderSettings::LowQuality:
+ case QMediaRecorder::LowQuality:
quality = AVAudioQualityLow;
break;
- case QMediaEncoderSettings::HighQuality:
+ case QMediaRecorder::HighQuality:
quality = AVAudioQualityHigh;
break;
- case QMediaEncoderSettings::VeryHighQuality:
+ case QMediaRecorder::VeryHighQuality:
quality = AVAudioQualityMax;
break;
- case QMediaEncoderSettings::NormalQuality:
+ case QMediaRecorder::NormalQuality:
default:
quality = AVAudioQualityMedium;
break;
@@ -300,7 +300,7 @@ NSDictionary *avfVideoSettings(QMediaEncoderSettings &encoderSettings, AVCapture
[videoSettings setObject:[NSNumber numberWithInt:w] forKey:AVVideoWidthKey];
[videoSettings setObject:[NSNumber numberWithInt:h] forKey:AVVideoHeightKey];
- encoderSettings.setVideoResolution(w, h);
+ encoderSettings.setVideoResolution(QSize(w, h));
} else {
encoderSettings.setVideoResolution(qt_device_format_resolution(device.activeFormat));
}
@@ -319,22 +319,22 @@ NSDictionary *avfVideoSettings(QMediaEncoderSettings &encoderSettings, AVCapture
int bitrate = -1;
float quality = -1.f;
- if (encoderSettings.encodingMode() == QMediaEncoderSettings::ConstantQualityEncoding) {
- if (encoderSettings.quality() != QMediaEncoderSettings::NormalQuality) {
+ if (encoderSettings.encodingMode() == QMediaRecorder::ConstantQualityEncoding) {
+ if (encoderSettings.quality() != QMediaRecorder::NormalQuality) {
if (codec != QMediaFormat::VideoCodec::MotionJPEG) {
qWarning("ConstantQualityEncoding is not supported for MotionJPEG");
} else {
switch (encoderSettings.quality()) {
- case QMediaEncoderSettings::VeryLowQuality:
+ case QMediaRecorder::VeryLowQuality:
quality = 0.f;
break;
- case QMediaEncoderSettings::LowQuality:
+ case QMediaRecorder::LowQuality:
quality = 0.25f;
break;
- case QMediaEncoderSettings::HighQuality:
+ case QMediaRecorder::HighQuality:
quality = 0.75f;
break;
- case QMediaEncoderSettings::VeryHighQuality:
+ case QMediaRecorder::VeryHighQuality:
quality = 1.f;
break;
default:
@@ -343,7 +343,7 @@ NSDictionary *avfVideoSettings(QMediaEncoderSettings &encoderSettings, AVCapture
}
}
}
- } else if (encoderSettings.encodingMode() == QMediaEncoderSettings::AverageBitRateEncoding){
+ } else if (encoderSettings.encodingMode() == QMediaRecorder::AverageBitRateEncoding){
if (codec != QMediaFormat::VideoCodec::H264 && codec != QMediaFormat::VideoCodec::H265)
qWarning() << "AverageBitRateEncoding is not supported for codec" << QMediaFormat::videoCodecName(codec);
else
@@ -371,7 +371,7 @@ void AVFMediaEncoder::applySettings()
if (m_state != QMediaRecorder::StoppedState)
return;
- const auto flag = (session->activeCameraInfo().isNull())
+ const auto flag = (session->activecameraDevice().isNull())
? QMediaFormat::NoFlags
: QMediaFormat::RequiresVideo;
@@ -413,7 +413,7 @@ void AVFMediaEncoder::setEncoderSettings(const QMediaEncoderSettings &settings)
QMediaEncoderSettings AVFMediaEncoder::encoderSettings() const
{
QMediaEncoderSettings s = m_settings;
- const auto flag = (m_service->session()->activeCameraInfo().isNull())
+ const auto flag = (m_service->session()->activecameraDevice().isNull())
? QMediaFormat::NoFlags
: QMediaFormat::RequiresVideo;
s.resolveFormat(flag);
@@ -483,14 +483,14 @@ void AVFMediaEncoder::record()
// Make sure the video is recorded in device orientation.
// The top of the video will match the side of the device which is on top
// when recording starts (regardless of the UI orientation).
- // QCameraDevice cameraInfo = m_service->session()->activeCameraInfo();
+ // QCameraDevice cameraDevice = m_service->session()->activecameraDevice();
// int screenOrientation = 360 - m_orientationHandler.currentOrientation();
// ###
- // if (cameraInfo.position() == QCameraDevice::FrontFace)
- // rotation = (screenOrientation + cameraInfo.orientation()) % 360;
+ // if (cameraDevice.position() == QCameraDevice::FrontFace)
+ // rotation = (screenOrientation + cameraDevice.orientation()) % 360;
// else
- // rotation = (screenOrientation + (360 - cameraInfo.orientation())) % 360;
+ // rotation = (screenOrientation + (360 - cameraDevice.orientation())) % 360;
}
const QString path(m_outputLocation.scheme() == QLatin1String("file") ?
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
index 521a1338f..c58ecaaf1 100644
--- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
+++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
@@ -85,7 +85,7 @@ void QGstreamerCamera::setActive(bool active)
{
if (m_active == active)
return;
- if (m_cameraInfo.isNull() && active)
+ if (m_cameraDevice.isNull() && active)
return;
m_active = active;
@@ -96,11 +96,11 @@ void QGstreamerCamera::setActive(bool active)
void QGstreamerCamera::setCamera(const QCameraDevice &camera)
{
- if (m_cameraInfo == camera)
+ if (m_cameraDevice == camera)
return;
// qDebug() << "setCamera" << camera;
- m_cameraInfo = camera;
+ m_cameraDevice = camera;
bool havePipeline = !gstPipeline.isNull();
@@ -141,7 +141,7 @@ void QGstreamerCamera::setCameraFormatInternal(const QCameraFormat &format)
{
QCameraFormat f = format;
if (f.isNull())
- f = findBestCameraFormat(m_cameraInfo);
+ f = findBestCameraFormat(m_cameraDevice);
// add jpeg decoder where required
gstDecode.setStateSync(GST_STATE_NULL);
@@ -169,7 +169,7 @@ void QGstreamerCamera::setCameraFormatInternal(const QCameraFormat &format)
bool QGstreamerCamera::setCameraFormat(const QCameraFormat &format)
{
- if (!m_cameraInfo.videoFormats().contains(format))
+ if (!m_cameraDevice.videoFormats().contains(format))
return false;
bool havePipeline = !gstPipeline.isNull();
auto state = havePipeline ? gstPipeline.state() : GST_STATE_NULL;
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera_p.h b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera_p.h
index a87855049..51037119e 100644
--- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera_p.h
+++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera_p.h
@@ -125,7 +125,7 @@ private:
QGstreamerMediaCapture *m_session = nullptr;
- QCameraDevice m_cameraInfo;
+ QCameraDevice m_cameraDevice;
QGstPipeline gstPipeline;
diff --git a/src/multimedia/platform/pulseaudio/qpulseaudiosink.cpp b/src/multimedia/platform/pulseaudio/qpulseaudiosink.cpp
index 59543874b..99f2dc09b 100644
--- a/src/multimedia/platform/pulseaudio/qpulseaudiosink.cpp
+++ b/src/multimedia/platform/pulseaudio/qpulseaudiosink.cpp
@@ -305,6 +305,7 @@ bool QPulseAudioSink::open()
qint64 bytesPerSecond = m_format.sampleRate() * m_format.bytesPerFrame();
+#if 0
static const char *mediaRoleFromAudioRole[] = {
nullptr, // UnknownRole
"music", // MusicRole
@@ -322,6 +323,7 @@ bool QPulseAudioSink::open()
const char *r = mediaRoleFromAudioRole[m_role];
if (r)
pa_proplist_sets(propList, PA_PROP_MEDIA_ROLE, r);
+#endif
static const auto mapName = qEnvironmentVariable("QT_PA_CHANNEL_MAP");
pa_channel_map_def_t mapDef = PA_CHANNEL_MAP_DEFAULT;
@@ -360,8 +362,8 @@ bool QPulseAudioSink::open()
pa_stream_set_overflow_callback(m_stream, outputStreamOverflowCallback, this);
pa_stream_set_latency_update_callback(m_stream, outputStreamLatencyCallback, this);
- if (m_bufferSize <= 0 && m_role == QAudio::GameRoleRole)
- m_bufferSize = bytesPerSecond * LowLatencyBufferSizeMs / qint64(1000);
+// if (m_bufferSize <= 0 && m_role == QAudio::GameRoleRole)
+// m_bufferSize = bytesPerSecond * LowLatencyBufferSizeMs / qint64(1000);
pa_buffer_attr requestedBuffer;
requestedBuffer.fragsize = (uint32_t)-1;
@@ -385,7 +387,7 @@ bool QPulseAudioSink::open()
pa_threaded_mainloop_wait(pulseEngine->mainloop());
const pa_buffer_attr *buffer = pa_stream_get_buffer_attr(m_stream);
- m_periodTime = (m_role == QAudio::GameRole) ? LowLatencyPeriodTimeMs : PeriodTimeMs;
+ m_periodTime = /*(m_role == QAudio::GameRole) ? LowLatencyPeriodTimeMs :*/ PeriodTimeMs;
m_periodSize = pa_usec_to_bytes(m_periodTime*1000, &m_spec);
m_bufferSize = buffer->tlength;
m_maxBufferSize = buffer->maxlength;
diff --git a/src/multimedia/platform/qnx/camera/bbcamerasession.cpp b/src/multimedia/platform/qnx/camera/bbcamerasession.cpp
index 1856fa48c..699c8f9ef 100644
--- a/src/multimedia/platform/qnx/camera/bbcamerasession.cpp
+++ b/src/multimedia/platform/qnx/camera/bbcamerasession.cpp
@@ -936,19 +936,19 @@ void BbCameraSession::applyConfiguration()
int jpegQuality = 100;
switch (m_imageEncoderSettings.quality()) {
- case QMediaEncoderSettings::VeryLowQuality:
+ case QMediaRecorder::VeryLowQuality:
jpegQuality = 20;
break;
- case QMediaEncoderSettings::LowQuality:
+ case QMediaRecorder::LowQuality:
jpegQuality = 40;
break;
- case QMediaEncoderSettings::NormalQuality:
+ case QMediaRecorder::NormalQuality:
jpegQuality = 60;
break;
- case QMediaEncoderSettings::HighQuality:
+ case QMediaRecorder::HighQuality:
jpegQuality = 80;
break;
- case QMediaEncoderSettings::VeryHighQuality:
+ case QMediaRecorder::VeryHighQuality:
jpegQuality = 100;
break;
}
diff --git a/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp b/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp
index c78f515ef..4eff994e4 100644
--- a/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp
+++ b/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp
@@ -558,16 +558,6 @@ void MmRendererMediaPlayerControl::stop()
stopInternal(StopMmRenderer);
}
-void MmRendererMediaPlayerControl::setAudioRole(QAudio::Role role)
-{
- m_role = role;
-}
-
-QList<QAudio::Role> MmRendererMediaPlayerControl::supportedAudioRoles() const
-{
- return qnxSupportedAudioRoles();
-}
-
MmRendererPlayerVideoRendererControl *MmRendererMediaPlayerControl::videoRendererControl() const
{
return m_videoRendererControl;
diff --git a/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h b/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h
index 62d7373a4..63ae3c407 100644
--- a/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h
+++ b/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h
@@ -108,9 +108,6 @@ public:
void pause() override;
void stop() override;
- void setAudioRole(QAudio::Role role) override;
- QList<QAudio::Role> supportedAudioRoles() const override;
-
MmRendererPlayerVideoRendererControl *videoRendererControl() const;
void setVideoRendererControl(MmRendererPlayerVideoRendererControl *videoControl);
diff --git a/src/multimedia/platform/qnx/mediaplayer/mmrendererutil.cpp b/src/multimedia/platform/qnx/mediaplayer/mmrendererutil.cpp
index 8ded95bcd..89cf8489b 100644
--- a/src/multimedia/platform/qnx/mediaplayer/mmrendererutil.cpp
+++ b/src/multimedia/platform/qnx/mediaplayer/mmrendererutil.cpp
@@ -100,11 +100,6 @@ constexpr size_t countof(T (&)[N])
return N;
}
-constexpr bool inBounds(QAudio::Role r)
-{
- return r >= 0 && r < countof(roleMap);
-}
-
QString keyValueMapsLocation()
{
QByteArray qtKeyValueMaps = qgetenv("QT_KEY_VALUE_MAPS");
@@ -128,53 +123,6 @@ QJsonObject loadMapObject(const QString &keyValueMapPath)
return QJsonObject();
}
-static void loadRoleMap()
-{
- QMutexLocker locker(&roleMapMutex);
-
- if (!roleMapInitialized) {
- QJsonObject mapObject = loadMapObject("/QAudio/Role.json");
- if (!mapObject.isEmpty()) {
- // Wrapping the loads in a switch like this ensures that anyone adding
- // a new enumerator will be notified that this code must be updated. A
- // compile error will occur because the enumerator is missing from the
- // switch. A compile error will also occur if the enumerator used to
- // size the mapping table isn't updated when a new enumerator is added.
- // One or more enumerators will be outside the bounds of the array when
- // the wrong enumerator is used to size the array.
- //
- // The code loads a mapping for each enumerator because role is set
- // to UnknownRole and all the cases drop through to the next case.
-#pragma GCC diagnostic push
-#pragma GCC diagnostic error "-Wswitch"
-#define loadRoleMapping(r) \
- case QAudio::r: \
- static_assert(inBounds(QAudio::r), #r " out-of-bounds." \
- " Do you need to change the enumerator used to size the mapping table" \
- " because you added new QAudio::Role enumerators?"); \
- roleMap[QAudio::r] = mapObject.value(QLatin1String(#r)).toString();
-
- QAudio::Role role = QAudio::UnknownRole;
- switch (role) {
- loadRoleMapping(UnknownRole);
- loadRoleMapping(MusicRole);
- loadRoleMapping(VideoRole);
- loadRoleMapping(VoiceCommunicationRole);
- loadRoleMapping(AlarmRole);
- loadRoleMapping(NotificationRole);
- loadRoleMapping(RingtoneRole);
- loadRoleMapping(AccessibilityRole);
- loadRoleMapping(SonificationRole);
- loadRoleMapping(GameRole);
- }
-#undef loadRoleMapping
-#pragma GCC diagnostic pop
- }
-
- roleMapInitialized = true;
- }
-}
-
QString mmErrorMessage(const QString &msg, mmr_context_t *context, int *errorCode)
{
const mmr_error_info_t * const mmError = mmr_error_info(context);
@@ -214,27 +162,4 @@ bool checkForDrmPermission()
return false;
}
-QString qnxAudioType(QAudio::Role role)
-{
- loadRoleMap();
-
- if (role >= 0 && role < countof(roleMap))
- return roleMap[role];
- else
- return QString();
-}
-
-QList<QAudio::Role> qnxSupportedAudioRoles()
-{
- loadRoleMap();
-
- QList<QAudio::Role> result;
- for (size_t i = 0; i < countof(roleMap); ++i) {
- if (!roleMap[i].isEmpty() || (i == QAudio::UnknownRole))
- result.append(static_cast<QAudio::Role>(i));
- }
-
- return result;
-}
-
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qnx/mediaplayer/mmrendererutil_p.h b/src/multimedia/platform/qnx/mediaplayer/mmrendererutil_p.h
index 9bba99487..e1f972840 100644
--- a/src/multimedia/platform/qnx/mediaplayer/mmrendererutil_p.h
+++ b/src/multimedia/platform/qnx/mediaplayer/mmrendererutil_p.h
@@ -63,9 +63,6 @@ QString mmErrorMessage(const QString &msg, mmr_context_t *context, int * errorCo
bool checkForDrmPermission();
-QString qnxAudioType(QAudio::Role role);
-QList<QAudio::Role> qnxSupportedAudioRoles();
-
QT_END_NAMESPACE
#endif
diff --git a/src/multimedia/platform/qplatformaudiooutput_p.h b/src/multimedia/platform/qplatformaudiooutput_p.h
index 9979a6d5e..594d59ed0 100644
--- a/src/multimedia/platform/qplatformaudiooutput_p.h
+++ b/src/multimedia/platform/qplatformaudiooutput_p.h
@@ -66,14 +66,11 @@ public:
virtual void setAudioDevice(const QAudioDevice &/*device*/) {}
virtual void setMuted(bool /*muted*/) {}
virtual void setVolume(float /*volume*/) {}
- virtual void setAudioRole(QAudio::Role /*role*/) {}
- virtual QList<QAudio::Role> supportedAudioRoles() const { return {}; }
QAudioOutput *q = nullptr;
QAudioDevice device;
float volume = 1.;
bool muted = false;
- QAudio::Role role = QAudio::UnknownRole;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qplatformcamera_p.h b/src/multimedia/platform/qplatformcamera_p.h
index 6039422a1..990943d2d 100644
--- a/src/multimedia/platform/qplatformcamera_p.h
+++ b/src/multimedia/platform/qplatformcamera_p.h
@@ -122,8 +122,8 @@ public:
int minIso() const { return m_minIso; }
int maxIso() const { return m_maxIso; }
float manualExposureTime() const { return m_exposureTime; }
- float minShutterSpeed() const { return m_minShutterSpeed; }
- float maxShutterSpeed() const { return m_maxShutterSpeed; }
+ float minExposureTime() const { return m_minExposureTime; }
+ float maxExposureTime() const { return m_maxExposureTime; }
QCamera::WhiteBalanceMode whiteBalanceMode() const { return m_whiteBalance; }
int colorTemperature() const { return m_colorTemperature; }
@@ -145,8 +145,8 @@ public:
void minIsoChanged(int iso) { m_minIso = iso; }
void maxIsoChanged(int iso) { m_maxIso = iso; }
void exposureTimeChanged(float speed);
- void minShutterSpeedChanged(float secs) { m_minShutterSpeed = secs; }
- void maxShutterSpeedChanged(float secs) { m_maxShutterSpeed = secs; }
+ void minExposureTimeChanged(float secs) { m_minExposureTime = secs; }
+ void maxExposureTimeChanged(float secs) { m_maxExposureTime = secs; }
void whiteBalanceModeChanged(QCamera::WhiteBalanceMode mode);
void colorTemperatureChanged(int temperature);
@@ -181,8 +181,8 @@ private:
int m_minIso = -1;
int m_maxIso = -1;
float m_exposureTime = -1.;
- float m_minShutterSpeed = -1.;
- float m_maxShutterSpeed = -1.;
+ float m_minExposureTime = -1.;
+ float m_maxExposureTime = -1.;
QCamera::WhiteBalanceMode m_whiteBalance = QCamera::WhiteBalanceAuto;
int m_colorTemperature = 0;
};
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
{
diff --git a/src/multimedia/platform/qplatformmediaformatinfo_p.h b/src/multimedia/platform/qplatformmediaformatinfo_p.h
index 984065b17..9e56bee41 100644
--- a/src/multimedia/platform/qplatformmediaformatinfo_p.h
+++ b/src/multimedia/platform/qplatformmediaformatinfo_p.h
@@ -52,8 +52,8 @@
//
#include <private/qtmultimediaglobal_p.h>
-#include <qmediaencodersettings.h>
#include <qcameraimagecapture.h>
+#include <qmediaformat.h>
QT_BEGIN_NAMESPACE
diff --git a/src/multimedia/platform/qplatformmediaplayer.cpp b/src/multimedia/platform/qplatformmediaplayer.cpp
index 814ca7b21..21e25ec9b 100644
--- a/src/multimedia/platform/qplatformmediaplayer.cpp
+++ b/src/multimedia/platform/qplatformmediaplayer.cpp
@@ -358,24 +358,6 @@ void QPlatformMediaPlayer::error(int error, const QString &errorString)
*/
/*!
- \fn QAudio::Role QPlatformMediaPlayer::audioRole() const
-
- Returns the audio role of the media played by the media service.
-*/
-
-/*!
- \fn void QPlatformMediaPlayer::setAudioRole(QAudio::Role role)
-
- Sets the audio \a role of the media played by the media service.
-*/
-
-/*!
- \fn QList<QAudio::Role> QPlatformMediaPlayer::supportedAudioRoles() const
-
- Returns a list of audio roles that the media service supports.
-*/
-
-/*!
\fn QPlatformMediaPlayer::error(int error, const QString &errorString)
Signals that an \a error has occurred. The \a errorString provides a more detailed explanation.
diff --git a/src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession.cpp b/src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession.cpp
index 1776f9fe9..f46f15127 100644
--- a/src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession.cpp
+++ b/src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession.cpp
@@ -238,25 +238,25 @@ bool QWindowsMediaDeviceSession::resumeRecording()
// empirical estimate of the required video bitrate (for H.264)
quint32 QWindowsMediaDeviceSession::estimateVideoBitRate(const GUID &videoFormat, quint32 width, quint32 height,
- qreal frameRate, QMediaEncoderSettings::Quality quality)
+ qreal frameRate, QMediaRecorder::Quality quality)
{
Q_UNUSED(videoFormat);
qreal bitsPerPixel;
switch (quality) {
- case QMediaEncoderSettings::Quality::VeryLowQuality:
+ case QMediaRecorder::Quality::VeryLowQuality:
bitsPerPixel = 0.08;
break;
- case QMediaEncoderSettings::Quality::LowQuality:
+ case QMediaRecorder::Quality::LowQuality:
bitsPerPixel = 0.2;
break;
- case QMediaEncoderSettings::Quality::NormalQuality:
+ case QMediaRecorder::Quality::NormalQuality:
bitsPerPixel = 0.3;
break;
- case QMediaEncoderSettings::Quality::HighQuality:
+ case QMediaRecorder::Quality::HighQuality:
bitsPerPixel = 0.5;
break;
- case QMediaEncoderSettings::Quality::VeryHighQuality:
+ case QMediaRecorder::Quality::VeryHighQuality:
bitsPerPixel = 0.8;
break;
default:
@@ -269,20 +269,20 @@ quint32 QWindowsMediaDeviceSession::estimateVideoBitRate(const GUID &videoFormat
return pixelsPerSec * bitsPerPixel;
}
-quint32 QWindowsMediaDeviceSession::estimateAudioBitRate(const GUID &audioFormat, QMediaEncoderSettings::Quality quality)
+quint32 QWindowsMediaDeviceSession::estimateAudioBitRate(const GUID &audioFormat, QMediaRecorder::Quality quality)
{
if (audioFormat == MFAudioFormat_AAC) {
// Bitrates supported by the AAC encoder are 96K, 128K, 160K, 192K.
switch (quality) {
- case QMediaEncoderSettings::Quality::VeryLowQuality:
+ case QMediaRecorder::Quality::VeryLowQuality:
return 96000;
- case QMediaEncoderSettings::Quality::LowQuality:
+ case QMediaRecorder::Quality::LowQuality:
return 96000;
- case QMediaEncoderSettings::Quality::NormalQuality:
+ case QMediaRecorder::Quality::NormalQuality:
return 128000;
- case QMediaEncoderSettings::Quality::HighQuality:
+ case QMediaRecorder::Quality::HighQuality:
return 160000;
- case QMediaEncoderSettings::Quality::VeryHighQuality:
+ case QMediaRecorder::Quality::VeryHighQuality:
return 192000;
}
return 128000;
@@ -290,15 +290,15 @@ quint32 QWindowsMediaDeviceSession::estimateAudioBitRate(const GUID &audioFormat
// Bitrates supported by the MP3 encoder are
// 32K, 40K, 48K, 56K, 64K, 80K, 96K, 112K, 128K, 160K, 192K, 224K, 256K, 320K.
switch (quality) {
- case QMediaEncoderSettings::Quality::VeryLowQuality:
+ case QMediaRecorder::Quality::VeryLowQuality:
return 48000;
- case QMediaEncoderSettings::Quality::LowQuality:
+ case QMediaRecorder::Quality::LowQuality:
return 96000;
- case QMediaEncoderSettings::Quality::NormalQuality:
+ case QMediaRecorder::Quality::NormalQuality:
return 128000;
- case QMediaEncoderSettings::Quality::HighQuality:
+ case QMediaRecorder::Quality::HighQuality:
return 224000;
- case QMediaEncoderSettings::Quality::VeryHighQuality:
+ case QMediaRecorder::Quality::VeryHighQuality:
return 320000;
}
return 128000;
diff --git a/src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession_p.h b/src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession_p.h
index 2a2d04f7c..2db0b0784 100644
--- a/src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession_p.h
+++ b/src/multimedia/platform/windows/mediacapture/qwindowsmediadevicesession_p.h
@@ -53,9 +53,9 @@
#include <private/qtmultimediaglobal_p.h>
#include <qcamera.h>
-#include <qmediaencodersettings.h>
#include <qaudiodevice.h>
#include <qwindowsmultimediautils_p.h>
+#include <qplatformmediaencoder_p.h>
QT_BEGIN_NAMESPACE
@@ -114,8 +114,8 @@ private Q_SLOTS:
private:
quint32 estimateVideoBitRate(const GUID &videoFormat, quint32 width, quint32 height,
- qreal frameRate, QMediaEncoderSettings::Quality quality);
- quint32 estimateAudioBitRate(const GUID &audioFormat, QMediaEncoderSettings::Quality quality);
+ qreal frameRate, QMediaRecorder::Quality quality);
+ quint32 estimateAudioBitRate(const GUID &audioFormat, QMediaRecorder::Quality quality);
bool m_active = false;
bool m_activating = false;
QCameraDevice m_activeCameraDevice;