From a006881b2297e4dbf03051f82a8abb1363ceeebb Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Wed, 22 Sep 2010 12:28:24 +1000 Subject: Fix audio glitches in the audiooutput example. The data copy loop didn't advance the write position, resulting in some of the output buffer being overwritten and some of it not written to at all. Task-number: QTBUG-13751 Reviewed-by: Justin McPherson --- examples/multimedia/audiooutput/audiooutput.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/multimedia/audiooutput/audiooutput.cpp b/examples/multimedia/audiooutput/audiooutput.cpp index bc2324e..451cc67 100644 --- a/examples/multimedia/audiooutput/audiooutput.cpp +++ b/examples/multimedia/audiooutput/audiooutput.cpp @@ -132,9 +132,9 @@ void Generator::generateData(const QAudioFormat &format, qint64 durationUs, int qint64 Generator::readData(char *data, qint64 len) { qint64 total = 0; - while (len - total) { + while (len - total > 0) { const qint64 chunk = qMin((m_buffer.size() - m_pos), len - total); - memcpy(data, m_buffer.constData() + m_pos, chunk); + memcpy(data + total, m_buffer.constData() + m_pos, chunk); m_pos = (m_pos + chunk) % m_buffer.size(); total += chunk; } -- cgit v0.12