Mercurial > hg > qm-dsp
diff dsp/rateconversion/Resampler.cpp @ 160:0a47ec0a1a56
Add std::vector-returning process call
author | Chris Cannam |
---|---|
date | Tue, 05 Nov 2013 16:36:53 +0000 |
parents | edb86e0d850c |
children | 5f720340b0dd |
line wrap: on
line diff
--- a/dsp/rateconversion/Resampler.cpp Fri Nov 01 17:11:50 2013 +0000 +++ b/dsp/rateconversion/Resampler.cpp Tue Nov 05 16:36:53 2013 +0000 @@ -328,6 +328,17 @@ } std::vector<double> +Resampler::process(const double *src, int n) +{ + int maxout = int(ceil(double(n) * m_targetRate / m_sourceRate)); + std::vector<double> out(maxout, 0.0); + int got = process(src, out.data(), n); + assert(got <= maxout); + if (got < maxout) out.resize(got); + return out; +} + +std::vector<double> Resampler::resample(int sourceRate, int targetRate, const double *data, int n) { Resampler r(sourceRate, targetRate);