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
{{ message }}
Repository navigation
Recording (Windows): don't copy the webcam frame when it has not changed #934
The video writer asks the webcam for its latest frame on every screen tick (60/s) and compares the sequence number afterwards (main.cpp, webcam block of writeVideoFrames).
WebcamCapture::copyLatestFrame copies the whole frame before that comparison (webcam_capture.cpp), and so does the DirectShow path.
A 30 fps camera therefore costs about 30 useless full-frame copies a second: ~190 MB/s at 1080p NV12, ~750 MB/s at 4K, on the thread that paces the screen.
Proposal
Pass the last seen sequence to copyLatestFrame and return early, without copying, when it has not changed (both capture backends).
Verify
A unit test on the snapshot rule: an unchanged sequence copies nothing.
On a real take: storeMs / readSampleMs in INFO: Webcam capture loop ended, and the helper's CPU, before and after.
This change is assigned to the Next Release release milestone and is not necessarily available in the latest downloadable desktop release yet. It is currently marked as status: pending release until a packaged release containing it is published.
Activity
github-actions commentedon Sep 30, 2026
Fixed by #941 and merged into
main.This change is assigned to the
Next Releaserelease milestone and is not necessarily available in the latest downloadable desktop release yet. It is currently marked asstatus: pending releaseuntil a packaged release containing it is published.EtienneLescot commentedon Sep 30, 2026
Moved into
v2.0.0as part of the pre-release cut.