summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Srebrny <piotr.srebrny@qt.io>2022-12-15 17:16:18 +0100
committerPiotr Srebrny <piotr.srebrny@qt.io>2023-01-12 14:49:40 +0100
commitefb90dbca188244d4f696e58321f2a4d7ac155c2 (patch)
tree9c13ac7ff42c8567b462b6d779e82ec45db736c6
parent4a3df7223fde7bfd25c3ec9bc982aed9ed77fb34 (diff)
Provide default implementation for QPlatformMediaDevices
In case no audio backend is available we should provide some default implementation for QPlatformDevices otherwise the code crashes on an attempt list audio devices. As a bonus clean some leftovers of video devices interface. Fixes: QTBUG-108221 Change-Id: I8d7e5ebe2ec98ba9381fae429f359b8ffaea3bb6 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> Reviewed-by: Lars Knoll <lars@knoll.priv.no> (cherry picked from commit ab49644bea444d105e6fa6ca246f21eccd7a67e0)
-rw-r--r--src/multimedia/alsa/qalsamediadevices.cpp5
-rw-r--r--src/multimedia/alsa/qalsamediadevices_p.h1
-rw-r--r--src/multimedia/platform/qplatformmediadevices.cpp19
-rw-r--r--src/multimedia/platform/qplatformmediadevices_p.h12
-rw-r--r--src/multimedia/pulseaudio/qpulseaudiomediadevices.cpp5
-rw-r--r--src/multimedia/pulseaudio/qpulseaudiomediadevices_p.h1
-rw-r--r--src/multimedia/wasm/qwasmmediadevices.cpp5
-rw-r--r--src/multimedia/wasm/qwasmmediadevices_p.h1
8 files changed, 23 insertions, 26 deletions
diff --git a/src/multimedia/alsa/qalsamediadevices.cpp b/src/multimedia/alsa/qalsamediadevices.cpp
index 9f3b3d963..cc37e0601 100644
--- a/src/multimedia/alsa/qalsamediadevices.cpp
+++ b/src/multimedia/alsa/qalsamediadevices.cpp
@@ -74,11 +74,6 @@ QList<QAudioDevice> QAlsaMediaDevices::audioOutputs() const
return availableDevices(QAudioDevice::Output);
}
-QList<QCameraDevice> QAlsaMediaDevices::videoInputs() const
-{
- return {};
-}
-
QPlatformAudioSource *QAlsaMediaDevices::createAudioSource(const QAudioDevice &deviceInfo,
QObject *parent)
{
diff --git a/src/multimedia/alsa/qalsamediadevices_p.h b/src/multimedia/alsa/qalsamediadevices_p.h
index 612ea2119..d9fbb7c97 100644
--- a/src/multimedia/alsa/qalsamediadevices_p.h
+++ b/src/multimedia/alsa/qalsamediadevices_p.h
@@ -30,7 +30,6 @@ public:
QList<QAudioDevice> audioInputs() const override;
QList<QAudioDevice> audioOutputs() const override;
- QList<QCameraDevice> videoInputs() const override;
QPlatformAudioSource *createAudioSource(const QAudioDevice &deviceInfo,
QObject *parent) override;
QPlatformAudioSink *createAudioSink(const QAudioDevice &deviceInfo,
diff --git a/src/multimedia/platform/qplatformmediadevices.cpp b/src/multimedia/platform/qplatformmediadevices.cpp
index 867edb7c7..6944e8ca1 100644
--- a/src/multimedia/platform/qplatformmediadevices.cpp
+++ b/src/multimedia/platform/qplatformmediadevices.cpp
@@ -6,6 +6,7 @@
#include "qaudiodevice.h"
#include "qcameradevice.h"
#include "qaudiosystem_p.h"
+#include "qaudiodevice.h"
#include <qmutex.h>
#include <qloggingcategory.h>
@@ -65,6 +66,8 @@ QPlatformMediaDevices *QPlatformMediaDevices::instance()
holder.nativeInstance = new QQnxMediaDevices;
#elif defined(Q_OS_WASM)
holder.nativeInstance = new QWasmMediaDevices;
+#else
+ holder.nativeInstance = new QPlatformMediaDevices;
#endif
holder.instance = holder.nativeInstance;
@@ -82,11 +85,25 @@ void QPlatformMediaDevices::setDevices(QPlatformMediaDevices *devices)
QPlatformMediaDevices::~QPlatformMediaDevices() = default;
-QList<QCameraDevice> QPlatformMediaDevices::videoInputs() const
+QList<QAudioDevice> QPlatformMediaDevices::audioInputs() const
+{
+ return {};
+}
+
+QList<QAudioDevice> QPlatformMediaDevices::audioOutputs() const
{
return {};
}
+QPlatformAudioSource *QPlatformMediaDevices::createAudioSource(const QAudioDevice &, QObject *)
+{
+ return nullptr;
+}
+QPlatformAudioSink *QPlatformMediaDevices::createAudioSink(const QAudioDevice &, QObject *)
+{
+ return nullptr;
+}
+
QPlatformAudioSource *QPlatformMediaDevices::audioInputDevice(const QAudioFormat &format,
const QAudioDevice &deviceInfo,
QObject *parent)
diff --git a/src/multimedia/platform/qplatformmediadevices_p.h b/src/multimedia/platform/qplatformmediadevices_p.h
index 5786c28a4..3cde651fa 100644
--- a/src/multimedia/platform/qplatformmediadevices_p.h
+++ b/src/multimedia/platform/qplatformmediadevices_p.h
@@ -38,13 +38,11 @@ public:
static void setDevices(QPlatformMediaDevices *);
static QPlatformMediaDevices *instance();
- virtual QList<QAudioDevice> audioInputs() const = 0;
- virtual QList<QAudioDevice> audioOutputs() const = 0;
- virtual QList<QCameraDevice> videoInputs() const;
- virtual QPlatformAudioSource *createAudioSource(const QAudioDevice &deviceInfo,
- QObject *parent) = 0;
- virtual QPlatformAudioSink *createAudioSink(const QAudioDevice &deviceInfo,
- QObject *parent) = 0;
+ virtual QList<QAudioDevice> audioInputs() const;
+ virtual QList<QAudioDevice> audioOutputs() const;
+
+ virtual QPlatformAudioSource *createAudioSource(const QAudioDevice &, QObject *parent);
+ virtual QPlatformAudioSink *createAudioSink(const QAudioDevice &, QObject *parent);
QPlatformAudioSource *audioInputDevice(const QAudioFormat &format,
const QAudioDevice &deviceInfo, QObject *parent);
diff --git a/src/multimedia/pulseaudio/qpulseaudiomediadevices.cpp b/src/multimedia/pulseaudio/qpulseaudiomediadevices.cpp
index d744e0417..8a28c3966 100644
--- a/src/multimedia/pulseaudio/qpulseaudiomediadevices.cpp
+++ b/src/multimedia/pulseaudio/qpulseaudiomediadevices.cpp
@@ -33,11 +33,6 @@ QList<QAudioDevice> QPulseAudioMediaDevices::audioOutputs() const
return pulseEngine->availableDevices(QAudioDevice::Output);
}
-QList<QCameraDevice> QPulseAudioMediaDevices::videoInputs() const
-{
- return {};
-}
-
QPlatformAudioSource *QPulseAudioMediaDevices::createAudioSource(const QAudioDevice &deviceInfo,
QObject *parent)
{
diff --git a/src/multimedia/pulseaudio/qpulseaudiomediadevices_p.h b/src/multimedia/pulseaudio/qpulseaudiomediadevices_p.h
index 36435b220..094dc3907 100644
--- a/src/multimedia/pulseaudio/qpulseaudiomediadevices_p.h
+++ b/src/multimedia/pulseaudio/qpulseaudiomediadevices_p.h
@@ -31,7 +31,6 @@ public:
QList<QAudioDevice> audioInputs() const override;
QList<QAudioDevice> audioOutputs() const override;
- QList<QCameraDevice> videoInputs() const override;
QPlatformAudioSource *createAudioSource(const QAudioDevice &deviceInfo,
QObject *parent) override;
QPlatformAudioSink *createAudioSink(const QAudioDevice &deviceInfo,
diff --git a/src/multimedia/wasm/qwasmmediadevices.cpp b/src/multimedia/wasm/qwasmmediadevices.cpp
index 5244236be..abdc5c11b 100644
--- a/src/multimedia/wasm/qwasmmediadevices.cpp
+++ b/src/multimedia/wasm/qwasmmediadevices.cpp
@@ -38,11 +38,6 @@ QList<QAudioDevice> QWasmMediaDevices::audioOutputs() const
return m_outs;
}
-QList<QCameraDevice> QWasmMediaDevices::videoInputs() const
-{
- return {};
-}
-
QPlatformAudioSource *QWasmMediaDevices::createAudioSource(const QAudioDevice &deviceInfo,
QObject *parent)
{
diff --git a/src/multimedia/wasm/qwasmmediadevices_p.h b/src/multimedia/wasm/qwasmmediadevices_p.h
index b19bec3a2..df79c564b 100644
--- a/src/multimedia/wasm/qwasmmediadevices_p.h
+++ b/src/multimedia/wasm/qwasmmediadevices_p.h
@@ -31,7 +31,6 @@ public:
QList<QAudioDevice> audioInputs() const override;
QList<QAudioDevice> audioOutputs() const override;
- QList<QCameraDevice> videoInputs() const override;
QPlatformAudioSource *createAudioSource(const QAudioDevice &deviceInfo,
QObject *parent) override;
QPlatformAudioSink *createAudioSink(const QAudioDevice &deviceInfo,