Skip to content

Replace frame_sync with SynchronizedTimestamps, make timestamps.csv optional#957

Merged
mprib merged 3 commits intomainfrom
feature/synchronized-timestamps
Mar 3, 2026
Merged

Replace frame_sync with SynchronizedTimestamps, make timestamps.csv optional#957
mprib merged 3 commits intomainfrom
feature/synchronized-timestamps

Conversation

@mprib
Copy link
Owner

@mprib mprib commented Mar 3, 2026

Summary

  • Replaces frame_sync.py with SynchronizedTimestamps frozen dataclass that encapsulates per-camera timestamps and the sync mapping in a single immutable object
  • Recordings without timestamps.csv now infer timing from video metadata (frame count + FPS), saving assumptions as inferred_timestamps.csv for inspection
  • FPS and frame count mismatches produce warnings, not errors
  • Rewrites the Frame Synchronization docs section for clarity

Fixes #956

Test plan

  • 360/360 tests passing (57s)
  • Type check clean
  • Manual test with real 5-camera data (renamed timestamps.csv away, calibration succeeded)
  • Verify docs render correctly with mkdocs serve

mprib added 3 commits March 3, 2026 12:54
SynchronizedTimestamps encapsulates per-camera frame timestamps and
the sync mapping in a single immutable object. Factory methods handle
both explicit timestamps.csv and inference from video metadata (writing
inferred_timestamps.csv as an audit trail). FPS and frame count
mismatches produce warnings rather than errors.

Fixes #956 — recordings without timestamps.csv now infer timing from
video metadata instead of crashing.

Docs wording is preliminary and will be refined in a follow-up commit.
Reworked to reflect that timestamps.csv is optional, inference assumes
cameras started and stopped at the same moment, and mismatched frame
rates or counts produce warnings rather than errors. Addresses the
confusion reported in issue #956.
@mprib mprib merged commit dd942a2 into main Mar 3, 2026
3 checks passed
@mprib mprib deleted the feature/synchronized-timestamps branch March 3, 2026 19:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Issue with Extrinsics pipeline

1 participant