Skip to content

Save fixed movie calibration in Tracker projects - #142

Merged
mgradwohl merged 1 commit into
mainfrom
tracker-movie-calibration-saving
Nov 9, 2026
Merged

mgradwohl merged 1 commit into
mainfrom
tracker-movie-calibration-saving

Conversation

@mgradwohl

@mgradwohl mgradwohl commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

Change

Saving a movie after using MoTrack's axes or distance-calibration tools previously refused the standard Tracker output. Allow edits to an existing fixed calibration and its length label through the audited movie writer, including linked .trk, selected MOV archive members, paired saving/recovery and portable MOV export. Timing, media bytes and track identity retain their existing restrictions.

Four independent actual-Tracker reference modes verify origin (10,18), 90° rotation, scales (4,8), centimetre units and calculated positions. They preserve every movie byte/frame/time and the untouched archive tab, and require normal application load/save/fresh-process reopen plus native reimport. Negative tests reject consistently wrong coordinates or labels. Related: #65, #78; neither issue is closed by this scoped persistence change.

Validation

Tested and reviewed head: 9c864e0780361cd15b1343d5470c369df199232c.

  • CI 42591194102: all six checks pass—Windows, macOS, Linux, both contributor setup jobs and combined coverage.
  • Combined production C++ line coverage: 95.83% (8938/9327), above the unchanged 90% gate.
  • Actual Tracker 6.3.5 on Linux passes linked-movie-calibration, archive-movie-calibration, paired-archive-movie-calibration and packaged-movie-calibration, including all archive tabs, native reimport and the complete existing compatibility suite.
  • All three platforms pass all 10 CTest groups and 92 Python oracle tests. The 30-case native corpus and staged desktop smoke checks pass.
  • Local Windows: all 10 CTest groups pass in 129.65s; coverage 95.76% (8909/9303). Four native export/XML/media/reimport probes pass. The three existing LLVM function-profile mismatch warnings remain visible.
  • All tracked C++ formatting and four changed-source static analyses pass. Relative documentation links checked.
  • Current-head Copilot review recommends approval with no open findings (2026-11-09 09:11:41 UTC); no unresolved review threads.

Compatibility and review

The shared coordinate writer retains finite/invertible-transform, precision, lock and fixed-key checks. Tests cover history, native reopen after source removal, standalone AVI/MOV output with a strided clip, desktop endpoint placement/undo/redo/paired saving, destination preservation and keyed-movie-calibration refusal.

Keyed/partly fixed movie calibration, new/removed coordinate systems, numeric movie timing, track identity changes, filters and broader containers remain unfinished. No production UI strings or runtime dependencies are introduced.

  • Applied docs/code-review.md to the diff and relevant writer/corpus callers.
  • Updated R03/R05/R09, the format/corpus guides and upstream triage; prior PR Export portable MOV experiments with validated complete media #141's merged evidence is recorded. Existing translations remain applicable.
  • Distinguished local checks from current-head CI and actual-Tracker acceptance; all merge gates pass.

Copilot AI balanced review requested due to automatic review settings November 9, 2026 09:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are recorded for the scoped movie calibration and length-label persistence changes.

No open issues 🎉

What changed in this PR

Enables MoTrack to save edits to existing fixed movie calibration and length labels in standard Tracker projects, extending the audited movie writer while retaining timing, media and track-identity restrictions.

Changes:

  • Supports fixed-calibration edits through linked saves, selected MOV archive members, paired saving/recovery and portable MOV export.
  • Adds four actual-Tracker reference modes and regression checks for geometry, units, undo/redo and media preservation.
  • Documents supported limits and pending current-revision acceptance; issues #65 and #78 remain open.
File Description
tools/​corpus.py Adds independent calibration expectations and reference-mode validation.
tests/​tracker_writer_test.cpp Tests calibration persistence and unsupported-state refusal.
tests/​test_corpus.py Checks that oracles reject incorrect geometry and units.
tests/​paired_workspace_test.cpp Exercises endpoint placement, undo/redo and paired calibration saves.
tests/​corpus/​README.md Documents calibration reference modes and acceptance status.
tests/​corpus/​manifest.json Enables calibration modes for pinned movie fixtures.
tests/​corpus_probe.cpp Adds calibration edits to linked, archive and package export probes.
src/​tracker_writer.cpp Allows existing fixed-calibration and length-label edits through shared validation.
README.md Describes newly supported movie calibration saving.
docs/​upstream-issues.md Records scoped persistence progress and remaining tool acceptance work.
docs/​native-format.md Defines calibration export constraints and validation coverage.
docs/​migration-plan.md Updates implementation status and prior portable MOV acceptance evidence.

Review effort: Balanced

@mgradwohl
mgradwohl merged commit 1f4582e into main Nov 9, 2026
7 checks passed
@mgradwohl
mgradwohl deleted the tracker-movie-calibration-saving branch November 9, 2026 09:30
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