UNPKG

@remotion/player

Version:

React component for embedding a Remotion preview into your app

29 lines (28 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.calculateNextFrame = void 0; const calculateNextFrame = ({ time, currentFrame: startFrame, playbackSpeed, fps, actualLastFrame, actualFirstFrame, framesAdvanced, shouldLoop, }) => { const op = playbackSpeed < 0 ? Math.ceil : Math.floor; const framesToAdvance = op((time * playbackSpeed) / (1000 / fps)) - framesAdvanced; const nextFrame = framesToAdvance + startFrame; const isCurrentFrameOutside = startFrame > actualLastFrame || startFrame < actualFirstFrame; const isNextFrameOutside = nextFrame > actualLastFrame || nextFrame < actualFirstFrame; const hasEnded = !shouldLoop && isNextFrameOutside && !isCurrentFrameOutside; if (playbackSpeed > 0) { // Play forwards if (isNextFrameOutside) { return { nextFrame: actualFirstFrame, framesToAdvance, hasEnded, }; } return { nextFrame, framesToAdvance, hasEnded }; } // Reverse playback if (isNextFrameOutside) { return { nextFrame: actualLastFrame, framesToAdvance, hasEnded }; } return { nextFrame, framesToAdvance, hasEnded }; }; exports.calculateNextFrame = calculateNextFrame;