diff options
author | Liang Qi <liang.qi@qt.io> | 2016-12-12 09:48:13 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-12-12 10:27:59 +0100 |
commit | 533759ef333e4db8625cd02f763994788da01199 (patch) | |
tree | dcb4b4ec8882b42ce8213f4e309534dd8d234843 /src/plugins/alsa/qalsaaudioinput.cpp | |
parent | 31ed506ea2c7a8be439d77e02ca0d67b6f9ce675 (diff) | |
parent | 7bc230386e0d8d6f3c4ad5a0a6a22a625c9a8327 (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp
Change-Id: I7c30c2d13fdd07ee07e4449d5d3e256e988d3793
Diffstat (limited to 'src/plugins/alsa/qalsaaudioinput.cpp')
-rw-r--r-- | src/plugins/alsa/qalsaaudioinput.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/plugins/alsa/qalsaaudioinput.cpp b/src/plugins/alsa/qalsaaudioinput.cpp index 8109e6932..5a4111a90 100644 --- a/src/plugins/alsa/qalsaaudioinput.cpp +++ b/src/plugins/alsa/qalsaaudioinput.cpp @@ -49,6 +49,7 @@ // #include <QtCore/qcoreapplication.h> +#include <QtCore/qvarlengtharray.h> #include <QtMultimedia/private/qaudiohelpers_p.h> #include "qalsaaudioinput.h" #include "qalsaaudiodeviceinfo.h" @@ -526,20 +527,22 @@ qint64 QAlsaAudioInput::read(char* data, qint64 len) int count=0; int err = 0; + QVarLengthArray<char, 4096> buffer(bytesToRead); while(count < 5 && bytesToRead > 0) { - char buffer[bytesToRead]; int chunks = bytesToRead / period_size; int frames = chunks * period_frames; if (frames > (int)buffer_frames) frames = buffer_frames; - int readFrames = snd_pcm_readi(handle, buffer, frames); + int readFrames = snd_pcm_readi(handle, buffer.data(), frames); bytesRead = snd_pcm_frames_to_bytes(handle, readFrames); if (m_volume < 1.0f) - QAudioHelperInternal::qMultiplySamples(m_volume, settings, buffer, buffer, bytesRead); + QAudioHelperInternal::qMultiplySamples(m_volume, settings, + buffer.constData(), + buffer.data(), bytesRead); if (readFrames >= 0) { - ringBuffer.write(buffer, bytesRead); + ringBuffer.write(buffer.data(), bytesRead); #ifdef DEBUG_AUDIO qDebug() << QString::fromLatin1("read in bytes = %1 (frames=%2)").arg(bytesRead).arg(readFrames).toLatin1().constData(); #endif |