Mercurial > hg > qm-vamp-plugins
diff plugins/ConstantQSpectrogram.cpp @ 17:d4a92aab8147
* Fix a buffer overrun and some compile warnings
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Thu, 30 Nov 2006 14:53:29 +0000 |
parents | 2fbfe5e42ad4 |
children | 99dadc93042e |
line wrap: on
line diff
--- a/plugins/ConstantQSpectrogram.cpp Fri Oct 13 12:28:44 2006 +0000 +++ b/plugins/ConstantQSpectrogram.cpp Thu Nov 30 14:53:29 2006 +0000 @@ -19,10 +19,10 @@ ConstantQSpectrogram::ConstantQSpectrogram(float inputSampleRate) : Vamp::Plugin(inputSampleRate), + m_bins(1), m_cq(0), m_step(0), - m_block(0), - m_bins(1) + m_block(0) { m_minMIDIPitch = 12; m_maxMIDIPitch = 96; @@ -267,7 +267,7 @@ { "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B" }; if (m_bpo == 12) { - for (int i = 0; i < d.binCount; ++i) { + for (int i = 0; i < int(d.binCount); ++i) { int ipc = m_minMIDIPitch % 12; int index = (i + ipc) % 12; d.binNames.push_back(names[index]); @@ -325,9 +325,9 @@ for (size_t i = 0; i < m_block/2; ++i) { real[i] = inputBuffers[0][i*2]; - real[m_block - i] = real[i]; + if (i > 0) real[m_block - i] = real[i]; imag[i] = inputBuffers[0][i*2+1]; - imag[m_block - i] = imag[i]; + if (i > 0) imag[m_block - i] = imag[i]; } m_cq->process(real, imag, cqre, cqim); @@ -337,7 +337,7 @@ Feature feature; feature.hasTimestamp = false; - for (size_t i = 0; i < m_bins; ++i) { + for (int i = 0; i < m_bins; ++i) { double re = cqre[i]; double im = cqim[i]; if (isnan(re)) re = 0.0;