Repository navigation
Conversation
Contributor
|
@AksharP5 is attempting to deploy a commit to the Cap Software Inc Team on Vercel. A member of the Team first needs to authorize it. |
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.
Adjusting padding, colors, or camera rounding in a long recording still discarded every zoom timeline. The next frame then simulated the spring again from the beginning to the current playhead. Playback and paused preview now keep those samples while their zoom inputs match.
The shared check uses the existing time-map and crop-map builders. Zoom, spring, crop, hold, and clip-timing changes still invalidate the cache. Adding or removing the first transition also refreshes outgoing timelines, including when the zoom track is empty.
Native
editor-playback-benchmark, one-hour synthetic recording at 58:20, 60 fps, 320x180, headless audio and llvmpipe on an i5-14400F:Median of three alternating before/after pairs per workload, 360 submitted frames per run, all runs retained. Padding-edit frame gaps improve by 43.5%. Main drops one rendered frame in each edited run; this PR delivers all 360. These are native playback measurements with software rendering. Both builds use Rust 1.88 and O3 for cap-project, cap-rendering, and cap-editor, with the remaining repository dev settings unchanged.
Validation: 33 zoom tests and two preview-snapshot tests pass. A separate 56-process native zoom probe produces identical sampled transform bits before/after; unrelated edits retain the cache and the spring-change control still rebuilds. Strict Clippy passes for all three touched crates with
--all-targets --no-deps -- -D warnings. The broader Linux dependency lint also fails on pristine main atcrates/utils/src/disk_space.rs:186for an unnecessary cast; that file is unchanged.Checked all 273 current public open PRs for overlap. #2599 optimizes auto-zoom cluster lookup; this change avoids rebuilding the timelines during unrelated edits, and the measured fixture uses manual zoom.
Reproduce the native playback comparison
Use the repository's normal native build environment and Rust 1.88. Save the Python below as
make-fixture.py, then runpython3 make-fixture.py /tmp/cap-zoom-repro.cap. It creates 216,000 real H264 frames and a one-hour manual-zoom project.Build the unchanged benchmark example in separate checkouts of
2b2bf8445158c078337c9f097892dde36bc3fe8dand this PR:On Linux with the lavapipe ICD installed, run each binary with the same fixture:
Omit
--live-edit background --edit-interval-ms 50for the no-edit control. The reportedcallback gapp95 measures delivered-frame cadence. The measurement plan fixed three pairs per case and alternated execution order. One baseline no-edit 120-frame pilot verified the fixture and environment and was excluded before timed comparisons. Every paired run used the same canonical project-config hash, and live edits stayed in memory.

Confidence Score: 5/5
The PR appears safe to merge; no actionable issues were found.Summary
Preview and playback now keep computed zoom samples when appearance edits leave zoom inputs unchanged.
No actionable issues found. Review was based on source inspection; tests and benchmarks were not rerun.
Reviews (1) · Last reviewed commit: "perf(editor): keep zoom timelines during..." · Reviewed by Greptile