Zero .exact() output when it's too short

This commit is contained in:
Geraint 2025-08-05 07:59:59 +01:00
parent 222093b4cc
commit cb5a8eab7e

View File

@ -405,7 +405,16 @@ struct SignalsmithStretch {
template<class Inputs, class Outputs> template<class Inputs, class Outputs>
bool exact(Inputs &&inputs, int inputSamples, Outputs &&outputs, int outputSamples) { bool exact(Inputs &&inputs, int inputSamples, Outputs &&outputs, int outputSamples) {
if (outputSamples < outputLatency()*2) return false; // too short for this if (outputSamples < outputLatency()*2) {
// to short for this - zero the output just to be polite
for (int c = 0; c < channels; ++c) {
auto &&channel = outputs[c];
for (int i = 0; i < outputSamples; ++i) {
channel[i] = 0;
}
}
return false;
}
struct ZeroPaddedInput { struct ZeroPaddedInput {
Inputs &inputs; Inputs &inputs;