For streaming data, pass the available frame - the padding size

Otherwise in some cases you might have interpolators reading uninitialized/zero data if they're close to the streaming bound
This commit is contained in:
Paul Ferrand 2020-05-29 11:29:30 +02:00 committed by Jean Pierre Cimalando
parent acf4f00b9d
commit fe730333c6

View file

@ -68,12 +68,13 @@ struct FilePromise
return AudioSpan<const float>(fileData)
.subspan(sfz::config::excessFileFrames,
fileData.getNumFrames() - 2 * sfz::config::excessFileFrames);
else if (availableFrames > preloadedData->getNumFrames())
return AudioSpan<const float>(fileData).subspan(sfz::config::excessFileFrames, availableFrames);
else if (availableFrames > preloadedData->getNumFrames() + sfz::config::excessFileFrames)
return AudioSpan<const float>(fileData)
.subspan(sfz::config::excessFileFrames, availableFrames - sfz::config::excessFileFrames);
else
return AudioSpan<const float>(*preloadedData)
.subspan(sfz::config::excessFileFrames,
preloadedData->getNumFrames() - sfz::config::excessFileFrames);
preloadedData->getNumFrames() - 2 * sfz::config::excessFileFrames);
}
void reset()