diff options
author | Piotr Srebrny <piotr.srebrny@qt.io> | 2022-12-13 16:24:48 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-12-14 09:34:48 +0000 |
commit | 2177e24c2fa8bbd94d86265bb269fdf30e5bfb71 (patch) | |
tree | a785736db95db3197ee2926f1be249205fedb0a7 /src | |
parent | ee0f63f87099ea76220834ad586df50a09ff2073 (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.cpp | 5 |
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); } } |