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)
Gbp-Pq: Name provide_default_implementation_for_qplatformmediadevices.patch
return availableDevices(QAudioDevice::Output);
}
-QList<QCameraDevice> QAlsaMediaDevices::videoInputs() const
-{
- return {};
-}
-
QPlatformAudioSource *QAlsaMediaDevices::createAudioSource(const QAudioDevice &deviceInfo,
QObject *parent)
{
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,
#include "qaudiodevice.h"
#include "qcameradevice.h"
#include "qaudiosystem_p.h"
+#include "qaudiodevice.h"
#include <qmutex.h>
#include <qloggingcategory.h>
holder.nativeInstance = new QQnxMediaDevices;
#elif defined(Q_OS_WASM)
holder.nativeInstance = new QWasmMediaDevices;
+#else
+ holder.nativeInstance = new QPlatformMediaDevices;
#endif
holder.instance = holder.nativeInstance;
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)
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);
return pulseEngine->availableDevices(QAudioDevice::Output);
}
-QList<QCameraDevice> QPulseAudioMediaDevices::videoInputs() const
-{
- return {};
-}
-
QPlatformAudioSource *QPulseAudioMediaDevices::createAudioSource(const QAudioDevice &deviceInfo,
QObject *parent)
{
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,
return m_outs;
}
-QList<QCameraDevice> QWasmMediaDevices::videoInputs() const
-{
- return {};
-}
-
QPlatformAudioSource *QWasmMediaDevices::createAudioSource(const QAudioDevice &deviceInfo,
QObject *parent)
{
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,