Repository navigation
perf(producer): the audio task finds sound with a probe and reads URL clips in parallel - #6174
Queued
miguel-heygen wants to merge 6 commits into
Queued
miguel-heygen wants to merge 6 commits into
miguel-heygen wants to merge 6 commits into
Conversation
miguel-heygen
force-pushed
the
perf/audio-task-probe-only
branch
from
October 24, 2026 03:13
661ee22 to
9dd3154
Compare
Contributor
There was a problem hiding this comment.
Verdict: REQUEST CHANGES · 2 blocker · 0 important · 0 nits · head e6e639ac
- blocker: Preflight (lint + format) fails with
Type 'ExtractedFrames' is imported but never usedatextractVideosStage.ts:36. The narrowedappendAutoDetectedVideoAudiosignature left that import with no use. The redregressionandWindows render verificationruns on this head are downstream of that failure. - blocker (inline): the probe path skips the timing rebase that extraction used to apply, so "the mix is unchanged" doesn't hold for every clip.
Scope
I read all 5 files. I ran the new probe test, and ran the buildPlanAudio script-src test from plan.test.ts plus two variants of it (open-ended slot, negative data-start) at this head and at the merge base da3e9b63. The open-ended variant passes on both. The negative-start variant passes at the base and fails at this head. I didn't re-time anything on Lambda. The 16-wide remote slot looks right: it's chosen per element, and on-disk clips keep the CPU-sized limit.
Contributor
Edit accuracy: accurate 271 (base branch 271), smooth 150 of thoseThe gate passes. Quarantined, measured but not gated (0) Unstable (2)
|
miguel-heygen
added this pull request to the merge queue
Oct 24, 2026
Any commits made after this event will not be merged.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Two changes to the distributed audio task, both aimed at cut-heavy edits (one
<video>per cut over a few large sources):What I measured
videoAudioProbe.test.ts: three clips over a source with sound and one silent source give one audio entry for the first, and no frames are written.audioMixer.urlRead.test.ts: 24 one-second clips of a slow URL peak above the CPU-sized limit of open requests. With the new slot narrowed back to 2 the test fails (2 open requests, expected more than 4).buildPlanAudiotests (a video's sound, a script-set src, deferred audio) pass unchanged.Lambda before/after (a cut-heavy 4K edit)
A 840 s, 93-cut, 22 GB, 6-source 4K edit on a site, default flags, 3 cold runs each, same stack. Before is the release without #6172 and this change; after has both.
The audio task now finishes inside the chunk window. The plan (118 to 120 s here, all in its faster mode; the runs before took 198, 196 and 118 s) is now the largest part of the wall. These runs are on the first commit of this PR; the later commits only fix a start-before-timeline case and formatting.
Probe dedupe on a site
The probes in
appendVideoAudioFromProbestart together, one per<video>. On a site the sources' URLs are content-addressed (declared at compile in both the plan and the audio task), so the video-metadata cache returns the first call's in-flight promise to the rest and keeps its result: one probe per source however many clips use it. This is from the cache code, and the Lambda run's request count is the check. A plain https source that was not declared is probed per clip, as before.What I did NOT exercise