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
Follow-up from #535 slice 4a (bus health on air). The on-air black dropout policy fires on a source reading stalled. The bus derives stalled from "no NEW frameId for N ms", which is correct for Zoom decoded video (frames advance continuously) but wrong for change-driven producers that legitimately re-serve the same frameId while healthy: WGC screen/window capture (frames only on change), browser sources (SHM sequence advances only on repaint), stills (stable frameId by design), paused clips.
Slice 4a therefore ships the policy for Zoom sources only (1.5 s on-air hysteresis, recover on first new frame; black on the program pass only). The capture-row "On dropout" combo was removed.
To re-enable for capture
Capture adapters already know real liveness: CaptureDeviceInfo.signalPresent / connectionState (UVC signal, SRT socket state, WGC session alive, browser host alive + freeze grace). Surface that per tick to MediaCore's health annotation (cheap cache updated on enumerate/connect events, not a per-tick enumerate()), so a capture layer reads stalled/failed from the adapter's own signal, never from frameId cadence.
Then restore the capture-row combo and lift the zoom:-only guard in set-source-policy / SetSourceDropoutPolicy / source.dropout.set.
Media/still sources: a still is never "stalled"; a paused clip is deliberately held — exempt by kind. Also feed the still cache's desired set into the warming state so an opening still/clip reads warming, not failed.
Evidence
Final whole-branch review of codex/535-slice4a-health-on-air (2026-09-19): M1. Producers traced: WgcScreenCaptureAdapter.cpp (frameId only in onFrame), BrowserSourceHostAdapter.cpp:263-271, StillMediaFrameCache.h (stable frameId), OwnedMediaFrameSource.h hold path.
Activity
fix(#535): capture name-only policy wires omit dropoutPolicy (no fals…
Tiles: a local member is not aged out on a frozen frameId (#1071 review)