@hyperframes/engine 0.8.43 → 0.8.45

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.
@@ -1 +1 @@
1
- {"version":3,"file":"frameCapture.d.ts","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frameCapture.d.ts","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,10 @@
9
9
  */
10
10
  import { existsSync, mkdirSync, writeFileSync } from "fs";
11
11
  import { join } from "path";
12
- import { quantizeTimeToFrame, fpsToNumber, resolveAuthoredTimingWindow, } from "@hyperframes/core";
12
+ import { quantizeSeekTime, quantizeTimeToFrame, fpsToNumber, resolveAuthoredTimingWindow, } from "@hyperframes/core";
13
13
  import { DrawElementCaptureError } from "./drawElementCaptureError.js";
14
+ import { encodePng } from "../utils/alphaBlit.js";
15
+ import { MotionBlurAccumulator, motionBlurSampleTimes, motionBlurWindowIsStatic, resolveMotionBlurPlan, } from "./motionBlur.js";
14
16
  // ── Extracted modules ───────────────────────────────────────────────────────
15
17
  import { acquireBrowser, releaseBrowser, forceReleaseBrowser, buildChromeArgs, resolveBrowserGpuMode, resolveHeadlessShellPath, } from "./browserManager.js";
16
18
  import { beginFrameCapture, ensureRenderFrameSiblings, getCdpSession, pageContentExceedsCaptureHeight, pageScreenshotCapture, initTransparentBackground, shouldDefaultCaptureBeyondViewport, } from "./screenshotService.js";
@@ -1653,7 +1655,7 @@ export async function initializeSession(session) {
1653
1655
  await initDrawElementOrTransparentBackground(session, page, logInitPhase);
1654
1656
  await armStaticDedup(session, session.page, logInitPhase);
1655
1657
  await ensureRenderFrameSiblings(session.page);
1656
- session.isInitialized = true;
1658
+ finalizeSessionInit(session);
1657
1659
  return;
1658
1660
  }
1659
1661
  // In BeginFrame mode, Chrome's event loop is paused until we issue frames.
@@ -1821,7 +1823,7 @@ export async function initializeSession(session) {
1821
1823
  await ensureRenderFrameSiblings(page);
1822
1824
  const commitCdp = await getCdpSession(page);
1823
1825
  await commitCdp.send("HeadlessExperimental.beginFrame", preparedBeginFrameTimeline.commitParams);
1824
- session.isInitialized = true;
1826
+ finalizeSessionInit(session);
1825
1827
  }
1826
1828
  async function captureFrameErrorDiagnostics(session, frameIndex, time, error) {
1827
1829
  try {
@@ -1856,23 +1858,30 @@ export async function waitForPendingSeekCompletion(page) {
1856
1858
  await waitForCompletion?.();
1857
1859
  });
1858
1860
  }
1859
- async function prepareFrameForCapture(session, frameIndex, time) {
1861
+ /**
1862
+ * Seek the page timeline and report whether a page-side composite is pending.
1863
+ *
1864
+ * The page's `seek()` owns all framework-specific stepping (GSAP, CSS animations, WAAPI);
1865
+ * the options object reaches it untouched through the producer's `__hf.seek` bridge.
1866
+ * Seek and pending-flag read share one round trip.
1867
+ */
1868
+ async function seekPageTimeline(page, time, seekOptions) {
1869
+ return page.evaluate((t, opts) => {
1870
+ if (window.__hf && typeof window.__hf.seek === "function") {
1871
+ window.__hf.seek(t, opts);
1872
+ }
1873
+ return !!window
1874
+ .__hf_page_composite_pending;
1875
+ }, time, seekOptions);
1876
+ }
1877
+ async function prepareFrameForCapture(session, frameIndex, time, seekOptions) {
1860
1878
  const { page, options } = session;
1861
1879
  if (!session.isInitialized) {
1862
1880
  throw new Error("[FrameCapture] Session not initialized");
1863
1881
  }
1864
- const quantizedTime = quantizeTimeToFrame(time, fpsToNumber(options.fps));
1882
+ const quantizedTime = quantizeSeekTime(time, fpsToNumber(options.fps), seekOptions?.subFrameDivisions);
1865
1883
  const seekStart = Date.now();
1866
- // Seek via the __hf protocol. The page's seek() implementation handles
1867
- // all framework-specific logic (GSAP stepping, CSS animation sync, etc.)
1868
- // Seek + check page-side composite pending flag in one round-trip.
1869
- const hasPendingComposite = await page.evaluate((t) => {
1870
- if (window.__hf && typeof window.__hf.seek === "function") {
1871
- window.__hf.seek(t);
1872
- }
1873
- return !!window
1874
- .__hf_page_composite_pending;
1875
- }, quantizedTime);
1884
+ const hasPendingComposite = await seekPageTimeline(page, quantizedTime, seekOptions);
1876
1885
  await decodeDynamicCssBackgroundImages(page);
1877
1886
  const seekMs = Date.now() - seekStart;
1878
1887
  // Before-capture hook (e.g. video frame injection) — runs before
@@ -2676,8 +2685,158 @@ export async function withFrameDeadline(work, label, ms, onTimeout) {
2676
2685
  });
2677
2686
  }
2678
2687
  }
2679
- async function captureFrameCore(session, frameIndex, time) {
2688
+ /**
2689
+ * Resolve the session's motion-blur plan, rejecting combinations the accumulation pass
2690
+ * cannot render correctly instead of silently producing an unblurred frame.
2691
+ *
2692
+ * Called once initialization has settled the capture mode. `format: "png"` is required
2693
+ * because samples are averaged pixel by pixel: JPEG samples would be averaged after
2694
+ * lossy quantization and the blended frame is re-encoded as PNG. `<video>` content is
2695
+ * out of scope because it is supplied by the before-capture frame-injection hook rather
2696
+ * than by the timeline seek, so it cannot follow a sub-frame time.
2697
+ */
2698
+ export function resolveSessionMotionBlur(session) {
2699
+ const plan = resolveMotionBlurPlan(session.options.motionBlur);
2700
+ if (!plan)
2701
+ return undefined;
2702
+ if (session.captureMode !== "screenshot") {
2703
+ throw new Error(`[MotionBlur] sub-frame motion blur requires screenshot capture mode, got "${session.captureMode}"`);
2704
+ }
2705
+ if (session.options.format !== "png") {
2706
+ throw new Error(`[MotionBlur] sub-frame motion blur requires format "png", got "${session.options.format ?? "jpeg"}"`);
2707
+ }
2708
+ if (session.onBeforeCapture) {
2709
+ throw new Error("[MotionBlur] sub-frame motion blur cannot run with injected video frames: video content is extracted per output frame and does not follow a sub-frame seek");
2710
+ }
2711
+ return plan;
2712
+ }
2713
+ /** Seek to `time` and capture one surface with the session's capture mode. */
2714
+ async function captureFrameSurface(session, frameIndex, time, seekOptions) {
2680
2715
  const { page, options } = session;
2716
+ const { quantizedTime, seekMs, beforeCaptureMs } = await prepareFrameForCapture(session, frameIndex, time, seekOptions);
2717
+ const screenshotStart = Date.now();
2718
+ let screenshotBuffer;
2719
+ if (session.captureMode === "beginframe") {
2720
+ const frameTimeTicks = session.beginFrameTimeTicks + frameIndex * session.beginFrameIntervalMs;
2721
+ const result = await beginFrameCapture(page, options, frameTimeTicks, session.beginFrameIntervalMs);
2722
+ if (result.hasDamage)
2723
+ session.beginFrameHasDamageCount++;
2724
+ else
2725
+ session.beginFrameNoDamageCount++;
2726
+ screenshotBuffer = result.buffer;
2727
+ }
2728
+ else if (session.captureMode === "drawelement" &&
2729
+ session.clipBoundaryFrames?.has(frameIndex) &&
2730
+ process.env.HF_FAST_CAPTURE_BOUNDARY_SS === "true") {
2731
+ throw new DrawElementCaptureError(frameIndex, "boundary screenshot requested on an injected canvas page");
2732
+ }
2733
+ else if (session.captureMode === "drawelement") {
2734
+ // Advance compositor state via BeginFrame when available (Linux headless-shell);
2735
+ // on macOS the compositor advances naturally without BeginFrame.
2736
+ if (session.beginFrameTimeTicks > 0) {
2737
+ const client = await getCdpSession(page);
2738
+ await client.send("HeadlessExperimental.beginFrame", {
2739
+ frameTimeTicks: session.beginFrameTimeTicks + frameIndex * session.beginFrameIntervalMs,
2740
+ interval: session.beginFrameIntervalMs,
2741
+ noDisplayUpdates: false,
2742
+ // no screenshot param — we capture via canvas
2743
+ });
2744
+ }
2745
+ try {
2746
+ screenshotBuffer = await captureDrawElementFrame(page, options.width, options.height, options.format ?? "jpeg", options.quality ?? 80,
2747
+ // Paint-event sync only without BeginFrame (macOS / screenshot-launched):
2748
+ // under BeginFrame control the per-frame beginFrame above already painted
2749
+ // a fresh snapshot, and no further paint would arrive during a wait.
2750
+ session.beginFrameTimeTicks === 0);
2751
+ // A tiny JPEG may be a dropped paint record. Never screenshot this page:
2752
+ // its injected canvas can still hold the preceding frame's bitmap.
2753
+ // Restart on a fresh screenshot page even if this was a simple valid frame.
2754
+ if ((options.format ?? "jpeg") !== "png" && process.env.HF_FORCE_DRAWELEMENT !== "1") {
2755
+ const sizes = (session.deFrameSizes ??= []);
2756
+ const sorted = sizes.length >= 12 ? [...sizes].sort((a, b) => a - b) : null;
2757
+ const median = sorted ? (sorted[sorted.length >> 1] ?? 0) : 0;
2758
+ const floor = Math.max(20000, median * 0.12);
2759
+ if (screenshotBuffer.length < floor) {
2760
+ throw new DrawElementCaptureError(frameIndex, `suspect small frame (${screenshotBuffer.length}B < ${Math.round(floor)}B)`);
2761
+ }
2762
+ else {
2763
+ if (sizes.length >= 60)
2764
+ sizes.shift();
2765
+ sizes.push(screenshotBuffer.length);
2766
+ }
2767
+ }
2768
+ }
2769
+ catch (err) {
2770
+ // Missing paint records/canvas state require a new screenshot page.
2771
+ if (isRecoverableDrawElementError(err)) {
2772
+ session.deNcprFallbacks = (session.deNcprFallbacks ?? 0) + 1;
2773
+ const reason = isCanvasNotInitializedError(err)
2774
+ ? "drawElement canvas not initialized"
2775
+ : "No cached paint record";
2776
+ throw new DrawElementCaptureError(frameIndex, reason, err);
2777
+ }
2778
+ else {
2779
+ throw err;
2780
+ }
2781
+ }
2782
+ }
2783
+ else {
2784
+ screenshotBuffer = await pageScreenshotCapture(page, options);
2785
+ }
2786
+ const screenshotMs = Date.now() - screenshotStart;
2787
+ return { buffer: screenshotBuffer, quantizedTime, seekMs, beforeCaptureMs, screenshotMs };
2788
+ }
2789
+ /**
2790
+ * Mark the session ready to capture.
2791
+ *
2792
+ * The single owner of what finishing initialization means, because `initializeSession`
2793
+ * has two exits: screenshot mode returns early, and every other mode falls through the
2794
+ * end. Resolving motion blur at only one of them marks the session ready with no plan,
2795
+ * which silently renders unblurred rather than failing. Both fields are set here so a
2796
+ * third exit cannot forget one.
2797
+ */
2798
+ function finalizeSessionInit(session) {
2799
+ session.motionBlur = resolveSessionMotionBlur(session);
2800
+ session.isInitialized = true;
2801
+ }
2802
+ /**
2803
+ * Capture one output frame as the average of `plan.samplesPerFrame` sub-frame captures.
2804
+ *
2805
+ * Callback invariant: exactly one eventful seek per output frame, at the frame time,
2806
+ * arriving from the previous frame's time. Every sample seek suppresses events and the
2807
+ * playhead is restored to the frame time afterwards, so a composition's own
2808
+ * onUpdate/onComplete fire on the same interval boundaries as a render with blur off.
2809
+ */
2810
+ async function captureAccumulatedFrame(session, frameIndex, absFrameIndex, plan) {
2811
+ const fps = fpsToNumber(session.options.fps);
2812
+ const frameTime = quantizeSeekTime(absFrameIndex / fps, fps);
2813
+ const eventfulSeekStart = Date.now();
2814
+ await seekPageTimeline(session.page, frameTime, undefined);
2815
+ const totals = { seekMs: Date.now() - eventfulSeekStart, beforeCaptureMs: 0, screenshotMs: 0 };
2816
+ const sampleSeek = {
2817
+ suppressEvents: true,
2818
+ subFrameDivisions: plan.subFrameDivisions,
2819
+ };
2820
+ const accumulator = new MotionBlurAccumulator(plan.blend);
2821
+ for (const sampleTime of motionBlurSampleTimes(plan, absFrameIndex, fps)) {
2822
+ const sample = await captureFrameSurface(session, frameIndex, sampleTime, sampleSeek);
2823
+ totals.seekMs += sample.seekMs;
2824
+ totals.beforeCaptureMs += sample.beforeCaptureMs;
2825
+ totals.screenshotMs += sample.screenshotMs;
2826
+ accumulator.add(sample.buffer);
2827
+ }
2828
+ const restoreSeekStart = Date.now();
2829
+ await seekPageTimeline(session.page, frameTime, { suppressEvents: true });
2830
+ totals.seekMs += Date.now() - restoreSeekStart;
2831
+ const blended = accumulator.finish();
2832
+ return {
2833
+ buffer: encodePng(blended.width, blended.height, blended.data),
2834
+ quantizedTime: frameTime,
2835
+ ...totals,
2836
+ };
2837
+ }
2838
+ async function captureFrameCore(session, frameIndex, time) {
2839
+ const { options } = session;
2681
2840
  const startTime = Date.now();
2682
2841
  // Static-frame dedup: this frame is byte-identical to its predecessor (predicted +
2683
2842
  // anchor-verified at init) → reuse the prior buffer, skip the seek + screenshot.
@@ -2696,7 +2855,9 @@ async function captureFrameCore(session, frameIndex, time) {
2696
2855
  const absFrameIndex = Math.floor(time * fpsToNumber(options.fps) + 1e-9);
2697
2856
  if (session.staticFrames?.has(absFrameIndex) &&
2698
2857
  session.lastFrameBuffer &&
2699
- session.lastFrameAbsoluteIndex === absFrameIndex - 1) {
2858
+ session.lastFrameAbsoluteIndex === absFrameIndex - 1 &&
2859
+ (!session.motionBlur ||
2860
+ motionBlurWindowIsStatic(session.motionBlur, absFrameIndex, session.staticFrames))) {
2700
2861
  session.staticDedupCount = (session.staticDedupCount ?? 0) + 1;
2701
2862
  session.lastFrameAbsoluteIndex = absFrameIndex;
2702
2863
  return {
@@ -2706,77 +2867,12 @@ async function captureFrameCore(session, frameIndex, time) {
2706
2867
  };
2707
2868
  }
2708
2869
  try {
2709
- const { quantizedTime, seekMs, beforeCaptureMs } = await prepareFrameForCapture(session, frameIndex, time);
2710
- const screenshotStart = Date.now();
2711
- let screenshotBuffer;
2712
- if (session.captureMode === "beginframe") {
2713
- const frameTimeTicks = session.beginFrameTimeTicks + frameIndex * session.beginFrameIntervalMs;
2714
- const result = await beginFrameCapture(page, options, frameTimeTicks, session.beginFrameIntervalMs);
2715
- if (result.hasDamage)
2716
- session.beginFrameHasDamageCount++;
2717
- else
2718
- session.beginFrameNoDamageCount++;
2719
- screenshotBuffer = result.buffer;
2720
- }
2721
- else if (session.captureMode === "drawelement" &&
2722
- session.clipBoundaryFrames?.has(frameIndex) &&
2723
- process.env.HF_FAST_CAPTURE_BOUNDARY_SS === "true") {
2724
- throw new DrawElementCaptureError(frameIndex, "boundary screenshot requested on an injected canvas page");
2725
- }
2726
- else if (session.captureMode === "drawelement") {
2727
- // Advance compositor state via BeginFrame when available (Linux headless-shell);
2728
- // on macOS the compositor advances naturally without BeginFrame.
2729
- if (session.beginFrameTimeTicks > 0) {
2730
- const client = await getCdpSession(page);
2731
- await client.send("HeadlessExperimental.beginFrame", {
2732
- frameTimeTicks: session.beginFrameTimeTicks + frameIndex * session.beginFrameIntervalMs,
2733
- interval: session.beginFrameIntervalMs,
2734
- noDisplayUpdates: false,
2735
- // no screenshot param — we capture via canvas
2736
- });
2737
- }
2738
- try {
2739
- screenshotBuffer = await captureDrawElementFrame(page, options.width, options.height, options.format ?? "jpeg", options.quality ?? 80,
2740
- // Paint-event sync only without BeginFrame (macOS / screenshot-launched):
2741
- // under BeginFrame control the per-frame beginFrame above already painted
2742
- // a fresh snapshot, and no further paint would arrive during a wait.
2743
- session.beginFrameTimeTicks === 0);
2744
- // A tiny JPEG may be a dropped paint record. Never screenshot this page:
2745
- // its injected canvas can still hold the preceding frame's bitmap.
2746
- // Restart on a fresh screenshot page even if this was a simple valid frame.
2747
- if ((options.format ?? "jpeg") !== "png" && process.env.HF_FORCE_DRAWELEMENT !== "1") {
2748
- const sizes = (session.deFrameSizes ??= []);
2749
- const sorted = sizes.length >= 12 ? [...sizes].sort((a, b) => a - b) : null;
2750
- const median = sorted ? (sorted[sorted.length >> 1] ?? 0) : 0;
2751
- const floor = Math.max(20000, median * 0.12);
2752
- if (screenshotBuffer.length < floor) {
2753
- throw new DrawElementCaptureError(frameIndex, `suspect small frame (${screenshotBuffer.length}B < ${Math.round(floor)}B)`);
2754
- }
2755
- else {
2756
- if (sizes.length >= 60)
2757
- sizes.shift();
2758
- sizes.push(screenshotBuffer.length);
2759
- }
2760
- }
2761
- }
2762
- catch (err) {
2763
- // Missing paint records/canvas state require a new screenshot page.
2764
- if (isRecoverableDrawElementError(err)) {
2765
- session.deNcprFallbacks = (session.deNcprFallbacks ?? 0) + 1;
2766
- const reason = isCanvasNotInitializedError(err)
2767
- ? "drawElement canvas not initialized"
2768
- : "No cached paint record";
2769
- throw new DrawElementCaptureError(frameIndex, reason, err);
2770
- }
2771
- else {
2772
- throw err;
2773
- }
2774
- }
2775
- }
2776
- else {
2777
- screenshotBuffer = await pageScreenshotCapture(page, options);
2778
- }
2779
- const screenshotMs = Date.now() - screenshotStart;
2870
+ const plan = session.motionBlur;
2871
+ // One capture per frame, or `plan.samplesPerFrame` captures averaged into one. Both
2872
+ // report the same timings, so perf accounting and the dedup anchor stay shared.
2873
+ const { buffer, quantizedTime, seekMs, beforeCaptureMs, screenshotMs } = plan
2874
+ ? await captureAccumulatedFrame(session, frameIndex, absFrameIndex, plan)
2875
+ : await captureFrameSurface(session, frameIndex, time);
2780
2876
  const captureTimeMs = Date.now() - startTime;
2781
2877
  session.capturePerf.frames += 1;
2782
2878
  session.capturePerf.seekMs += seekMs;
@@ -2786,10 +2882,10 @@ async function captureFrameCore(session, frameIndex, time) {
2786
2882
  session.capturePerf.frameMs.push(captureTimeMs);
2787
2883
  // Retain this freshly-captured buffer so the following static frames can reuse it.
2788
2884
  if (session.staticFrames) {
2789
- session.lastFrameBuffer = screenshotBuffer;
2885
+ session.lastFrameBuffer = buffer;
2790
2886
  session.lastFrameAbsoluteIndex = absFrameIndex;
2791
2887
  }
2792
- return { buffer: screenshotBuffer, quantizedTime, captureTimeMs };
2888
+ return { buffer, quantizedTime, captureTimeMs };
2793
2889
  }
2794
2890
  catch (captureError) {
2795
2891
  if (session.isInitialized) {
@@ -2803,6 +2899,15 @@ export async function captureFrame(session, frameIndex, time) {
2803
2899
  const framePath = writeCapturedFrame(session, frameIndex, buffer);
2804
2900
  return { frameIndex, time: quantizedTime, path: framePath, captureTimeMs };
2805
2901
  }
2902
+ /**
2903
+ * File extension for a captured frame, keyed on the format the frames were actually
2904
+ * captured in. The encoder's input pattern and the writer must agree, so both read this
2905
+ * rather than re-deriving the answer from whether the OUTPUT needs alpha, which is a
2906
+ * different question and stops being equivalent as soon as anything else forces PNG.
2907
+ */
2908
+ export function frameFileExtension(format) {
2909
+ return format === "png" ? "png" : "jpg";
2910
+ }
2806
2911
  /**
2807
2912
  * Write an already-captured frame buffer to the session's output dir using the
2808
2913
  * canonical `frame_NNNNNN.{jpg,png}` naming. `fileIndex` is the ENCODER-facing
@@ -2812,7 +2917,7 @@ export async function captureFrame(session, frameIndex, time) {
2812
2917
  * `captureFrameToBufferPipelined` without duplicating the naming convention.
2813
2918
  */
2814
2919
  export function writeCapturedFrame(session, fileIndex, buffer) {
2815
- const ext = session.options.format === "png" ? "png" : "jpg";
2920
+ const ext = frameFileExtension(session.options.format);
2816
2921
  const framePath = join(session.outputDir, `frame_${String(fileIndex).padStart(6, "0")}.${ext}`);
2817
2922
  writeFileSync(framePath, buffer);
2818
2923
  return framePath;
@@ -2855,6 +2960,13 @@ export async function captureFrameToBuffer(session, frameIndex, time) {
2855
2960
  * - macOS hardware GPU path (syncToPaintEvent=true, beginFrameTimeTicks=0).
2856
2961
  * BeginFrame (Linux) uses the standard synchronous path unchanged.
2857
2962
  */
2963
+ /**
2964
+ * Worker-encode path, gated to drawElement capture. It does not route through
2965
+ * `captureFrameCore` and so has no accumulation branch; that is safe only because
2966
+ * `resolveSessionMotionBlur` rejects every capture mode except screenshot, which makes
2967
+ * this function unreachable with motion blur on. Widening the supported capture modes
2968
+ * means handling accumulation here too.
2969
+ */
2858
2970
  export async function captureFrameToBufferPipelined(session, frameIndex, time) {
2859
2971
  const { page, options } = session;
2860
2972
  const startTime = Date.now();