summaryrefslogtreecommitdiff
path: root/apps/web/src/timeline/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/timeline/index.ts')
-rw-r--r--apps/web/src/timeline/index.ts9
1 files changed, 5 insertions, 4 deletions
diff --git a/apps/web/src/timeline/index.ts b/apps/web/src/timeline/index.ts
index 3775e006..21944561 100644
--- a/apps/web/src/timeline/index.ts
+++ b/apps/web/src/timeline/index.ts
@@ -1,4 +1,4 @@
-import { type MediaTime, ZERO_MEDIA_TIME } from "@/wasm";
+import { addMediaTime, type MediaTime, ZERO_MEDIA_TIME } from "@/wasm";
import type { SceneTracks } from "./types";
export * from "./types";
@@ -22,9 +22,10 @@ export function calculateTotalDuration({
let maxEnd: MediaTime = ZERO_MEDIA_TIME;
for (const track of orderedTracks) {
for (const element of track.elements) {
- // `startTime + duration` is integer-by-construction (both `MediaTime`),
- // so the cast re-establishes the brand without runtime work.
- const elementEnd = (element.startTime + element.duration) as MediaTime;
+ const elementEnd = addMediaTime({
+ a: element.startTime,
+ b: element.duration,
+ });
if (elementEnd > maxEnd) maxEnd = elementEnd;
}
}