It appears this may be all we need - apparently the occasional odd extra sample (due to incremental rounding) added up and eventually overran the filter. I believe +1 is perfectly good here, but we can afford to be more accommodating just in case

This commit is contained in:
Chris Cannam
2020-09-16 17:52:33 +01:00
parent 27f4572258
commit 661a1d05eb

View File

@@ -613,7 +613,7 @@ D_SRC::resample(const float *const R__ *const R__ in,
std::cerr << "Resampler::process: at input sample " << n_in << ", output sample " << n_out << ", incount = " << incount << ", ratio = " << ratio << ", incount * ratio = " << incount * ratio << std::endl; std::cerr << "Resampler::process: at input sample " << n_in << ", output sample " << n_out << ", incount = " << incount << ", ratio = " << ratio << ", incount * ratio = " << incount * ratio << std::endl;
int outcount = lrintf(ceilf(incount * ratio)); int outcount = lrintf(ceilf(incount * ratio) + 10);
if (m_channels == 1) { if (m_channels == 1) {
data.data_in = const_cast<float *>(*in); //!!!??? data.data_in = const_cast<float *>(*in); //!!!???