summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-11-17 10:09:39 +0100
committerLars Knoll <lars.knoll@qt.io>2022-01-18 14:33:47 +0100
commit54bf1efe5cd54068cefaf4debe1908f6397b5b15 (patch)
tree65f17b6b8bff72f86482652c3a2254814c6f3378
parentaf70e045aa050ff52cdedf16974e343e6d3e5e32 (diff)
Move the list of QMediaDevices to QPlatformMediaIntegration
This makes it possible to split up the backend interfaces for audio and camera devices handling and simplifies combining ffmpeg with a platform specific backend for audio. Pick-to: 6.2 Change-Id: I01992bfbeac79ba2d413a4b918f9f304cf33f35b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--src/multimedia/platform/qplatformmediadevices.cpp14
-rw-r--r--src/multimedia/platform/qplatformmediadevices_p.h15
-rw-r--r--src/multimedia/platform/qplatformmediaintegration_p.h14
-rw-r--r--src/multimedia/qmediadevices.cpp4
-rw-r--r--src/plugins/multimedia/alsa/qalsaintegration.cpp2
-rw-r--r--src/plugins/multimedia/alsa/qalsamediadevices.cpp4
-rw-r--r--src/plugins/multimedia/alsa/qalsamediadevices_p.h2
-rw-r--r--src/plugins/multimedia/android/qandroidintegration.cpp2
-rw-r--r--src/plugins/multimedia/android/qandroidmediadevices.cpp4
-rw-r--r--src/plugins/multimedia/android/qandroidmediadevices_p.h2
-rw-r--r--src/plugins/multimedia/darwin/qdarwinintegration.mm2
-rw-r--r--src/plugins/multimedia/darwin/qdarwinmediadevices.mm4
-rw-r--r--src/plugins/multimedia/darwin/qdarwinmediadevices_p.h2
-rw-r--r--src/plugins/multimedia/gstreamer/qgstreamerintegration.cpp2
-rw-r--r--src/plugins/multimedia/gstreamer/qgstreamermediadevices.cpp4
-rw-r--r--src/plugins/multimedia/gstreamer/qgstreamermediadevices_p.h2
-rw-r--r--src/plugins/multimedia/pulseaudio/qpulseaudiointegration.cpp3
-rw-r--r--src/plugins/multimedia/pulseaudio/qpulseaudiointegration_p.h1
-rw-r--r--src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices.cpp11
-rw-r--r--src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices_p.h3
-rw-r--r--src/plugins/multimedia/qnx/qqnxmediadevices.cpp4
-rw-r--r--src/plugins/multimedia/qnx/qqnxmediadevices_p.h2
-rw-r--r--src/plugins/multimedia/qnx/qqnxmediaintegration.cpp2
-rw-r--r--src/plugins/multimedia/wasm/qwasmmediadevices.cpp4
-rw-r--r--src/plugins/multimedia/wasm/qwasmmediadevices_p.h2
-rw-r--r--src/plugins/multimedia/wasm/qwasmmediaintegration.cpp2
-rw-r--r--src/plugins/multimedia/windows/qwindowsintegration.cpp2
-rw-r--r--src/plugins/multimedia/windows/qwindowsmediadevices.cpp4
-rw-r--r--src/plugins/multimedia/windows/qwindowsmediadevices_p.h2
-rw-r--r--tests/auto/unit/mockbackend/qmockintegration.cpp2
-rw-r--r--tests/auto/unit/mockbackend/qmockmediadevices.cpp4
-rw-r--r--tests/auto/unit/mockbackend/qmockmediadevices_p.h2
32 files changed, 72 insertions, 57 deletions
diff --git a/src/multimedia/platform/qplatformmediadevices.cpp b/src/multimedia/platform/qplatformmediadevices.cpp
index fcedfe6ac..0f97d9b70 100644
--- a/src/multimedia/platform/qplatformmediadevices.cpp
+++ b/src/multimedia/platform/qplatformmediadevices.cpp
@@ -38,6 +38,7 @@
****************************************************************************/
#include "qplatformmediadevices_p.h"
+#include "qplatformmediaintegration_p.h"
#include "qmediadevices.h"
#include "qaudiodevice.h"
#include "qcameradevice.h"
@@ -45,7 +46,9 @@
QT_BEGIN_NAMESPACE
-QPlatformMediaDevices::QPlatformMediaDevices() = default;
+QPlatformMediaDevices::QPlatformMediaDevices(QPlatformMediaIntegration *integration)
+ : integration(integration)
+{}
QPlatformMediaDevices::~QPlatformMediaDevices() = default;
@@ -105,19 +108,22 @@ QPlatformAudioSink* QPlatformMediaDevices::audioOutputDevice(const QAudioFormat
void QPlatformMediaDevices::audioInputsChanged() const
{
- for (auto m : m_devices)
+ const auto devices = integration->allMediaDevices();
+ for (auto m : devices)
emit m->audioInputsChanged();
}
void QPlatformMediaDevices::audioOutputsChanged() const
{
- for (auto m : m_devices)
+ const auto devices = integration->allMediaDevices();
+ for (auto m : devices)
emit m->audioOutputsChanged();
}
void QPlatformMediaDevices::videoInputsChanged() const
{
- for (auto m : m_devices)
+ const auto devices = integration->allMediaDevices();
+ for (auto m : devices)
emit m->videoInputsChanged();
}
diff --git a/src/multimedia/platform/qplatformmediadevices_p.h b/src/multimedia/platform/qplatformmediadevices_p.h
index 62b7229ab..dd43cee7f 100644
--- a/src/multimedia/platform/qplatformmediadevices_p.h
+++ b/src/multimedia/platform/qplatformmediadevices_p.h
@@ -62,11 +62,12 @@ class QCameraDevice;
class QPlatformAudioSource;
class QPlatformAudioSink;
class QAudioFormat;
+class QPlatformMediaIntegration;
class Q_MULTIMEDIA_EXPORT QPlatformMediaDevices
{
public:
- QPlatformMediaDevices();
+ QPlatformMediaDevices(QPlatformMediaIntegration *integration);
virtual ~QPlatformMediaDevices();
virtual QList<QAudioDevice> audioInputs() const = 0;
@@ -82,22 +83,12 @@ public:
QPlatformAudioSource *audioInputDevice(const QAudioFormat &format, const QAudioDevice &deviceInfo);
QPlatformAudioSink *audioOutputDevice(const QAudioFormat &format, const QAudioDevice &deviceInfo);
- void addDevices(QMediaDevices *m)
- {
- m_devices.append(m);
- }
- void removeDevices(QMediaDevices *m)
- {
- m_devices.removeAll(m);
- }
-
protected:
void audioInputsChanged() const;
void audioOutputsChanged() const;
void videoInputsChanged() const;
-private:
- QList<QMediaDevices *> m_devices;
+ QPlatformMediaIntegration *integration = nullptr;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qplatformmediaintegration_p.h b/src/multimedia/platform/qplatformmediaintegration_p.h
index 977ab2a49..331c10dba 100644
--- a/src/multimedia/platform/qplatformmediaintegration_p.h
+++ b/src/multimedia/platform/qplatformmediaintegration_p.h
@@ -100,6 +100,20 @@ public:
virtual QPlatformAudioOutput *createAudioOutput(QAudioOutput *);
virtual QPlatformVideoSink *createVideoSink(QVideoSink *) { return nullptr; }
+
+ void addMediaDevices(QMediaDevices *m)
+ {
+ m_devices.append(m);
+ }
+ void removeMediaDevices(QMediaDevices *m)
+ {
+ m_devices.removeAll(m);
+ }
+
+ QList<QMediaDevices *> allMediaDevices() const { return m_devices; }
+
+private:
+ QList<QMediaDevices *> m_devices;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/qmediadevices.cpp b/src/multimedia/qmediadevices.cpp
index 2eb3aa73d..7d81f9642 100644
--- a/src/multimedia/qmediadevices.cpp
+++ b/src/multimedia/qmediadevices.cpp
@@ -271,7 +271,7 @@ QCameraDevice QMediaDevices::defaultVideoInput()
QMediaDevices::QMediaDevices(QObject *parent)
: QObject(parent)
{
- QPlatformMediaIntegration::instance()->devices()->addDevices(this);
+ QPlatformMediaIntegration::instance()->addMediaDevices(this);
}
/*!
@@ -279,7 +279,7 @@ QMediaDevices::QMediaDevices(QObject *parent)
*/
QMediaDevices::~QMediaDevices()
{
- QPlatformMediaIntegration::instance()->devices()->removeDevices(this);
+ QPlatformMediaIntegration::instance()->removeMediaDevices(this);
}
diff --git a/src/plugins/multimedia/alsa/qalsaintegration.cpp b/src/plugins/multimedia/alsa/qalsaintegration.cpp
index bfbc40c6a..2eeb8949b 100644
--- a/src/plugins/multimedia/alsa/qalsaintegration.cpp
+++ b/src/plugins/multimedia/alsa/qalsaintegration.cpp
@@ -54,7 +54,7 @@ QAlsaIntegration::~QAlsaIntegration()
QPlatformMediaDevices *QAlsaIntegration::devices()
{
if (!m_devices)
- m_devices = new QAlsaMediaDevices();
+ m_devices = new QAlsaMediaDevices(this);
return m_devices;
}
diff --git a/src/plugins/multimedia/alsa/qalsamediadevices.cpp b/src/plugins/multimedia/alsa/qalsamediadevices.cpp
index e2561e66a..3bf102556 100644
--- a/src/plugins/multimedia/alsa/qalsamediadevices.cpp
+++ b/src/plugins/multimedia/alsa/qalsamediadevices.cpp
@@ -49,8 +49,8 @@
QT_BEGIN_NAMESPACE
-QAlsaMediaDevices::QAlsaMediaDevices()
- : QPlatformMediaDevices()
+QAlsaMediaDevices::QAlsaMediaDevices(QPlatformMediaIntegration *integration)
+ : QPlatformMediaDevices(integration)
{
}
diff --git a/src/plugins/multimedia/alsa/qalsamediadevices_p.h b/src/plugins/multimedia/alsa/qalsamediadevices_p.h
index 54df9c851..3777a4c3f 100644
--- a/src/plugins/multimedia/alsa/qalsamediadevices_p.h
+++ b/src/plugins/multimedia/alsa/qalsamediadevices_p.h
@@ -62,7 +62,7 @@ class QAlsaEngine;
class QAlsaMediaDevices : public QPlatformMediaDevices
{
public:
- QAlsaMediaDevices();
+ QAlsaMediaDevices(QPlatformMediaIntegration *integration);
QList<QAudioDevice> audioInputs() const override;
QList<QAudioDevice> audioOutputs() const override;
diff --git a/src/plugins/multimedia/android/qandroidintegration.cpp b/src/plugins/multimedia/android/qandroidintegration.cpp
index 324a67523..a9ec1b135 100644
--- a/src/plugins/multimedia/android/qandroidintegration.cpp
+++ b/src/plugins/multimedia/android/qandroidintegration.cpp
@@ -95,7 +95,7 @@ QAndroidIntegration::~QAndroidIntegration()
QPlatformMediaDevices *QAndroidIntegration::devices()
{
if (!m_devices)
- m_devices = new QAndroidMediaDevices();
+ m_devices = new QAndroidMediaDevices(this);
return m_devices;
}
diff --git a/src/plugins/multimedia/android/qandroidmediadevices.cpp b/src/plugins/multimedia/android/qandroidmediadevices.cpp
index 5b4e1a45a..b330d0647 100644
--- a/src/plugins/multimedia/android/qandroidmediadevices.cpp
+++ b/src/plugins/multimedia/android/qandroidmediadevices.cpp
@@ -50,8 +50,8 @@
QT_BEGIN_NAMESPACE
-QAndroidMediaDevices::QAndroidMediaDevices()
- : QPlatformMediaDevices()
+QAndroidMediaDevices::QAndroidMediaDevices(QPlatformMediaIntegration *integration)
+ : QPlatformMediaDevices(integration)
{
}
diff --git a/src/plugins/multimedia/android/qandroidmediadevices_p.h b/src/plugins/multimedia/android/qandroidmediadevices_p.h
index 734678aad..2a1cfa2e0 100644
--- a/src/plugins/multimedia/android/qandroidmediadevices_p.h
+++ b/src/plugins/multimedia/android/qandroidmediadevices_p.h
@@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE
class QAndroidMediaDevices : public QPlatformMediaDevices
{
public:
- QAndroidMediaDevices();
+ QAndroidMediaDevices(QPlatformMediaIntegration *integration);
QList<QAudioDevice> audioInputs() const override;
QList<QAudioDevice> audioOutputs() const override;
diff --git a/src/plugins/multimedia/darwin/qdarwinintegration.mm b/src/plugins/multimedia/darwin/qdarwinintegration.mm
index 37a123169..2d38d8311 100644
--- a/src/plugins/multimedia/darwin/qdarwinintegration.mm
+++ b/src/plugins/multimedia/darwin/qdarwinintegration.mm
@@ -89,7 +89,7 @@ QDarwinIntegration::~QDarwinIntegration()
QPlatformMediaDevices *QDarwinIntegration::devices()
{
if (!m_devices)
- m_devices = new QDarwinMediaDevices();
+ m_devices = new QDarwinMediaDevices(this);
return m_devices;
}
diff --git a/src/plugins/multimedia/darwin/qdarwinmediadevices.mm b/src/plugins/multimedia/darwin/qdarwinmediadevices.mm
index 3cf61951f..c808571fa 100644
--- a/src/plugins/multimedia/darwin/qdarwinmediadevices.mm
+++ b/src/plugins/multimedia/darwin/qdarwinmediadevices.mm
@@ -160,8 +160,8 @@ audioDeviceChangeListener(AudioObjectID, UInt32, const AudioObjectPropertyAddres
#endif
-QDarwinMediaDevices::QDarwinMediaDevices()
- : QPlatformMediaDevices()
+QDarwinMediaDevices::QDarwinMediaDevices(QPlatformMediaIntegration *integration)
+ : QPlatformMediaDevices(integration)
{
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
m_deviceConnectedObserver = [notificationCenter addObserverForName:AVCaptureDeviceWasConnectedNotification
diff --git a/src/plugins/multimedia/darwin/qdarwinmediadevices_p.h b/src/plugins/multimedia/darwin/qdarwinmediadevices_p.h
index 0c3515f2b..b570b5f68 100644
--- a/src/plugins/multimedia/darwin/qdarwinmediadevices_p.h
+++ b/src/plugins/multimedia/darwin/qdarwinmediadevices_p.h
@@ -65,7 +65,7 @@ class QCameraDevice;
class QDarwinMediaDevices : public QPlatformMediaDevices
{
public:
- QDarwinMediaDevices();
+ QDarwinMediaDevices(QPlatformMediaIntegration *integration);
~QDarwinMediaDevices();
QList<QAudioDevice> audioInputs() const override;
diff --git a/src/plugins/multimedia/gstreamer/qgstreamerintegration.cpp b/src/plugins/multimedia/gstreamer/qgstreamerintegration.cpp
index 753325b51..fb32bae9e 100644
--- a/src/plugins/multimedia/gstreamer/qgstreamerintegration.cpp
+++ b/src/plugins/multimedia/gstreamer/qgstreamerintegration.cpp
@@ -75,7 +75,7 @@ public:
QGstreamerIntegration::QGstreamerIntegration()
{
gst_init(nullptr, nullptr);
- m_devices = new QGstreamerMediaDevices();
+ m_devices = new QGstreamerMediaDevices(this);
m_formatsInfo = new QGstreamerFormatInfo();
}
diff --git a/src/plugins/multimedia/gstreamer/qgstreamermediadevices.cpp b/src/plugins/multimedia/gstreamer/qgstreamermediadevices.cpp
index e3e1cce1e..21916c54f 100644
--- a/src/plugins/multimedia/gstreamer/qgstreamermediadevices.cpp
+++ b/src/plugins/multimedia/gstreamer/qgstreamermediadevices.cpp
@@ -71,8 +71,8 @@ static gboolean deviceMonitor(GstBus *, GstMessage *message, gpointer m)
return G_SOURCE_CONTINUE;
}
-QGstreamerMediaDevices::QGstreamerMediaDevices()
- : QPlatformMediaDevices()
+QGstreamerMediaDevices::QGstreamerMediaDevices(QPlatformMediaIntegration *integration)
+ : QPlatformMediaDevices(integration)
{
GstDeviceMonitor *monitor;
GstBus *bus;
diff --git a/src/plugins/multimedia/gstreamer/qgstreamermediadevices_p.h b/src/plugins/multimedia/gstreamer/qgstreamermediadevices_p.h
index e3f34433f..fc79b74bd 100644
--- a/src/plugins/multimedia/gstreamer/qgstreamermediadevices_p.h
+++ b/src/plugins/multimedia/gstreamer/qgstreamermediadevices_p.h
@@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE
class QGstreamerMediaDevices : public QPlatformMediaDevices
{
public:
- QGstreamerMediaDevices();
+ QGstreamerMediaDevices(QPlatformMediaIntegration *integration);
QList<QAudioDevice> audioInputs() const override;
QList<QAudioDevice> audioOutputs() const override;
diff --git a/src/plugins/multimedia/pulseaudio/qpulseaudiointegration.cpp b/src/plugins/multimedia/pulseaudio/qpulseaudiointegration.cpp
index dc196f800..0b2fb93f3 100644
--- a/src/plugins/multimedia/pulseaudio/qpulseaudiointegration.cpp
+++ b/src/plugins/multimedia/pulseaudio/qpulseaudiointegration.cpp
@@ -63,7 +63,6 @@ public:
QPulseAudioIntegration::QPulseAudioIntegration()
{
- pulseEngine = new QPulseAudioEngine;
}
QPulseAudioIntegration::~QPulseAudioIntegration()
@@ -74,7 +73,7 @@ QPulseAudioIntegration::~QPulseAudioIntegration()
QPlatformMediaDevices *QPulseAudioIntegration::devices()
{
if (!m_devices)
- m_devices = new QPulseAudioMediaDevices(pulseEngine);
+ m_devices = new QPulseAudioMediaDevices(this);
return m_devices;
}
diff --git a/src/plugins/multimedia/pulseaudio/qpulseaudiointegration_p.h b/src/plugins/multimedia/pulseaudio/qpulseaudiointegration_p.h
index 376ede1ea..c83bc1e4c 100644
--- a/src/plugins/multimedia/pulseaudio/qpulseaudiointegration_p.h
+++ b/src/plugins/multimedia/pulseaudio/qpulseaudiointegration_p.h
@@ -68,7 +68,6 @@ public:
QPlatformMediaFormatInfo *formatInfo() override;
QPulseAudioMediaDevices *m_devices = nullptr;
- QPulseAudioEngine *pulseEngine = nullptr;
};
QT_END_NAMESPACE
diff --git a/src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices.cpp b/src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices.cpp
index 2a02b57be..34ec3ff21 100644
--- a/src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices.cpp
+++ b/src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices.cpp
@@ -48,10 +48,15 @@
QT_BEGIN_NAMESPACE
-QPulseAudioMediaDevices::QPulseAudioMediaDevices(QPulseAudioEngine *engine)
- : QPlatformMediaDevices(),
- pulseEngine(engine)
+QPulseAudioMediaDevices::QPulseAudioMediaDevices(QPlatformMediaIntegration *integration)
+ : QPlatformMediaDevices(integration)
{
+ pulseEngine = new QPulseAudioEngine();
+}
+
+QPulseAudioMediaDevices::~QPulseAudioMediaDevices()
+{
+ delete pulseEngine;
}
QList<QAudioDevice> QPulseAudioMediaDevices::audioInputs() const
diff --git a/src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices_p.h b/src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices_p.h
index 4cb28056f..628f059eb 100644
--- a/src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices_p.h
+++ b/src/plugins/multimedia/pulseaudio/qpulseaudiomediadevices_p.h
@@ -62,7 +62,8 @@ class QPulseAudioEngine;
class QPulseAudioMediaDevices : public QPlatformMediaDevices
{
public:
- QPulseAudioMediaDevices(QPulseAudioEngine *engine);
+ QPulseAudioMediaDevices(QPlatformMediaIntegration *integration);
+ ~QPulseAudioMediaDevices();
QList<QAudioDevice> audioInputs() const override;
QList<QAudioDevice> audioOutputs() const override;
diff --git a/src/plugins/multimedia/qnx/qqnxmediadevices.cpp b/src/plugins/multimedia/qnx/qqnxmediadevices.cpp
index a1c3671c3..dd2911dcb 100644
--- a/src/plugins/multimedia/qnx/qqnxmediadevices.cpp
+++ b/src/plugins/multimedia/qnx/qqnxmediadevices.cpp
@@ -148,8 +148,8 @@ static QList<QCameraDevice> enumerateCameras()
return cameras;
}
-QQnxMediaDevices::QQnxMediaDevices()
- : QPlatformMediaDevices()
+QQnxMediaDevices::QQnxMediaDevices(QPlatformMediaIntegration *integration)
+ : QPlatformMediaDevices(integration)
{
}
diff --git a/src/plugins/multimedia/qnx/qqnxmediadevices_p.h b/src/plugins/multimedia/qnx/qqnxmediadevices_p.h
index 27f24306f..355beb0b0 100644
--- a/src/plugins/multimedia/qnx/qqnxmediadevices_p.h
+++ b/src/plugins/multimedia/qnx/qqnxmediadevices_p.h
@@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE
class QQnxMediaDevices : public QPlatformMediaDevices
{
public:
- QQnxMediaDevices();
+ QQnxMediaDevices(QPlatformMediaIntegration *integration);
QList<QAudioDevice> audioInputs() const override;
QList<QAudioDevice> audioOutputs() const override;
diff --git a/src/plugins/multimedia/qnx/qqnxmediaintegration.cpp b/src/plugins/multimedia/qnx/qqnxmediaintegration.cpp
index 17d14d352..db6017b51 100644
--- a/src/plugins/multimedia/qnx/qqnxmediaintegration.cpp
+++ b/src/plugins/multimedia/qnx/qqnxmediaintegration.cpp
@@ -78,7 +78,7 @@ QQnxMediaIntegration::~QQnxMediaIntegration()
QPlatformMediaDevices *QQnxMediaIntegration::devices()
{
if (!m_devices)
- m_devices = new QQnxMediaDevices();
+ m_devices = new QQnxMediaDevices(this);
return m_devices;
}
diff --git a/src/plugins/multimedia/wasm/qwasmmediadevices.cpp b/src/plugins/multimedia/wasm/qwasmmediadevices.cpp
index 825e19ba2..e50b93bb3 100644
--- a/src/plugins/multimedia/wasm/qwasmmediadevices.cpp
+++ b/src/plugins/multimedia/wasm/qwasmmediadevices.cpp
@@ -48,8 +48,8 @@
QT_BEGIN_NAMESPACE
-QWasmMediaDevices::QWasmMediaDevices()
- : QPlatformMediaDevices()
+QWasmMediaDevices::QWasmMediaDevices(QPlatformMediaIntegration *integration)
+ : QPlatformMediaDevices(integration)
{
auto capture = alcGetString(nullptr, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER);
// present even if there is no capture device
diff --git a/src/plugins/multimedia/wasm/qwasmmediadevices_p.h b/src/plugins/multimedia/wasm/qwasmmediadevices_p.h
index 63fa05476..3efbd9cb3 100644
--- a/src/plugins/multimedia/wasm/qwasmmediadevices_p.h
+++ b/src/plugins/multimedia/wasm/qwasmmediadevices_p.h
@@ -63,7 +63,7 @@ class QWasmAudioEngine;
class QWasmMediaDevices : public QPlatformMediaDevices
{
public:
- QWasmMediaDevices();
+ QWasmMediaDevices(QPlatformMediaIntegration *integration);
QList<QAudioDevice> audioInputs() const override;
QList<QAudioDevice> audioOutputs() const override;
diff --git a/src/plugins/multimedia/wasm/qwasmmediaintegration.cpp b/src/plugins/multimedia/wasm/qwasmmediaintegration.cpp
index 6f8eb4612..b6dd9f096 100644
--- a/src/plugins/multimedia/wasm/qwasmmediaintegration.cpp
+++ b/src/plugins/multimedia/wasm/qwasmmediaintegration.cpp
@@ -87,7 +87,7 @@ QPlatformMediaFormatInfo *QWasmMediaIntegration::formatInfo()
QPlatformMediaDevices *QWasmMediaIntegration::devices()
{
if (!m_devices)
- m_devices = new QWasmMediaDevices();
+ m_devices = new QWasmMediaDevices(this);
return m_devices;
}
diff --git a/src/plugins/multimedia/windows/qwindowsintegration.cpp b/src/plugins/multimedia/windows/qwindowsintegration.cpp
index 2607e15cb..e380ce0eb 100644
--- a/src/plugins/multimedia/windows/qwindowsintegration.cpp
+++ b/src/plugins/multimedia/windows/qwindowsintegration.cpp
@@ -96,7 +96,7 @@ QWindowsMediaIntegration::~QWindowsMediaIntegration()
QPlatformMediaDevices *QWindowsMediaIntegration::devices()
{
if (!m_devices)
- m_devices = new QWindowsMediaDevices();
+ m_devices = new QWindowsMediaDevices(this);
return m_devices;
}
diff --git a/src/plugins/multimedia/windows/qwindowsmediadevices.cpp b/src/plugins/multimedia/windows/qwindowsmediadevices.cpp
index 4a8bd667c..0bbabfd11 100644
--- a/src/plugins/multimedia/windows/qwindowsmediadevices.cpp
+++ b/src/plugins/multimedia/windows/qwindowsmediadevices.cpp
@@ -233,8 +233,8 @@ HWND createMessageOnlyWindow()
return hwnd;
}
-QWindowsMediaDevices::QWindowsMediaDevices()
- : QPlatformMediaDevices(),
+QWindowsMediaDevices::QWindowsMediaDevices(QPlatformMediaIntegration *integration)
+ : QPlatformMediaDevices(integration),
m_videoDeviceMsgWindow(nullptr),
m_videoDeviceNotification(nullptr)
diff --git a/src/plugins/multimedia/windows/qwindowsmediadevices_p.h b/src/plugins/multimedia/windows/qwindowsmediadevices_p.h
index 5547bd073..427a28073 100644
--- a/src/plugins/multimedia/windows/qwindowsmediadevices_p.h
+++ b/src/plugins/multimedia/windows/qwindowsmediadevices_p.h
@@ -70,7 +70,7 @@ LRESULT QT_WIN_CALLBACK deviceNotificationWndProc(HWND, UINT, WPARAM, LPARAM);
class QWindowsMediaDevices : public QPlatformMediaDevices
{
public:
- QWindowsMediaDevices();
+ QWindowsMediaDevices(QPlatformMediaIntegration *integration);
virtual ~QWindowsMediaDevices();
QList<QAudioDevice> audioInputs() const override;
diff --git a/tests/auto/unit/mockbackend/qmockintegration.cpp b/tests/auto/unit/mockbackend/qmockintegration.cpp
index 936ffed62..5acd662a9 100644
--- a/tests/auto/unit/mockbackend/qmockintegration.cpp
+++ b/tests/auto/unit/mockbackend/qmockintegration.cpp
@@ -63,7 +63,7 @@ QMockIntegration::~QMockIntegration()
QPlatformMediaDevices *QMockIntegration::devices()
{
if (!m_devices)
- m_devices = new QMockMediaDevices();
+ m_devices = new QMockMediaDevices(this);
return m_devices;
}
diff --git a/tests/auto/unit/mockbackend/qmockmediadevices.cpp b/tests/auto/unit/mockbackend/qmockmediadevices.cpp
index 287cd1e73..0114c1aca 100644
--- a/tests/auto/unit/mockbackend/qmockmediadevices.cpp
+++ b/tests/auto/unit/mockbackend/qmockmediadevices.cpp
@@ -42,8 +42,8 @@
QT_BEGIN_NAMESPACE
-QMockMediaDevices::QMockMediaDevices()
- : QPlatformMediaDevices()
+QMockMediaDevices::QMockMediaDevices(QPlatformMediaIntegration *integration)
+ : QPlatformMediaDevices(integration)
{
QCameraDevicePrivate *info = new QCameraDevicePrivate;
info->description = QString::fromUtf8("defaultCamera");
diff --git a/tests/auto/unit/mockbackend/qmockmediadevices_p.h b/tests/auto/unit/mockbackend/qmockmediadevices_p.h
index cfa0398f3..8dac25bf3 100644
--- a/tests/auto/unit/mockbackend/qmockmediadevices_p.h
+++ b/tests/auto/unit/mockbackend/qmockmediadevices_p.h
@@ -63,7 +63,7 @@ class QCameraDevice;
class QMockMediaDevices : public QPlatformMediaDevices
{
public:
- QMockMediaDevices();
+ QMockMediaDevices(QPlatformMediaIntegration *integration);
~QMockMediaDevices();
QList<QAudioDevice> audioInputs() const override;