With provideZoneChangeDetection a zone-registered interval runs app-wide
change detection every 500 ms for the entire stream. Register the drift
poll via NgZone.runOutsideAngular and never re-enter the zone — the drift
path is rAF → setEmbeddedMpvBounds IPC and touches no Angular state.
Frame-copy sessions skip the measurement entirely: the canvas is laid out
by the DOM and moves with the layout, so only the native-view child
window can go stale on a position-only shift.
Addresses the Codex P2 review finding on #1476.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>