summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLev Zelenskiy <lev.zelenskiy@nokia.com>2012-06-26 12:45:58 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-27 08:11:59 +0200
commit23a81d62e78b1bf4156577a6b16a078034403303 (patch)
tree7f7a922d55313571ee16db7d069c86b1937a101d /src
parent4d6434598387feef5237dd45ea5ff8167f43cd0c (diff)
Clean buffers before closing the input device.
Input device handle is invalid after waveInClose() QTBUG-24119 Change-Id: I8276e56766684efd26b78dc019ff871ebac28408 Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/multimedia/audio/qaudioinput_win32_p.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/multimedia/audio/qaudioinput_win32_p.cpp b/src/multimedia/audio/qaudioinput_win32_p.cpp
index 836924afe..0af49e012 100644
--- a/src/multimedia/audio/qaudioinput_win32_p.cpp
+++ b/src/multimedia/audio/qaudioinput_win32_p.cpp
@@ -335,6 +335,13 @@ void QAudioInputPrivate::close()
deviceState = QAudio::StoppedState;
waveInReset(hWaveIn);
+
+ mutex.lock();
+ for (int i=0; i<waveFreeBlockCount; i++)
+ waveInUnprepareHeader(hWaveIn,&waveBlocks[i],sizeof(WAVEHDR));
+ freeBlocks(waveBlocks);
+ mutex.unlock();
+
waveInClose(hWaveIn);
int count = 0;
@@ -342,12 +349,6 @@ void QAudioInputPrivate::close()
count++;
Sleep(10);
}
-
- mutex.lock();
- for(int i=0; i<waveFreeBlockCount; i++)
- waveInUnprepareHeader(hWaveIn,&waveBlocks[i],sizeof(WAVEHDR));
- freeBlocks(waveBlocks);
- mutex.unlock();
}
int QAudioInputPrivate::bytesReady() const