fix: prevent duplicate frames at trimmed speed boundaries - #888
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 5 remain after this review. 📝 WalkthroughWalkthroughThe Rust compositor and TypeScript exporter now skip speed regions with zero or negative clipped width before counting the preceding 1× gap. Regression tests cover a trim-boundary empty region and assert totals of 2,690 frames for one clip and 5,523 frames for two clips at 60 fps. ChangesSpeed-region frame counting
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to Empty speed regions at trimmed boundaries no longer double-count normal-speed spans, and the reported case has regression coverage. No unresolved material merge risk is established. Architecture SummaryArchitecture risk: 🟡 Medium · up to The change affects 2 systems. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
Reliability and maintainability
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning Some tools did not complete. Review the errors below. 🔧 Clippy (1.98.1)Clippy execution failed Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Skip zero-width speed regions before splitting render spans in both the TypeScript progress total and Rust compositor. A rounded region at a trimmed clip edge no longer causes the preceding 1x span to be counted and rendered twice.
Related issue
Fixes #876
Type of change
Release impact
Desktop impact
Screenshots / video
No UI changes. The Windows smoke export is in the local temp fixture directory as
issue876-windows-smoke.mp4.Testing
npx vitest --run src/lib/exporter/outputFrameCount.test.ts— 11 passed.npx tsc --noEmitandnpx tsc -p tsconfig.test.json --noEmit— passed.ffprobereports 5,523 video frames and 92.05 s format duration; the supplied RC export has 8,213 frames and 136.883 s.The archive's separate minimal project computes to 8.333 s and does not reproduce this boundary-rounding case. The Computer Use session exposed no native app/window target (
appswas empty andlistWindowswas unavailable), so a click-driven GUI pass was not possible here.Summary by CodeRabbit