in modules/core/src/utils/image-buffer.js [64:96]
set(allFrames, currentTime) {
const {buffer} = this;
const {currentFrame, bufferedFrames} = this._getCurrentFrames(allFrames, currentTime);
// Remove images outside of the buffer range
for (const frame of buffer.keys()) {
if (
bufferedFrames.length === 0 ||
frame.time < bufferedFrames[0].time ||
frame.time > bufferedFrames[bufferedFrames.length - 1].time
) {
this.imageDeleter(buffer.get(frame));
buffer.delete(frame);
}
}
// Load images for frames in the buffer
bufferedFrames.forEach(frame => {
if (!buffer.has(frame)) {
const data = {};
data.promise = this.imageLoader(frame.images[0]).then(image => {
data.image = image;
return image;
});
buffer.set(frame, data);
}
});
return currentFrame;
}