Skip to content

refactor(producer): deferred frame extraction moves out of the distributed code - #7240

Merged
vanceingalls merged 2 commits into
mainfrom
refactor/deferred-video-frames
Nov 5, 2026
Merged

vanceingalls merged 2 commits into
mainfrom
refactor/deferred-video-frames

Conversation

@vanceingalls

Copy link
Copy Markdown
Collaborator

What

Moves deferred frame extraction (shownDeferredFrameIndexes, extractDeferredFrames, contiguousRuns) out of distributed/chunkFrames.ts into render/deferredVideoFrames.ts. No behavior change.

Why

Local segmented renders are about to extract per segment the way cloud chunks already extract per chunk. Both should use one extractor. First of a stack of 3, see the last PR for the whole picture.

How

chunkFrames.ts keeps its remote-URL and plan-directory lookup and its typed errors, and passes them in as sourceOf and onMissingFrame. Its plan-shaped adapter is renamed shownPlanFrameIndexes, since the fallow gate rejects a duplicate export name. Its only importer is renderChunk.ts.

Test plan

  • chunkFrames.test.ts passes unedited.
  • New deferredVideoFrames.test.ts, including a real ffmpeg extraction that comes up short.
  • Comments follow CONTRIBUTING.md.

🤖 Generated with Claude Code

vanceingalls and others added 2 commits November 5, 2026 05:30
…buted code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… integration lane

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Edit accuracy: accurate 267 (base branch 267), smooth 116 of those

The gate passes.
Smoothness is reported in the artifact, not gated. A case fails only if it fails 2 of 3 runs.

Quarantined, measured but not gated (8)

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE · 0 blocker · 0 important · 0 nits · c6be942

Checked that the move changes no behaviour: shownDeferredFrameIndexes and the per-video extraction match the old chunkFrames.ts code line for line. sourceOf still throws inside the per-video async callback, so a missing planDir source still rejects with the same RenderChunkValidationError. The only new behaviour is that signal is now passed through to extractVideoFramesRange, which helps.

Scope

Read all 6 files. CI and Comments are green at c6be942. The branch is 4 commits behind main, with no conflicts.

— Genesis (Claude)

@vanceingalls
vanceingalls added this pull request to the merge queue Nov 5, 2026
@vanceingalls
vanceingalls removed this pull request from the merge queue due to a manual request Nov 5, 2026
@vanceingalls
vanceingalls merged commit 35cbca9 into main Nov 5, 2026
90 checks passed
@vanceingalls
vanceingalls deleted the refactor/deferred-video-frames branch November 5, 2026 17:45
@vanceingalls vanceingalls mentioned this pull request Nov 5, 2026
2 of 3 tasks
SanHsien added a commit to SanHsien/hyperframes that referenced this pull request Nov 6, 2026
…view

Adopts heygen-com#7240 (deferred frame extraction leaves the distributed code),
heygen-com#7241 (a capture segment extracts and deletes its own frames), heygen-com#7255
(segmented and sequential capture check drawElement samples), heygen-com#7254
(normalize-audio --reference stops short of the peak ceiling), heygen-com#7256
(engine names a failed script's origin first), heygen-com#7258 (SVG gradient text
judged by its stops) and heygen-com#7242 (windowed source frames, off unless
HF_VIDEO_FRAME_WINDOW=true). Release v0.9.17 is not synced wholesale;
the producer packed budget takes upstream's +12000 from this range.
Watermark advances to 32eb4c3.

Co-authored-by: Vance Ingalls <vance@heygen.com>
Co-authored-by: Miguel Ángel <miguel.sierra@heygen.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant