diff --git a/src/StretcherImpl.cpp b/src/StretcherImpl.cpp index b9e3443..cbf8b7b 100644 --- a/src/StretcherImpl.cpp +++ b/src/StretcherImpl.cpp @@ -466,6 +466,10 @@ RubberBandStretcher::Impl::calculateSizes() outputIncrement /= 2; inputIncrement = int(outputIncrement / r); } + while (inputIncrement < 1) { + outputIncrement *= 2; + inputIncrement = int(outputIncrement / r); + } size_t minwin = roundUp(lrint(outputIncrement * windowIncrRatio)); if (windowSize < minwin) windowSize = minwin; @@ -501,6 +505,10 @@ RubberBandStretcher::Impl::calculateSizes() outputIncrement /= 2; inputIncrement = int(outputIncrement / r); } + while (inputIncrement < 1) { + outputIncrement *= 2; + inputIncrement = int(outputIncrement / r); + } windowSize = std::max(windowSize, roundUp(outputIncrement * 6)); if (r > 5) while (windowSize < 8192) windowSize *= 2; }