blob: cfcfb6a2b3a3ffa230d98bab7448f5aa7b2b57bc (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
import type { RetimeConfig } from "@/lib/timeline";
import { clampRetimeRate } from "@/constants/retime-constants";
function getSafeRate({ rate }: { rate: number }): number {
return clampRetimeRate({ rate });
}
export function getSourceTimeAtClipTime({
clipTime,
retime,
}: {
clipTime: number;
retime?: RetimeConfig;
}): number {
return clipTime * getSafeRate({ rate: retime?.rate ?? 1 });
}
export function getClipTimeAtSourceTime({
sourceTime,
retime,
}: {
sourceTime: number;
retime?: RetimeConfig;
}): number {
return sourceTime / getSafeRate({ rate: retime?.rate ?? 1 });
}
export function getEffectiveRateAt({
retime,
}: {
clipTime?: number;
retime?: RetimeConfig;
}): number {
return getSafeRate({ rate: retime?.rate ?? 1 });
}
export function getTimelineDurationForSourceSpan({
sourceSpan,
retime,
}: {
sourceSpan: number;
retime?: RetimeConfig;
}): number {
if (sourceSpan <= 0) {
return 0;
}
return sourceSpan / getSafeRate({ rate: retime?.rate ?? 1 });
}
|