1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", { value: true });
|
4 | exports.getMediaTime = exports.getExpectedMediaFrameUncorrected = void 0;
|
5 | const interpolate_1 = require("../interpolate");
|
6 | const getExpectedMediaFrameUncorrected = ({ frame, playbackRate, startFrom, }) => {
|
7 | return (0, interpolate_1.interpolate)(frame, [-1, startFrom, startFrom + 1], [-1, startFrom, startFrom + playbackRate]);
|
8 | };
|
9 | exports.getExpectedMediaFrameUncorrected = getExpectedMediaFrameUncorrected;
|
10 | const getMediaTime = ({ fps, frame, src, playbackRate, startFrom, }) => {
|
11 | const expectedFrame = (0, exports.getExpectedMediaFrameUncorrected)({
|
12 | frame,
|
13 | playbackRate,
|
14 | startFrom,
|
15 | });
|
16 | if (src.endsWith('mp4')) {
|
17 |
|
18 |
|
19 |
|
20 | return (expectedFrame + 1) / fps;
|
21 | }
|
22 | if (src.endsWith('webm')) {
|
23 |
|
24 | const msPerFrame = 1000 / fps;
|
25 | const msShift = msPerFrame / 2;
|
26 | return (expectedFrame * msPerFrame + msShift) / 1000;
|
27 | }
|
28 |
|
29 | return expectedFrame / fps;
|
30 | };
|
31 | exports.getMediaTime = getMediaTime;
|