diff options
author | Piotr Srebrny <piotr.srebrny@qt.io> | 2022-12-15 17:16:18 +0100 |
---|---|---|
committer | Piotr Srebrny <piotr.srebrny@qt.io> | 2023-01-12 14:49:40 +0100 |
commit | efb90dbca188244d4f696e58321f2a4d7ac155c2 (patch) | |
tree | 9c13ac7ff42c8567b462b6d779e82ec45db736c6 | |
parent | 4a3df7223fde7bfd25c3ec9bc982aed9ed77fb34 (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.cpp | 5 | ||||
-rw-r--r-- | src/multimedia/alsa/qalsamediadevices_p.h | 1 | ||||
-rw-r--r-- | src/multimedia/platform/qplatformmediadevices.cpp | 19 | ||||
-rw-r--r-- | src/multimedia/platform/qplatformmediadevices_p.h | 12 | ||||
-rw-r--r-- | src/multimedia/pulseaudio/qpulseaudiomediadevices.cpp | 5 | ||||
-rw-r--r-- | src/multimedia/pulseaudio/qpulseaudiomediadevices_p.h | 1 | ||||
-rw-r--r-- | src/multimedia/wasm/qwasmmediadevices.cpp | 5 | ||||
-rw-r--r-- | src/multimedia/wasm/qwasmmediadevices_p.h | 1 |
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, |