diff options
Diffstat (limited to 'intern/audaspace/FX/AUD_IIRFilterReader.cpp')
-rw-r--r-- | intern/audaspace/FX/AUD_IIRFilterReader.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/intern/audaspace/FX/AUD_IIRFilterReader.cpp b/intern/audaspace/FX/AUD_IIRFilterReader.cpp index 1bfb9b97b62..90f7e1e3cb0 100644 --- a/intern/audaspace/FX/AUD_IIRFilterReader.cpp +++ b/intern/audaspace/FX/AUD_IIRFilterReader.cpp @@ -36,11 +36,14 @@ AUD_IIRFilterReader::AUD_IIRFilterReader(AUD_Reference<AUD_IReader> reader, const std::vector<float>& a) : AUD_BaseIIRFilterReader(reader, b.size(), a.size()), m_a(a), m_b(b) { - for(int i = 1; i < m_a.size(); i++) - m_a[i] /= m_a[0]; - for(int i = 0; i < m_b.size(); i++) - m_b[i] /= m_a[0]; - m_a[0] = 1; + if(m_a.size()) + { + for(int i = 1; i < m_a.size(); i++) + m_a[i] /= m_a[0]; + for(int i = 0; i < m_b.size(); i++) + m_b[i] /= m_a[0]; + m_a[0] = 1; + } } sample_t AUD_IIRFilterReader::filter() @@ -58,7 +61,7 @@ sample_t AUD_IIRFilterReader::filter() void AUD_IIRFilterReader::setCoefficients(const std::vector<float>& b, const std::vector<float>& a) { - setLengths(m_b.size(), m_a.size()); + setLengths(b.size(), a.size()); m_a = a; m_b = b; } |