mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-10 04:18:01 +00:00
feat: make creator media edits render-safe (#3322)
* feat: make creator media edits render-safe * fix: align media playback timing * docs: add creator editing recipes * docs: expand creator editing guidance * fix: unify media source offsets * fix: scale natural media duration * fix: preserve natural media zero spans * fix: align compiled natural media timing * test: classify compiler media test as integration * fix: drop inactive media windows * fix: unify literal timing parsing * fix: keep browser media parsing serializable * fix: keep page timing readers strict * fix: close remaining preview timing gaps * fix(core): preserve Studio voice pitch at playback speed * chore: keep creator contract source-neutral
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import type { RuntimeTimelineLike } from "./types";
|
||||
import { swallow } from "./diagnostics";
|
||||
import { readElementPlaybackRate } from "./media";
|
||||
import { readMediaStart } from "./playbackRate";
|
||||
import { parseNumeric, parseStartExpression } from "./startExpression";
|
||||
|
||||
const AUTHORED_DURATION_ATTR = "data-hf-authored-duration";
|
||||
@@ -82,10 +83,7 @@ export function createRuntimeStartTimeResolver(params: {
|
||||
}
|
||||
}
|
||||
if ((resolved == null || resolved <= 0) && isMediaElement(element)) {
|
||||
const playbackStart =
|
||||
parseNumeric(element.getAttribute("data-playback-start")) ??
|
||||
parseNumeric(element.getAttribute("data-media-start")) ??
|
||||
0;
|
||||
const playbackStart = readMediaStart(element);
|
||||
if (Number.isFinite(element.duration) && element.duration > playbackStart) {
|
||||
resolved = (element.duration - playbackStart) / readElementPlaybackRate(element);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user