summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-05-25 16:55:23 +0200
committerLars Knoll <lars.knoll@qt.io>2021-05-26 10:18:49 +0000
commit23944677fdf465d4bf89bab65059ad1702bc5276 (patch)
treee201e2469f795cc02c6565739a8d20b750880d8f /src
parent2db739f2af5bd26e132232aa9ca88fd86008c1d7 (diff)
Stabilize the qaudioinput autotest on Windows
Unfortunately, the only way to get reliable results for the failing test is to increase the time spent sampling, so that the inherent jitter contributes less to the measured timings. Change-Id: Ie6bb97174d30b38a911519f73af0ae0881ed3536 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/multimedia/platform/windows/audio/qwindowsaudioinput.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/multimedia/platform/windows/audio/qwindowsaudioinput.cpp b/src/multimedia/platform/windows/audio/qwindowsaudioinput.cpp
index 74cbd782f..87f8571ce 100644
--- a/src/multimedia/platform/windows/audio/qwindowsaudioinput.cpp
+++ b/src/multimedia/platform/windows/audio/qwindowsaudioinput.cpp
@@ -436,7 +436,9 @@ void QWindowsAudioInput::closeMixer()
qsizetype QWindowsAudioInput::bytesReady() const
{
- if(period_size == 0 || buffer_size == 0)
+ if (period_size == 0 || buffer_size == 0)
+ return 0;
+ if (deviceState == QAudio::StoppedState || deviceState == QAudio::SuspendedState)
return 0;
int buf = ((buffer_size/period_size)-waveFreeBlockCount)*period_size;
@@ -566,7 +568,7 @@ qint64 QWindowsAudioInput::read(char* data, qint64 len)
void QWindowsAudioInput::resume()
{
- if(deviceState == QAudio::SuspendedState) {
+ if (deviceState == QAudio::SuspendedState) {
deviceState = QAudio::ActiveState;
for(int i=0; i<buffer_size/period_size; i++) {
result = waveInAddBuffer(hWaveIn, &waveBlocks[i], sizeof(WAVEHDR));
@@ -615,8 +617,8 @@ qint64 QWindowsAudioInput::processedUSecs() const
void QWindowsAudioInput::suspend()
{
if(deviceState == QAudio::ActiveState) {
- waveInReset(hWaveIn);
deviceState = QAudio::SuspendedState;
+ waveInReset(hWaveIn);
emit stateChanged(deviceState);
}
}
@@ -627,7 +629,7 @@ void QWindowsAudioInput::feedback()
QTime now(QTime::currentTime());
qDebug()<<now.second()<<"s "<<now.msec()<<"ms :feedback() INPUT "<<this;
#endif
- if(!(deviceState==QAudio::StoppedState||deviceState==QAudio::SuspendedState))
+ if(deviceState != QAudio::StoppedState && deviceState != QAudio::SuspendedState)
QMetaObject::invokeMethod(this, "deviceReady", Qt::QueuedConnection);
}
@@ -636,7 +638,7 @@ bool QWindowsAudioInput::deviceReady()
bytesAvailable = bytesReady();
#ifdef DEBUG_AUDIO
QTime now(QTime::currentTime());
- qDebug()<<now.second()<<"s "<<now.msec()<<"ms :deviceReady() INPUT";
+ qDebug()<<now.second()<<"s "<<now.msec()<<"ms :deviceReady() INPUT" << bytesReady();
#endif
if(deviceState != QAudio::ActiveState && deviceState != QAudio::IdleState)
return true;