@hyperframes/engine 0.8.2 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/audioMixer.d.ts.map +1 -1
- package/dist/services/audioMixer.js +75 -20
- package/dist/services/audioMixer.js.map +1 -1
- package/dist/services/audioMixer.types.d.ts +2 -0
- package/dist/services/audioMixer.types.d.ts.map +1 -1
- package/dist/services/frameCapture.d.ts.map +1 -1
- package/dist/services/frameCapture.js +6 -1
- package/dist/services/frameCapture.js.map +1 -1
- package/dist/services/mediaRenderIdBridge.d.ts +35 -0
- package/dist/services/mediaRenderIdBridge.d.ts.map +1 -0
- package/dist/services/mediaRenderIdBridge.js +37 -0
- package/dist/services/mediaRenderIdBridge.js.map +1 -0
- package/dist/services/mediaTimelineWindow.d.ts +7 -0
- package/dist/services/mediaTimelineWindow.d.ts.map +1 -0
- package/dist/services/mediaTimelineWindow.js +10 -0
- package/dist/services/mediaTimelineWindow.js.map +1 -0
- package/dist/services/screenshotService.d.ts.map +1 -1
- package/dist/services/screenshotService.js +39 -14
- package/dist/services/screenshotService.js.map +1 -1
- package/dist/services/videoFrameExtractor.d.ts +5 -2
- package/dist/services/videoFrameExtractor.d.ts.map +1 -1
- package/dist/services/videoFrameExtractor.js +79 -43
- package/dist/services/videoFrameExtractor.js.map +1 -1
- package/dist/services/videoFrameInjector.d.ts.map +1 -1
- package/dist/services/videoFrameInjector.js +18 -11
- package/dist/services/videoFrameInjector.js.map +1 -1
- package/package.json +3 -3
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* BeginFrame-based deterministic screenshot capture and video frame injection.
|
|
6
6
|
*/
|
|
7
7
|
import { COLOR_GRADING_SOURCE_HIDDEN_ATTR } from "@hyperframes/core/color-grading";
|
|
8
|
-
import { HF_COLOR_GRADING_CANVAS_ID_PREFIX, MEDIA_VISUAL_STYLE_PROPERTIES, } from "@hyperframes/core";
|
|
8
|
+
import { HF_COLOR_GRADING_CANVAS_ID_PREFIX, MEDIA_RENDER_ID_ATTR, MEDIA_VISUAL_STYLE_PROPERTIES, RENDER_FRAME_ID_PREFIX, RENDER_FRAME_ID_SUFFIX, renderFrameIdForRenderId, } from "@hyperframes/core";
|
|
9
9
|
export const cdpSessionCache = new WeakMap();
|
|
10
10
|
export async function getCdpSession(page) {
|
|
11
11
|
let client = cdpSessionCache.get(page);
|
|
@@ -352,6 +352,9 @@ export async function applyDomLayerMask(page, showIds, extraHideIds) {
|
|
|
352
352
|
const existing = document.getElementById(args.styleId);
|
|
353
353
|
if (existing)
|
|
354
354
|
existing.remove();
|
|
355
|
+
// Affixes come from core's renderFrameSibling, so the runtime readers and
|
|
356
|
+
// this lookup cannot drift apart on the id format.
|
|
357
|
+
const renderFrameId = (id) => `${args.renderFramePrefix}${id}${args.renderFrameSuffix}`;
|
|
355
358
|
const restoreMaskedElements = () => {
|
|
356
359
|
const masked = document.querySelectorAll(`[${args.hiddenAttr}="1"]`);
|
|
357
360
|
for (const node of masked) {
|
|
@@ -406,12 +409,23 @@ export async function applyDomLayerMask(page, showIds, extraHideIds) {
|
|
|
406
409
|
};
|
|
407
410
|
const showSelectors = [];
|
|
408
411
|
for (const id of args.show) {
|
|
409
|
-
const el = document.getElementById(id);
|
|
412
|
+
const el = window.__hfMediaEl?.(id) ?? document.getElementById(id);
|
|
410
413
|
if (el)
|
|
411
414
|
rememberHiddenTimedDescendants(el);
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
+
// Address the element by its render id when it has one. `#id` must not
|
|
416
|
+
// be used as an extra fallback here: an id is duplicated exactly when
|
|
417
|
+
// two compositions share it, so `#id` would also unhide the other
|
|
418
|
+
// scene's element — the collision this render id exists to resolve.
|
|
419
|
+
if (el?.hasAttribute(args.renderIdAttr)) {
|
|
420
|
+
const attrEscaped = id.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
421
|
+
const byRenderId = `[${args.renderIdAttr}="${attrEscaped}"]`;
|
|
422
|
+
showSelectors.push(byRenderId, `${byRenderId} *`);
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
const escaped = CSS.escape(id);
|
|
426
|
+
showSelectors.push(`#${escaped}`, `#${escaped} *`);
|
|
427
|
+
}
|
|
428
|
+
const renderEscaped = CSS.escape(renderFrameId(id));
|
|
415
429
|
showSelectors.push(`#${renderEscaped}`, `#${renderEscaped} *`);
|
|
416
430
|
const colorGradingEscaped = CSS.escape(`${args.canvasIdPrefix}${id}`);
|
|
417
431
|
showSelectors.push(`#${colorGradingEscaped}`, `#${colorGradingEscaped} *`);
|
|
@@ -428,11 +442,11 @@ export async function applyDomLayerMask(page, showIds, extraHideIds) {
|
|
|
428
442
|
rememberAndHideElement(el);
|
|
429
443
|
}
|
|
430
444
|
for (const id of args.hide) {
|
|
431
|
-
const el = document.getElementById(id);
|
|
432
|
-
if (el) {
|
|
445
|
+
const el = window.__hfMediaEl?.(id) ?? document.getElementById(id);
|
|
446
|
+
if (el instanceof HTMLElement) {
|
|
433
447
|
rememberAndHideElement(el);
|
|
434
448
|
}
|
|
435
|
-
const img = document.getElementById(
|
|
449
|
+
const img = document.getElementById(renderFrameId(id));
|
|
436
450
|
if (img) {
|
|
437
451
|
rememberAndHideElement(img);
|
|
438
452
|
}
|
|
@@ -444,6 +458,9 @@ export async function applyDomLayerMask(page, showIds, extraHideIds) {
|
|
|
444
458
|
}, {
|
|
445
459
|
show: showIds,
|
|
446
460
|
hide: extraHideIds,
|
|
461
|
+
renderIdAttr: MEDIA_RENDER_ID_ATTR,
|
|
462
|
+
renderFramePrefix: RENDER_FRAME_ID_PREFIX,
|
|
463
|
+
renderFrameSuffix: RENDER_FRAME_ID_SUFFIX,
|
|
447
464
|
styleId: DOM_LAYER_MASK_STYLE_ID,
|
|
448
465
|
hiddenAttr: DOM_LAYER_MASK_HIDDEN_ATTR,
|
|
449
466
|
prevVisibilityAttr: DOM_LAYER_MASK_PREV_VISIBILITY_ATTR,
|
|
@@ -517,20 +534,24 @@ export async function removeDomLayerMask(page, _extraHideIds) {
|
|
|
517
534
|
* callers that don't run through `initializeSession`.
|
|
518
535
|
*/
|
|
519
536
|
export async function ensureRenderFrameSiblings(page) {
|
|
520
|
-
await page.evaluate(() => {
|
|
537
|
+
await page.evaluate((prefix, suffix) => {
|
|
521
538
|
for (const video of Array.from(document.querySelectorAll("video[data-start]"))) {
|
|
522
539
|
const next = video.nextElementSibling;
|
|
523
540
|
if (next !== null && next.classList.contains("__render_frame__"))
|
|
524
541
|
continue;
|
|
525
542
|
const img = document.createElement("img");
|
|
526
543
|
img.classList.add("__render_frame__");
|
|
527
|
-
|
|
544
|
+
// Derive from the render id, not `video.id` — two scenes can share an
|
|
545
|
+
// element id, and two siblings sharing an id would collide in turn.
|
|
546
|
+
// `||`, not `??`: `__hfMediaId` returns "" for an element with neither
|
|
547
|
+
// id, and core's reader treats that as "no id" rather than a key.
|
|
548
|
+
img.id = `${prefix}${window.__hfMediaId?.(video) || video.id}${suffix}`;
|
|
528
549
|
img.style.pointerEvents = "none";
|
|
529
550
|
img.style.position = "absolute";
|
|
530
551
|
img.style.visibility = "hidden";
|
|
531
552
|
video.parentNode?.insertBefore(img, video.nextSibling);
|
|
532
553
|
}
|
|
533
|
-
});
|
|
554
|
+
}, RENDER_FRAME_ID_PREFIX, RENDER_FRAME_ID_SUFFIX);
|
|
534
555
|
}
|
|
535
556
|
/**
|
|
536
557
|
* Returns the subset of `updates.videoId`s that were actually painted in
|
|
@@ -596,7 +617,8 @@ export async function injectVideoFramesBatch(page, updates) {
|
|
|
596
617
|
return false;
|
|
597
618
|
};
|
|
598
619
|
for (const item of items) {
|
|
599
|
-
const video =
|
|
620
|
+
const video = (window.__hfMediaEl?.(item.videoId) ??
|
|
621
|
+
document.getElementById(item.videoId));
|
|
600
622
|
if (!video)
|
|
601
623
|
continue;
|
|
602
624
|
let img = video.nextElementSibling;
|
|
@@ -630,7 +652,7 @@ export async function injectVideoFramesBatch(page, updates) {
|
|
|
630
652
|
if (isNewImage) {
|
|
631
653
|
img = document.createElement("img");
|
|
632
654
|
img.classList.add("__render_frame__");
|
|
633
|
-
img.id =
|
|
655
|
+
img.id = item.frameId;
|
|
634
656
|
img.style.pointerEvents = "none";
|
|
635
657
|
video.parentNode?.insertBefore(img, video.nextSibling);
|
|
636
658
|
}
|
|
@@ -709,7 +731,10 @@ export async function injectVideoFramesBatch(page, updates) {
|
|
|
709
731
|
redraw?.();
|
|
710
732
|
}
|
|
711
733
|
return injectedIds;
|
|
712
|
-
},
|
|
734
|
+
},
|
|
735
|
+
// Build the sibling id with core's function rather than a template here,
|
|
736
|
+
// so the id the readers look up has exactly one definition.
|
|
737
|
+
updates.map((update) => ({ ...update, frameId: renderFrameIdForRenderId(update.videoId) })), [...MEDIA_VISUAL_STYLE_PROPERTIES], COLOR_GRADING_SOURCE_HIDDEN_ATTR);
|
|
713
738
|
}
|
|
714
739
|
export async function syncVideoFrameVisibility(page, activeVideoIds) {
|
|
715
740
|
await page.evaluate(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshotService.js","sourceRoot":"","sources":["../../src/services/screenshotService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"screenshotService.js","sourceRoot":"","sources":["../../src/services/screenshotService.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ export interface VideoElement {
|
|
|
15
15
|
start: number;
|
|
16
16
|
end: number;
|
|
17
17
|
mediaStart: number;
|
|
18
|
+
playbackRate?: number;
|
|
18
19
|
loop: boolean;
|
|
19
20
|
hasAudio: boolean;
|
|
20
21
|
}
|
|
@@ -205,6 +206,8 @@ export interface TimelineExtractionWindow {
|
|
|
205
206
|
compositionStart: number;
|
|
206
207
|
mediaStart: number;
|
|
207
208
|
durationSeconds: number;
|
|
209
|
+
/** Visible duration on the authored composition timeline after retiming. */
|
|
210
|
+
timelineDurationSeconds?: number;
|
|
208
211
|
/**
|
|
209
212
|
* Preserve the authored timeline origin and mediaStart for lookup. This is
|
|
210
213
|
* required when a looped visible interval crosses a source boundary and
|
|
@@ -226,7 +229,7 @@ export interface TimelineExtractionWindow {
|
|
|
226
229
|
/** FFmpeg emits one decoded frame; lookup then holds that frame. */
|
|
227
230
|
finalFrameOnly?: boolean;
|
|
228
231
|
}
|
|
229
|
-
type TimelineWindowVideo = Pick<VideoElement, "start" | "end" | "mediaStart"> & Partial<Pick<VideoElement, "loop">>;
|
|
232
|
+
type TimelineWindowVideo = Pick<VideoElement, "start" | "end" | "mediaStart"> & Partial<Pick<VideoElement, "playbackRate">> & Partial<Pick<VideoElement, "loop">>;
|
|
230
233
|
/**
|
|
231
234
|
* Intersect an authored slot with the render timeline, then select the
|
|
232
235
|
* smallest playable source range that preserves timeline lookup semantics.
|
|
@@ -293,7 +296,7 @@ export declare class FrameLookupTable {
|
|
|
293
296
|
private activeVideoIds;
|
|
294
297
|
private startCursor;
|
|
295
298
|
private lastTime;
|
|
296
|
-
addVideo(extracted: ExtractedFrames, start: number, end: number, mediaStart: number, loop?: boolean): void;
|
|
299
|
+
addVideo(extracted: ExtractedFrames, start: number, end: number, mediaStart: number, loop?: boolean, playbackRate?: number): void;
|
|
297
300
|
getFrame(videoId: string, globalTime: number): string | null;
|
|
298
301
|
private resetActiveState;
|
|
299
302
|
private refreshActiveSet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoFrameExtractor.d.ts","sourceRoot":"","sources":["../../src/services/videoFrameExtractor.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAKH,OAAO,
|
|
1
|
+
{"version":3,"file":"videoFrameExtractor.d.ts","sourceRoot":"","sources":["../../src/services/videoFrameExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
import { copyFileSync, existsSync, linkSync, mkdirSync, readdirSync, rmSync } from "fs";
|
|
9
9
|
import { isAbsolute, join, posix, resolve, sep } from "path";
|
|
10
10
|
import { parseHTML } from "linkedom";
|
|
11
|
-
import { decodeUrlPathVariants, fpsToFfmpegArg, fpsToNumber, MEDIA_DURATION_CLAMP_EPSILON_SECONDS, toFps, } from "@hyperframes/core";
|
|
11
|
+
import { MEDIA_RENDER_ID_ATTR, decodeUrlPathVariants, fpsToFfmpegArg, fpsToNumber, MEDIA_DURATION_CLAMP_EPSILON_SECONDS, normalizePlaybackRate, parseStrictFiniteTimingNumber, readMediaStart, toFps, } from "@hyperframes/core";
|
|
12
12
|
import { resolveReferencedStart } from "./referenceResolver.js";
|
|
13
|
+
import { isKnownInactiveTimelineWindow } from "./mediaTimelineWindow.js";
|
|
13
14
|
import { extractFinalVideoFrameTimestamp, extractMediaMetadata, } from "../utils/ffprobe.js";
|
|
14
15
|
import { analyzeCompositionHdr, isHdrColorSpace as isHdrColorSpaceUtil, } from "../utils/hdr.js";
|
|
15
16
|
import { downloadToTemp, isHttpUrl, UrlDownloadError, writeUrlDownloadTelemetry, } from "../utils/urlDownloader.js";
|
|
@@ -236,14 +237,19 @@ export function parseVideoElements(html) {
|
|
|
236
237
|
continue;
|
|
237
238
|
// Generate a stable ID for videos without one — the producer needs IDs
|
|
238
239
|
// to track extracted frames and composite them during encoding.
|
|
239
|
-
|
|
240
|
+
// A compiled render document stamps a document-unique render id; prefer it,
|
|
241
|
+
// because element ids are only unique within one composition file and the
|
|
242
|
+
// render document inlines many.
|
|
243
|
+
const id = el.getAttribute(MEDIA_RENDER_ID_ATTR) ||
|
|
244
|
+
el.getAttribute("id") ||
|
|
245
|
+
`hf-video-${autoIdCounter++}`;
|
|
240
246
|
if (!el.getAttribute("id")) {
|
|
241
247
|
el.setAttribute("id", id);
|
|
242
248
|
}
|
|
243
249
|
const startAttr = el.getAttribute("data-start");
|
|
244
250
|
const endAttr = el.getAttribute("data-end");
|
|
245
251
|
const durationAttr = el.getAttribute("data-duration");
|
|
246
|
-
const
|
|
252
|
+
const playbackRateAttr = el.getAttribute("data-playback-rate");
|
|
247
253
|
const hasAudioAttr = el.getAttribute("data-has-audio");
|
|
248
254
|
// Resolve data-start, including relative references ("intro", "intro + 2")
|
|
249
255
|
// to another clip's end — the browser runtime resolves these but a raw
|
|
@@ -251,17 +257,21 @@ export function parseVideoElements(html) {
|
|
|
251
257
|
// blank in the final render. `startAttr` may be a plain number or a
|
|
252
258
|
// reference; the resolver handles both.
|
|
253
259
|
const start = startAttr ? resolveReferencedStart(document, el, startCache, visiting) : 0;
|
|
260
|
+
if (isKnownInactiveTimelineWindow(el, start))
|
|
261
|
+
continue;
|
|
254
262
|
// Derive end from data-end → data-start+data-duration → Infinity (natural duration).
|
|
255
263
|
// Static compilation cannot always clamp root media because GSAP may supply
|
|
256
264
|
// the root duration at runtime. The producer passes the resolved timeline
|
|
257
265
|
// end into frame extraction, which caps the source duration only after the
|
|
258
266
|
// natural duration is known without rewriting authored timing metadata.
|
|
259
267
|
let end = 0;
|
|
260
|
-
|
|
261
|
-
|
|
268
|
+
const authoredEnd = parseStrictFiniteTimingNumber(endAttr);
|
|
269
|
+
const authoredDuration = parseStrictFiniteTimingNumber(durationAttr);
|
|
270
|
+
if (authoredEnd != null) {
|
|
271
|
+
end = authoredEnd;
|
|
262
272
|
}
|
|
263
|
-
else if (
|
|
264
|
-
end = start +
|
|
273
|
+
else if (authoredDuration != null) {
|
|
274
|
+
end = start + authoredDuration;
|
|
265
275
|
}
|
|
266
276
|
else {
|
|
267
277
|
end = Infinity; // no explicit bounds — play for the full natural video duration
|
|
@@ -271,7 +281,8 @@ export function parseVideoElements(html) {
|
|
|
271
281
|
src,
|
|
272
282
|
start,
|
|
273
283
|
end,
|
|
274
|
-
mediaStart:
|
|
284
|
+
mediaStart: readMediaStart(el),
|
|
285
|
+
playbackRate: normalizePlaybackRate(playbackRateAttr ? parseFloat(playbackRateAttr) : Number.NaN),
|
|
275
286
|
loop: el.hasAttribute("loop"),
|
|
276
287
|
hasAudio: hasAudioAttr === "true",
|
|
277
288
|
});
|
|
@@ -289,7 +300,8 @@ export function parseImageElements(html) {
|
|
|
289
300
|
const src = el.getAttribute("src");
|
|
290
301
|
if (!src)
|
|
291
302
|
continue;
|
|
292
|
-
|
|
303
|
+
// See parseVideoElements: the stamped render id wins over the authored id.
|
|
304
|
+
const id = el.getAttribute(MEDIA_RENDER_ID_ATTR) || el.getAttribute("id") || `hf-img-${autoIdCounter++}`;
|
|
293
305
|
if (!el.getAttribute("id")) {
|
|
294
306
|
el.setAttribute("id", id);
|
|
295
307
|
}
|
|
@@ -300,11 +312,13 @@ export function parseImageElements(html) {
|
|
|
300
312
|
// referenced image start doesn't become NaN and drop the image from the render.
|
|
301
313
|
const start = startAttr ? resolveReferencedStart(document, el, startCache, visiting) : 0;
|
|
302
314
|
let end = 0;
|
|
303
|
-
|
|
304
|
-
|
|
315
|
+
const authoredEnd = parseStrictFiniteTimingNumber(endAttr);
|
|
316
|
+
const authoredDuration = parseStrictFiniteTimingNumber(durationAttr);
|
|
317
|
+
if (authoredEnd != null) {
|
|
318
|
+
end = authoredEnd;
|
|
305
319
|
}
|
|
306
|
-
else if (
|
|
307
|
-
end = start +
|
|
320
|
+
else if (authoredDuration != null) {
|
|
321
|
+
end = start + authoredDuration;
|
|
308
322
|
}
|
|
309
323
|
else {
|
|
310
324
|
end = Infinity;
|
|
@@ -509,51 +523,55 @@ const FINAL_FRAME_LOGICAL_DURATION_SECONDS = 1e-6;
|
|
|
509
523
|
* behaviours survive the source-duration cap.
|
|
510
524
|
*/
|
|
511
525
|
export function resolveTimelineExtractionWindow(video, resolvedDuration, timelineEnd, sourceDuration) {
|
|
526
|
+
const playbackRate = normalizePlaybackRate(video.playbackRate ?? 1);
|
|
527
|
+
const withTimelineDuration = (window, timelineDurationSeconds) => playbackRate === 1 ? window : { ...window, timelineDurationSeconds };
|
|
512
528
|
if (timelineEnd === undefined) {
|
|
513
|
-
return {
|
|
529
|
+
return withTimelineDuration({
|
|
514
530
|
compositionStart: video.start,
|
|
515
531
|
mediaStart: video.mediaStart,
|
|
516
|
-
durationSeconds: resolvedDuration,
|
|
517
|
-
};
|
|
532
|
+
durationSeconds: resolvedDuration * playbackRate,
|
|
533
|
+
}, resolvedDuration);
|
|
518
534
|
}
|
|
519
535
|
if (!Number.isFinite(timelineEnd)) {
|
|
520
536
|
throw new Error(`Video extraction timelineEnd must be finite; got ${String(timelineEnd)}`);
|
|
521
537
|
}
|
|
522
538
|
const compositionStart = Math.max(0, video.start);
|
|
523
539
|
const trimmedPreroll = compositionStart - video.start;
|
|
540
|
+
const trimmedSourcePreroll = trimmedPreroll * playbackRate;
|
|
524
541
|
const timelineDuration = Math.max(0, timelineEnd - compositionStart);
|
|
525
542
|
// Infinity means "natural source duration", not an authored infinite slot.
|
|
526
543
|
// Explicit finite slots may outlive the source (loop or held tail), while an
|
|
527
544
|
// omitted duration remains source-bounded exactly like the browser runtime.
|
|
528
545
|
const resolvedVisibleDuration = resolvedDuration - trimmedPreroll;
|
|
529
546
|
const visibleDuration = Math.max(0, Math.min(resolvedVisibleDuration, timelineDuration));
|
|
530
|
-
|
|
547
|
+
const visibleSourceDuration = visibleDuration * playbackRate;
|
|
548
|
+
let mediaStart = video.mediaStart + trimmedSourcePreroll;
|
|
531
549
|
if (visibleDuration > 0 && sourceDuration !== undefined) {
|
|
532
550
|
const sourceRemaining = Math.max(0, sourceDuration - video.mediaStart);
|
|
533
551
|
if (sourceRemaining > 0 && video.loop && Number.isFinite(video.end)) {
|
|
534
|
-
const phaseOffset =
|
|
552
|
+
const phaseOffset = trimmedSourcePreroll % sourceRemaining;
|
|
535
553
|
const phaseRemaining = sourceRemaining - phaseOffset;
|
|
536
554
|
// The element visibility contract includes its end boundary. Preserve a
|
|
537
555
|
// complete cycle on equality as well, otherwise a rebased suffix would
|
|
538
556
|
// wrap to its own first frame instead of the source cycle's first frame.
|
|
539
|
-
if (
|
|
540
|
-
return {
|
|
557
|
+
if (visibleSourceDuration >= phaseRemaining) {
|
|
558
|
+
return withTimelineDuration({
|
|
541
559
|
compositionStart: video.start,
|
|
542
560
|
mediaStart: video.mediaStart,
|
|
543
561
|
durationSeconds: sourceRemaining,
|
|
544
562
|
preserveTimelinePhase: true,
|
|
545
|
-
};
|
|
563
|
+
}, visibleDuration);
|
|
546
564
|
}
|
|
547
565
|
mediaStart = video.mediaStart + phaseOffset;
|
|
548
566
|
}
|
|
549
567
|
else if (sourceRemaining > 0) {
|
|
550
|
-
const sourceVisibleAfterPreroll = Math.max(0, sourceRemaining -
|
|
551
|
-
if (
|
|
552
|
-
return {
|
|
568
|
+
const sourceVisibleAfterPreroll = Math.max(0, sourceRemaining - trimmedSourcePreroll);
|
|
569
|
+
if (visibleSourceDuration <= sourceVisibleAfterPreroll) {
|
|
570
|
+
return withTimelineDuration({
|
|
553
571
|
compositionStart,
|
|
554
572
|
mediaStart,
|
|
555
|
-
durationSeconds:
|
|
556
|
-
};
|
|
573
|
+
durationSeconds: visibleSourceDuration,
|
|
574
|
+
}, visibleDuration);
|
|
557
575
|
}
|
|
558
576
|
// The visible interval enters (or is entirely inside) the held tail.
|
|
559
577
|
// Extract the visible source suffix. If preroll is already at/past the
|
|
@@ -561,20 +579,20 @@ export function resolveTimelineExtractionWindow(video, resolvedDuration, timelin
|
|
|
561
579
|
// provisional suffix with one exact final frame.
|
|
562
580
|
const extractionDuration = Math.min(sourceRemaining, Math.max(sourceVisibleAfterPreroll, FINAL_FRAME_LOGICAL_DURATION_SECONDS));
|
|
563
581
|
const extractionOffset = sourceRemaining - extractionDuration;
|
|
564
|
-
return {
|
|
565
|
-
compositionStart: video.start + extractionOffset,
|
|
582
|
+
return withTimelineDuration({
|
|
583
|
+
compositionStart: video.start + extractionOffset / playbackRate,
|
|
566
584
|
mediaStart: video.mediaStart + extractionOffset,
|
|
567
585
|
durationSeconds: extractionDuration,
|
|
568
586
|
preserveTimelineEnd: true,
|
|
569
587
|
ensureFinalFrame: true,
|
|
570
|
-
};
|
|
588
|
+
}, visibleDuration);
|
|
571
589
|
}
|
|
572
590
|
}
|
|
573
|
-
return {
|
|
591
|
+
return withTimelineDuration({
|
|
574
592
|
compositionStart,
|
|
575
593
|
mediaStart,
|
|
576
|
-
durationSeconds:
|
|
577
|
-
};
|
|
594
|
+
durationSeconds: visibleSourceDuration,
|
|
595
|
+
}, visibleDuration);
|
|
578
596
|
}
|
|
579
597
|
/**
|
|
580
598
|
* Replace a held-tail suffix that starts at/after the final decoded timestamp
|
|
@@ -598,6 +616,9 @@ export async function resolveFinalFrameExtractionWindow(videoPath, video, metada
|
|
|
598
616
|
mediaStart: playableDuration - logicalDuration,
|
|
599
617
|
extractionMediaStart: finalFrameTimestamp,
|
|
600
618
|
durationSeconds: logicalDuration,
|
|
619
|
+
...(window.timelineDurationSeconds !== undefined
|
|
620
|
+
? { timelineDurationSeconds: window.timelineDurationSeconds }
|
|
621
|
+
: {}),
|
|
601
622
|
preserveTimelineEnd: true,
|
|
602
623
|
finalFrameOnly: true,
|
|
603
624
|
};
|
|
@@ -611,7 +632,12 @@ export function resolveVideoExtractionWindow(video, metadata, timelineEnd) {
|
|
|
611
632
|
if (video.mediaStart >= playableDuration) {
|
|
612
633
|
throw new VideoSourceExtractionError("media_start_out_of_range", false, "Video media start is outside the source duration", `Video media start ${video.mediaStart}s is outside playable video duration ${playableDuration}s`);
|
|
613
634
|
}
|
|
614
|
-
const
|
|
635
|
+
const playbackRate = normalizePlaybackRate(video.playbackRate ?? 1);
|
|
636
|
+
const requestedTimelineDuration = video.end - video.start;
|
|
637
|
+
const resolvedDuration = Number.isFinite(requestedTimelineDuration) && requestedTimelineDuration > 0
|
|
638
|
+
? requestedTimelineDuration
|
|
639
|
+
: resolveSegmentDuration(requestedTimelineDuration, video.mediaStart, playableDuration) /
|
|
640
|
+
playbackRate;
|
|
615
641
|
return resolveTimelineExtractionWindow(video, resolvedDuration, timelineEnd, playableDuration);
|
|
616
642
|
}
|
|
617
643
|
export function resolveVideoExtractionDuration(video, metadata, timelineEnd) {
|
|
@@ -1268,7 +1294,7 @@ export async function extractAllVideoFrames(videos, baseDir, options, signal, co
|
|
|
1268
1294
|
if (!window.preserveTimelinePhase) {
|
|
1269
1295
|
video.start = window.compositionStart;
|
|
1270
1296
|
if (!window.preserveTimelineEnd) {
|
|
1271
|
-
video.end = window.compositionStart + videoDuration;
|
|
1297
|
+
video.end = window.compositionStart + (window.timelineDurationSeconds ?? videoDuration);
|
|
1272
1298
|
}
|
|
1273
1299
|
video.mediaStart = window.mediaStart;
|
|
1274
1300
|
}
|
|
@@ -1393,17 +1419,19 @@ export async function extractAllVideoFrames(videos, baseDir, options, signal, co
|
|
|
1393
1419
|
phaseBreakdown: breakdown,
|
|
1394
1420
|
};
|
|
1395
1421
|
}
|
|
1396
|
-
function getFrameIndexAtTime(extracted, globalTime, videoStart, loop = false, mediaStart = 0, holdLastFrame = false) {
|
|
1422
|
+
function getFrameIndexAtTime(extracted, globalTime, videoStart, loop = false, mediaStart = 0, holdLastFrame = false, playbackRate = 1) {
|
|
1397
1423
|
let localTime = globalTime - videoStart;
|
|
1398
1424
|
if (localTime < 0)
|
|
1399
1425
|
return null;
|
|
1400
|
-
const
|
|
1426
|
+
const normalizedPlaybackRate = normalizePlaybackRate(playbackRate);
|
|
1427
|
+
const loopDuration = Math.max(0, resolvePlayableVideoDuration(extracted.metadata) - mediaStart) /
|
|
1428
|
+
normalizedPlaybackRate;
|
|
1401
1429
|
if (loop && loopDuration > 0 && localTime >= loopDuration) {
|
|
1402
1430
|
localTime %= loopDuration;
|
|
1403
1431
|
}
|
|
1404
1432
|
// Add epsilon before flooring to avoid IEEE 754 boundary errors where
|
|
1405
1433
|
// e.g. 0.28 * 25 === 6.999999999999999 instead of 7.
|
|
1406
|
-
const frameIndex = Math.floor(localTime * extracted.fps + 1e-9);
|
|
1434
|
+
const frameIndex = Math.floor(localTime * normalizedPlaybackRate * extracted.fps + 1e-9);
|
|
1407
1435
|
if (frameIndex < 0 || extracted.totalFrames <= 0)
|
|
1408
1436
|
return null;
|
|
1409
1437
|
if (frameIndex >= extracted.totalFrames) {
|
|
@@ -1439,8 +1467,15 @@ export class FrameLookupTable {
|
|
|
1439
1467
|
activeVideoIds = new Set();
|
|
1440
1468
|
startCursor = 0;
|
|
1441
1469
|
lastTime = null;
|
|
1442
|
-
addVideo(extracted, start, end, mediaStart, loop = false) {
|
|
1443
|
-
this.videos.set(extracted.videoId, {
|
|
1470
|
+
addVideo(extracted, start, end, mediaStart, loop = false, playbackRate = 1) {
|
|
1471
|
+
this.videos.set(extracted.videoId, {
|
|
1472
|
+
extracted,
|
|
1473
|
+
start,
|
|
1474
|
+
end,
|
|
1475
|
+
mediaStart,
|
|
1476
|
+
loop,
|
|
1477
|
+
playbackRate: normalizePlaybackRate(playbackRate),
|
|
1478
|
+
});
|
|
1444
1479
|
this.orderedVideos = Array.from(this.videos.entries())
|
|
1445
1480
|
.map(([videoId, video]) => ({ videoId, ...video }))
|
|
1446
1481
|
.sort((a, b) => a.start - b.start);
|
|
@@ -1452,7 +1487,7 @@ export class FrameLookupTable {
|
|
|
1452
1487
|
return null;
|
|
1453
1488
|
if (globalTime < video.start || globalTime > video.end)
|
|
1454
1489
|
return null;
|
|
1455
|
-
const frameIndex = getFrameIndexAtTime(video.extracted, globalTime, video.start, video.loop, video.mediaStart, true);
|
|
1490
|
+
const frameIndex = getFrameIndexAtTime(video.extracted, globalTime, video.start, video.loop, video.mediaStart, true, video.playbackRate);
|
|
1456
1491
|
return frameIndex == null ? null : video.extracted.framePaths.get(frameIndex) || null;
|
|
1457
1492
|
}
|
|
1458
1493
|
resetActiveState() {
|
|
@@ -1510,7 +1545,7 @@ export class FrameLookupTable {
|
|
|
1510
1545
|
const video = this.videos.get(videoId);
|
|
1511
1546
|
if (!video)
|
|
1512
1547
|
continue;
|
|
1513
|
-
const frameIndex = getFrameIndexAtTime(video.extracted, globalTime, video.start, video.loop, video.mediaStart, true);
|
|
1548
|
+
const frameIndex = getFrameIndexAtTime(video.extracted, globalTime, video.start, video.loop, video.mediaStart, true, video.playbackRate);
|
|
1514
1549
|
if (frameIndex == null)
|
|
1515
1550
|
continue;
|
|
1516
1551
|
const framePath = video.extracted.framePaths.get(frameIndex);
|
|
@@ -1551,8 +1586,9 @@ export function createFrameLookupTable(videos, extracted) {
|
|
|
1551
1586
|
extractedMap.set(ext.videoId, ext);
|
|
1552
1587
|
for (const video of videos) {
|
|
1553
1588
|
const ext = extractedMap.get(video.id);
|
|
1554
|
-
if (ext)
|
|
1555
|
-
table.addVideo(ext, video.start, video.end, video.mediaStart, video.loop);
|
|
1589
|
+
if (ext) {
|
|
1590
|
+
table.addVideo(ext, video.start, video.end, video.mediaStart, video.loop, video.playbackRate);
|
|
1591
|
+
}
|
|
1556
1592
|
}
|
|
1557
1593
|
return table;
|
|
1558
1594
|
}
|