Avoid an input increment of zero (= sigfpe) when given a very long stretch factor
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user