-
Notifications
You must be signed in to change notification settings - Fork 0
Windows runtime capture: live 60s segment rotation (gapless) #46
Copy link
Copy link
Closed
Labels
afk-readyScoped and ready for an autonomous (AFK) agent to implementScoped and ready for an autonomous (AFK) agent to implementenhancementNew feature or requestNew feature or requestneeds-smoke-testRequires manual on-device verification before merge (not CI-verifiable)Requires manual on-device verification before merge (not CI-verifiable)windowsWindows platform supportWindows platform support
Description
Activity
Metadata
Metadata
Assignees
Labels
afk-readyScoped and ready for an autonomous (AFK) agent to implementScoped and ready for an autonomous (AFK) agent to implementenhancementNew feature or requestNew feature or requestneeds-smoke-testRequires manual on-device verification before merge (not CI-verifiable)Requires manual on-device verification before merge (not CI-verifiable)windowsWindows platform supportWindows platform support
@
What to build
Add live segment rotation to the Windows backend so a continuous recording produces gapless 60 s
.mp4segments — matching the macOS ScreenCaptureKit "stream stays live, swap the writer" model.rotate_screen_capture_sessionon Windows: finalize the current MF sink writer (flushing the held lookahead frame with its duration clamped to the segment boundary), create the next.mp4sink writer, and keep the WGC frame pool, D3D11 device, and capture thread alive across the swap.plan_live_rotation_segment(and its call in the segment loop) fromcfg(macos)tocfg(any(macos, windows)). Ensure the Windows path takes the rotation branch but skips the macOS-only inactivity-pause and wake-recovery branches (which call unsupported fns).t0to its first frame; one-frame lookahead computes each sample duration.This is the area most prone to a "video breaks after the first minute" bug (timestamp rebaseline) and to accidentally calling an unsupported macOS fn on Windows (the cfg surgery in the loop).
Acceptance criteria
.mp4segmentsplan_live_rotation_segmentruns on Windows; inactivity/wake branches are not reached on the Windows pathBlocked by
@