summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qaudioprobe.cpp
diff options
context:
space:
mode:
authorLev Zelenskiy <lev.zelenskiy@nokia.com>2012-04-18 13:11:53 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-20 08:47:10 +0200
commitf1c4093f3710c8c061a68afbd52d0eafe0d6fc83 (patch)
treef73ef32b6e2a2a1f9c3c7bef4948f84750c8df9e /src/multimedia/audio/qaudioprobe.cpp
parentc9749cf7ac7dd2028b93ec40a623364bdc00ae29 (diff)
Disconnect probe control in case source was destroyed.
Change-Id: Ibc4583af8acf7d28ee2504f246840a26e3a527be Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com> Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src/multimedia/audio/qaudioprobe.cpp')
-rw-r--r--src/multimedia/audio/qaudioprobe.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/multimedia/audio/qaudioprobe.cpp b/src/multimedia/audio/qaudioprobe.cpp
index 6dd7d7258..8e7aed4a0 100644
--- a/src/multimedia/audio/qaudioprobe.cpp
+++ b/src/multimedia/audio/qaudioprobe.cpp
@@ -125,6 +125,14 @@ bool QAudioProbe::setSource(QMediaObject *source)
// 1) disconnect from current source if necessary
// 2) see if new one has the probe control
// 3) connect if so
+
+ // in case source was destroyed but probe control is still valid
+ if (!d->source && d->probee) {
+ disconnect(d->probee.data(), SIGNAL(audioBufferProbed(QAudioBuffer)), this, SIGNAL(audioBufferProbed(QAudioBuffer)));
+ disconnect(d->probee.data(), SIGNAL(flush()), this, SIGNAL(flush()));
+ d->probee.clear();
+ }
+
if (source != d->source.data()) {
if (d->source) {
Q_ASSERT(d->probee);