Skip to content

Conversation

@mprib
Copy link
Owner

@mprib mprib commented Jan 15, 2026

Summary

  • Single FramePacketPublisher lives across all presenter states, enabling video scrubbing
  • Position slider allows seeking in READY/CALIBRATED states with charuco overlay
  • Slider tracks playback progress during COLLECTING, locks during CALIBRATING
  • Auto-enables undistortion and jumps to frame 0 after calibration completes

Test plan

  • All 128 tests pass
  • Manual: READY state - drag slider, see tracked frames with charuco overlay
  • Manual: Start calibration - slider locks, tracks progress
  • Manual: Let video complete - calibration triggers, jumps to frame 0 with undistort enabled
  • Manual: CALIBRATED state - slider unlocked, can scrub with undistort toggle
  • Manual: Rapid scrubbing - smooth frame-by-frame seeking
  • Manual: Stop mid-collection - pauses cleanly, can restart

Closes #891

Single FramePacketPublisher now lives across all presenter states,
enabling video scrubbing in READY/CALIBRATED states. Slider tracks
playback progress during COLLECTING and locks during CALIBRATING.

Key changes:
- Publisher created at init with break_on_last=False (pauses at end)
- Consumer thread runs continuously, checks for external cancellation
- seek_to() uses jump_to(exact=True) for smooth frame-by-frame scrubbing
- Auto-enables undistortion and jumps to frame 0 after calibration

Refs #891
@mprib mprib merged commit d4c9238 into 885-epic-video-playback-refactor Jan 15, 2026
9 checks passed
@mprib mprib deleted the 891-add-presenter-seeking branch January 15, 2026 01:08
@mprib mprib mentioned this pull request Jan 16, 2026
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.

2 participants