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>
This commit is contained in:
Lev Zelenskiy
2012-06-26 12:45:58 +10:00
committed by Qt by Nokia
parent 4d64345983
commit 23a81d62e7

View File

@@ -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