diff options
author | Piotr Srebrny <piotr.srebrny@qt.io> | 2022-11-04 12:20:19 +0100 |
---|---|---|
committer | Piotr Srebrny <piotr.srebrny@qt.io> | 2022-11-10 11:41:49 +0100 |
commit | 7c55a711cf5153d5b0a7e2318314cbe0c1e42361 (patch) | |
tree | fa0d649c52ecc2c7c859a2252413566bfa63bb40 /src/multimedia/audio | |
parent | 79267f7d3da56a4907d6ff9f2ddfdb2d296a47d1 (diff) |
Add parent-child relationship on audio sources and sinks
QAudioSink and QAudioSource must propagate their parents to
the platform specific implementation to enable correct operation
of the moveToThread function. Furthermore, all QObject elements
that are owned by audio sink/source must also establish
the parent-child relationship. This mainly affects QTimer's used
by the audio sink/sources.
Pick-to: 6.4
Fixes: QTBUG-108187
Change-Id: I476a97300a6fb1e0022b2a5570a3803be8fd0a88
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
Diffstat (limited to 'src/multimedia/audio')
-rw-r--r-- | src/multimedia/audio/qaudiosink.cpp | 2 | ||||
-rw-r--r-- | src/multimedia/audio/qaudiosource.cpp | 2 | ||||
-rw-r--r-- | src/multimedia/audio/qaudiosystem_p.h | 2 |
3 files changed, 4 insertions, 2 deletions
diff --git a/src/multimedia/audio/qaudiosink.cpp b/src/multimedia/audio/qaudiosink.cpp index 20e1a83fc..5f38bbc98 100644 --- a/src/multimedia/audio/qaudiosink.cpp +++ b/src/multimedia/audio/qaudiosink.cpp @@ -86,7 +86,7 @@ QAudioSink::QAudioSink(const QAudioFormat &format, QObject *parent) QAudioSink::QAudioSink(const QAudioDevice &audioDevice, const QAudioFormat &format, QObject *parent): QObject(parent) { - d = QPlatformMediaDevices::instance()->audioOutputDevice(format, audioDevice); + d = QPlatformMediaDevices::instance()->audioOutputDevice(format, audioDevice, parent); if (d) connect(d, SIGNAL(stateChanged(QAudio::State)), SIGNAL(stateChanged(QAudio::State))); else diff --git a/src/multimedia/audio/qaudiosource.cpp b/src/multimedia/audio/qaudiosource.cpp index 3ed48449e..3290c12c0 100644 --- a/src/multimedia/audio/qaudiosource.cpp +++ b/src/multimedia/audio/qaudiosource.cpp @@ -96,7 +96,7 @@ QAudioSource::QAudioSource(const QAudioFormat &format, QObject *parent) QAudioSource::QAudioSource(const QAudioDevice &audioDevice, const QAudioFormat &format, QObject *parent): QObject(parent) { - d = QPlatformMediaDevices::instance()->audioInputDevice(format, audioDevice); + d = QPlatformMediaDevices::instance()->audioInputDevice(format, audioDevice, parent); if (d) connect(d, SIGNAL(stateChanged(QAudio::State)), SIGNAL(stateChanged(QAudio::State))); else diff --git a/src/multimedia/audio/qaudiosystem_p.h b/src/multimedia/audio/qaudiosystem_p.h index 1e864716d..cfb21fd22 100644 --- a/src/multimedia/audio/qaudiosystem_p.h +++ b/src/multimedia/audio/qaudiosystem_p.h @@ -33,6 +33,7 @@ class Q_MULTIMEDIA_EXPORT QPlatformAudioSink : public QObject Q_OBJECT public: + QPlatformAudioSink(QObject *parent) : QObject(parent) {} virtual void start(QIODevice *device) = 0; virtual QIODevice* start() = 0; virtual void stop() = 0; @@ -62,6 +63,7 @@ class Q_MULTIMEDIA_EXPORT QPlatformAudioSource : public QObject Q_OBJECT public: + QPlatformAudioSource(QObject *parent) : QObject(parent) {} virtual void start(QIODevice *device) = 0; virtual QIODevice* start() = 0; virtual void stop() = 0; |