diff --git a/crates/verify/expectations.toml b/crates/verify/expectations.toml index ea47214b2ef..fe4136d1544 100644 --- a/crates/verify/expectations.toml +++ b/crates/verify/expectations.toml @@ -367,17 +367,41 @@ link = "https://github.com/CapSoftware/Cap/actions/runs/38745219281" # ci/fixproof-crash- (runs 38850662667, 38850661576, 38850663436, # 38850662102), which removes exactly its entries. Fixes: #2640 (bug A), # #2641 (bug B1), #2643 (bug C), #2644 (bug E). +# +# bug B1 has different symptoms per platform. Linux and Windows still lose +# the first static-screen fragment because a 60-frame keyframe interval spans +# 20 s of capture while the recorder dies at 11 s. macOS recovers that +# fragment within the loss-time and missing bounds, but the keyframe-only cut +# still makes the complete fragments span 4 s of capture. Tracked by #2641. [[xfail]] case = "crash/recorder-kill/inproc/static-screen" class = "loss-time" +platforms = ["linux", "windows"] bound = { count = 1, secs = [2.5, 20.5] } -reason = "NEW (bug B1): fragments are cut only at keyframes and every recording encoder's keyframe interval is a frame count (g = 2 s x nominal fps; libx264 keyint 60 here, VideoToolbox 12), so when the screen delivers 3 frames per second a fragment spans 20 s of capture and a crash after 11 s loses all of it (3 of 3 platforms; macOS runners use libx264). Bound: at most one 20 s fragment of capture" +reason = "NEW (bug B1): fragments are cut only at keyframes and every recording encoder's keyframe interval is a frame count (g = 2 s x nominal fps; libx264 keyint 60 here, VideoToolbox 12), so when the screen delivers 3 frames per second a fragment spans 20 s of capture and a crash after 11 s loses all of it (Linux and Windows still use the frame-count interval; macOS recovers within this bound). Bound: at most one 20 s fragment of capture" link = "https://github.com/CapSoftware/Cap/pull/2641" [[xfail]] case = "crash/recorder-kill/inproc/static-screen" class = "missing" +platforms = ["linux", "windows"] bound = { count = 1 } -reason = "NEW (bug B1, see loss-time): no fragment of the static recording is complete when the recorder dies, so recovery has nothing (no frames)" +reason = "NEW (bug B1, see loss-time): no fragment of the static recording is complete when the recorder dies, so recovery has nothing (no frames) on Linux and Windows" +link = "https://github.com/CapSoftware/Cap/pull/2641" + +[[xfail]] +case = "crash/recorder-kill/inproc/static-screen" +class = "fragment-span" +platforms = ["macos"] +bound = { count = 2 } +reason = "NEW (bug B1): fragments are cut only at keyframes and every recording encoder's keyframe interval is a frame count, so the two complete fragments span 4 s of capture instead of GOP_SECS plus the 0.33 s before the closing frame; macOS reports one fragment-span problem per fragment. The loss-time and missing symptoms no longer occur on macOS" +link = "https://github.com/CapSoftware/Cap/pull/2641" + +[[xfail]] +case = "crash/recorder-kill/oop/static-screen" +class = "fragment-span" +platforms = ["macos"] +bound = { count = 3 } +reason = "NEW (bug B1): the out-of-process static-screen recording keeps three complete fragments and each spans 3 to 4 s of capture instead of GOP_SECS plus the 0.33 s before the closing frame; macOS reports one fragment-span problem per fragment. The loss-time and missing symptoms no longer occur on macOS" link = "https://github.com/CapSoftware/Cap/pull/2641"