diff --git a/NEWS b/NEWS index 933a980db..b1cc2cf04 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,7 @@ ver 0.19.3 (not yet released) - audiofile: fix crash while playing streams - audiofile: fix bit rate calculation - ffmpeg: support opus +* fix distorted audio with soxr resampler ver 0.19.2 (2014/11/02) * input diff --git a/src/pcm/SoxrResampler.cxx b/src/pcm/SoxrResampler.cxx index 56b9760d5..b9d6fc099 100644 --- a/src/pcm/SoxrResampler.cxx +++ b/src/pcm/SoxrResampler.cxx @@ -147,7 +147,8 @@ SoxrPcmResampler::Resample(ConstBuffer src, Error &error) const size_t n_frames = src.size / frame_size; - const size_t o_frames = size_t(n_frames * ratio + 0.5); + /* always round up: worst case output buffer size */ + const size_t o_frames = size_t(n_frames * ratio) + 1; float *output_buffer = (float *)buffer.Get(o_frames * frame_size);