fix(encode): exempt --frame from the codec/container guard - #197
Merged
Conversation
The guard added in #194 ran before cmd_render's single-frame branch, so rustmotion render -f s.json -o f.png --frame 0 failed with "codec 'h264' cannot be written into a .png file". A --frame still is written by render_single_frame and never reaches an encoder, so the codec is not part of that operation — the check does not apply. This is a regression I shipped in #194: every local check passed because none of them exercised --frame, which is the documented way to preview a scene.
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.
Regression from #194, on
main.What
The guard ran before
cmd_render's single-frame branch. A--framestill is written byrender_single_frameand never reaches an encoder, so the codec is not part of that operation at all.--frameis the documented way to preview a scene (SKILL.md, and the wizard's "propose a preview" step), so this broke a normal path.How
if frame.is_none()around the guard, in bothcmd_renderandcmd_watch.proresinto.mp4is still refused.What I should have caught
Every local check passed —
fmt,clippy -D warnings,cargo test --workspace— because nothing exercised--frame. The guard's own five tests covered the mapping and not the callers. A test pins the reason.pngis in no codec's list, so the exemption reads as deliberate rather than as an oversight to be "fixed" later.