You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(compositor): hold the webcam at its EOF instead of restarting it every tick
Review follow-up: a webcam track shorter than the screen — the camera
stopping before the capture does, which the doc already called a normal
case — put the player into permanent full-speed decoding.
`target_webcam_t` is derived from the screen clock and keeps growing. At
the webcam's EOF the catch-up loop seeked back to 0 and left the target
untouched, so the NEXT tick restarted the catch-up from t=0 against a
target still tens of minutes away and committed frames until the 1000-frame
guard cut it off. Every tick. The webcam file was re-decoded end to end,
forever, to display a track that had nothing left to show.
Holding its last frame is both the fix and the semantics this PR is built
on. Once EOF is a hold, the webcam decision is exactly the screen's at
export time, so the loop now calls `frame_step` directly instead of
carrying its own copy of the four cases — and `frame_step`'s tests cover
this path too.
122/122 pass.
0 commit comments