Repository navigation
fix(cli): warn when a cloud render ignores the composition's fps - #5757
Conversation
jrusso1020
left a comment
There was a problem hiding this comment.
The code is fine at 9ba7ee4e. I'm holding the approval only because of the stack.
The PR targets cloudrender/fps-owner (#5756's branch), which has no branch protection. An approval here would let this merge into #5756's branch before #5756 lands, and only a handful of checks run against that base: the required main contexts (Build, Test, Typecheck, windows, edit accuracy, and the rest) haven't run on this head. Once #5756 merges and this is retargeted or rebased onto main with green CI, re-pin and I'll approve.
What I checked:
defaultCloudFpskeeps the old resolution order exactly:--fpsflag, then a supporteddata-fps, then 30. It only adds aconsole.warn(stderr, so--jsonstdout is untouched) when the project declares a rate outsideDISTRIBUTED_FPS. A missingdata-fpsor an unreadableindex.htmlstill falls back to 30 silently, which is right: nothing was declared.- All three call sites are converted (
lambda render,lambda render-batch,cloudrunviaresolveCloudRunFps), and code search finds no other caller of the removedreadAllowedCompositionFpsFromDir. - An explicit
--fps 50still errors as before, since the flag path doesn't go through the helper. - The tests cover each branch, including the fractional
30000/1001rate.
No live run.
— Rames
lambda and cloudrun render at 30 fps when data-fps is outside the cloud set (for example 50 or 30000/1001) and --fps is not passed. They now say so and point at --fps. The 30 fps default has one owner, defaultCloudFps.
9ba7ee4 to
4592b57
Compare
Edit accuracy: accurate 271 (base branch 271), smooth 188 of thoseThe gate passes. Quarantined, measured but not gated (0) Unstable (1)
|
jrusso1020
left a comment
There was a problem hiding this comment.
Approving at 4592b572. This is the hold I posted at 9ba7ee4e (stacked on #5756), now lifted. #5756 has merged, this PR targets main, and its own commit is unchanged: the same four files, +50/−60, the same hunks as the commit I reviewed. A search on the rebased head finds no caller of the removed readAllowedCompositionFpsFromDir.
The earlier read still holds:
defaultCloudFpskeeps the order:--fps, then a supporteddata-fps, then 30.- It only adds a stderr warning when the declared rate isn't in
DISTRIBUTED_FPS. - All three call sites (
lambda render,lambda render-batch,cloudrun) use it, and an explicit unsupported--fpsstill errors.
Required CI is green at this head. No live run.
— Rames
What changed
hyperframes lambda render,lambda render-batchandcloudrun renderpick the composition'sdata-fpswhen--fpsis not passed. When that rate is not one cloud renders support (for example50or30000/1001), they rendered at 30 fps without saying anything, so a 50 fps project came back at 30 fps with no hint why.They still render at 30 fps, but now print a warning naming the declared rate, the supported set and
--fps. The 30 fps default moved into the helper (defaultCloudFps), so the three call sites no longer each carry their own?? 30.I chose a warning over an error so existing renders keep working; turning it into an error is a one-line change if that is preferred.
What I measured
packages/cli/src/utils/compositionFps.test.ts: exit 0, 15 passed. New cases: supported rates (24, 25, 30, 60) return themselves with no warning; 48, 50 and 30000/1001 return 30 and warn once naming the declared value; nodata-fpsor noindex.htmlreturns 30 with no warning.tsc --noEmitinpackages/cli: clean.What I did NOT exercise
lambda/cloudrunrender; the change is in the CLI's fps default only.