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
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