Multicam clock sync: ClockSyncPing/Pong + ClockOffsetEstimator - #200
Closed
darioalessandro wants to merge 1 commit into
Closed
Multicam clock sync: ClockSyncPing/Pong + ClockOffsetEstimator#200darioalessandro wants to merge 1 commit into
darioalessandro wants to merge 1 commit into
Conversation
PR2 of the multicam plan. The synced-shutter foundation: the director will schedule captures on each camera's own clock, which needs a measured per-camera offset. - Wire: ClockSyncPing (action 25, carries director clock at send) answered with a CameraStateResponse echoing t0 plus the camera clock at receipt. Appended-field schema evolution; round-trip tested. Only ever sent to peers advertising supports_multicam. - The camera answers pings in the nonisolated delegate callback, off the actor inbox, so queued state-machine work cannot smear the timestamp (same pacing precedent as frame acks). Pong is addressed to the pinging peer only. - ClockOffsetEstimator: pure NTP-style min-RTT-of-5 window; offset = cameraClock − (t0 + rtt/2); rejects stale pongs; reset() for background/reconnect invalidation. SyncClock supplies the monotonic ms clock both sides read. Inert in production until a director sends pings. Full suite green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
darioalessandro
force-pushed
the
multicam-pr2-clocksync
branch
from
August 11, 2026 05:57
2674ae8 to
123fcd5
Compare
Contributor
📊 Test Coverage Report✅ 643/655 tests passed · ⏭️ 12 skipped
🎥 Capture & session core
📁 Full report — 89 files
Generated from |
Member
Author
|
Consolidated into the single feature PR per Dario's request: #203 (branch kept, not deleted). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR2 of the multicam plan (stacked on #199). The synced-shutter foundation.
ClockSyncPing(new action, appended-field schema evolution) carries the director's monotonic clock; the camera answers with an echoed t0 + its own clock at receipt.ClockOffsetEstimator: pure, min-RTT-of-5 NTP-style window;offset = cameraClock − (t0 + rtt/2); rejects pong-before-ping;reset()on background/reconnect. Unit-tested including the rtt/2 error bound.Inert until a director sends pings (gated on
supports_multicam). Full suite green.🤖 Generated with Claude Code