Add cut_diff example: structural editorial diff between two cuts - #2030
Add cut_diff example: structural editorial diff between two cuts#2030chaoz23 wants to merge 2 commits into
Conversation
|
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2030 +/- ##
==========================================
- Coverage 84.58% 83.21% -1.38%
==========================================
Files 181 180 -1
Lines 13306 13465 +159
Branches 1221 1253 +32
==========================================
- Hits 11255 11205 -50
- Misses 1868 2088 +220
+ Partials 183 172 -11
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
See also: #1922 |
|
Thanks — hadn't seen #1922. That's the ambitious integrated-tool path: an This PR is deliberately narrower and at a different layer: a self-contained Proposal: merge this as an example. If you'd rather hold it, I'll close it — no debate needed. |
Matches clips by identity (media url + source in-point) rather than position, then classifies added / removed / retimed / moved / shifted. Works across formats via adapters (e.g. EDL vs FCP XML). Exit codes follow diff(1). Signed-off-by: chaoz23 <chaoz23@gmail.com>
…#1922) and issue AcademySoftwareFoundation#26 Signed-off-by: chaoz23 <chaoz23@gmail.com>
1e9ceae to
6766750
Compare
|
Hi maintainers — following up on this example PR (cut_diff: structural editorial diff between two cuts). All checks are passing (build, docs, DCO, EasyCLA). Happy to make any adjustments if you have feedback. Thanks for taking a look! |
|
Hi @chaoz23 - the OpenTimelineIO Technical Steering Committee is actively debating this project's policy for LLM-assisted code contributions. You'll have to wait until we finalize that policy before moving forward with this PR. Thanks for your patience. |
|
Understood, and thanks for the heads-up, I'll wait for the TSC's policy and won't push in the meantime. Whenever it lands, happy to adapt this PR to whatever disclosure/provenance requirements you settle on (the AI-assistance note in the description was intentional on my part, in that spirit). Appreciate the transparency about the process. |
This adds an
examples/cut_diff.pyscript that answers "what changed between cut A and cut B" — which clips were added, removed, retimed, moved, or shifted — in the spirit of existing examples likeconform.pyandshot_detect.py. The OTIO docs list "Shots Added or Removed From The Cut" as a first-class use case; this example implements it.Because both inputs go through adapters, the cuts don't need to share a format — an EDL can be diffed against an FCP XML export of the revision:
Design notes:
target_url+ source in-point), not timeline position — one insertion shifts every downstream timecode, so positional diffing reports everything as changed.--jsonoutput anddiff(1)exit codes for scripting.Validated against sample files from the cmx3600 and fcpx-xml adapter test suites, including hand-modified known-change cases. A packaged version with a test suite and an MCP server lives at chaoz23/otio-diff; this example is self-contained.
🤖 Generated with Claude Code