summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPiotr Srebrny <piotr.srebrny@qt.io>2022-12-13 16:24:48 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-12-14 09:34:48 +0000
commit2177e24c2fa8bbd94d86265bb269fdf30e5bfb71 (patch)
treea785736db95db3197ee2926f1be249205fedb0a7 /src
parentee0f63f87099ea76220834ad586df50a09ff2073 (diff)
Enter IdleState when resuming audio sink in push mode
QAudioSink must enter IdleState when resuming in push mode and it should generate UnderrunError error if no data is provided. This patch fixes the tst_qaudiosink tests. Change-Id: I3051d8fe62c60a3c4fd9955f0df6c35ae6e40800 Reviewed-by: Lars Knoll <lars@knoll.priv.no> (cherry picked from commit edaf2a2ef06c80f37f24483fbdcaf0b4d124c0d9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/multimedia/pulseaudio/qpulseaudiosink.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/multimedia/pulseaudio/qpulseaudiosink.cpp b/src/multimedia/pulseaudio/qpulseaudiosink.cpp
index 132b024d3..cc921f6ab 100644
--- a/src/multimedia/pulseaudio/qpulseaudiosink.cpp
+++ b/src/multimedia/pulseaudio/qpulseaudiosink.cpp
@@ -473,6 +473,9 @@ void QPulseAudioSink::userFeed()
setError(m_audioSource->atEnd() ? QAudio::NoError : QAudio::UnderrunError);
setState(QAudio::IdleState);
}
+ } else {
+ if (state() == QAudio::IdleState)
+ setError(QAudio::UnderrunError);
}
if (m_deviceState != QAudio::ActiveState)
@@ -643,7 +646,7 @@ void QPulseAudioSink::resume()
m_tickTimer.start(m_periodTime, this);
- setState(QAudio::ActiveState);
+ setState(m_pullMode ? QAudio::ActiveState : QAudio::IdleState);
setError(QAudio::NoError);
}
}