When a CMX3600 EDL with a SPLIT: line is read by the OTIO CMX3600 adapter or by pycmx, what happens to the delay value, and what is lost when OTIO writes an EDL back?
By code reading (nothing executed): four open-source EDL readers all fail to apply the SPLIT delay. The OTIO CMX3600 adapter at 4b02a666 recognises a SPLIT line, checks that exactly one delay is named, then consumes the next two event lines and discards the delay value; the per-track start offset may still differ between the video and audio tracks because first-clip placement is stored in track source_range. pycmx at 49a536f0 parses SPLIT: into a StmtSplitEdit that its Event/Edit classes never expose, and the statement is stored with the previous event. The OTIO writer cannot emit SPLIT, AUD or combined V+A channel codes and writes only the first track. A Rust OTIO port documents that the delay is not modelled because the row times already carry it, and a web editor's importer warns the user that it is not applied. Applied by hand to a real single-spaced SPLIT line, pycmx's fixed columns would mis-read both type and delay. None of the inspected test files contains a split-edit case.
Structured fields
{
"citations": [
{
"url": "https://github.com/OpenTimelineIO/otio-cmx3600-adapter/blob/4b02a6668b4ddb435bd6b8e7459e1dbd170938df/src/otio_cmx3600_adapter/cmx_3600.py",
"note": "L289-319"
},
{
"url": "https://github.com/OpenTimelineIO/otio-cmx3600-adapter/blob/4b02a6668b4ddb435bd6b8e7459e1dbd170938df/tests/test_cmx_3600_adapter.py",
"note": "L289-319"
},
{
"url": "https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/src/pycmx/parse_cmx_statements.py",
"note": "L289-319"
},
{
"url": "https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/src/pycmx/statements.py",
"note": "L289-319"
},
{
"url": "https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/src/pycmx/event.py",
"note": "L289-319"
},
{
"url": "https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/src/pycmx/edit_list.py",
"note": "L289-319"
},
{
"url": "https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/tests/test_parse.py",
"note": "L289-319"
},
{
"url": "https://github.com/alchemist-editor/otio-rust/blob/4910d0546c23691dca398040cfa12e599d102176/crates/otio-cmx3600/src/read.rs",
"note": "L289-319"
},
{
"url": "https://github.com/0xsline/OpenChatCut/blob/7fa4b7903e7ebecf832a36249f0c0c755200cc17/src/agent/tools/timeline-import-edl.ts",
"note": "L289-319"
},
{
"url": "https://github.com/peetonn/EDL-parser/blob/72d2226b7e018c81475d0a5e2c21b7a07e2d0209/ROUGH%20CUT_v03a1-EDL.edl",
"note": "L289-319"
}
]
}Evidence claims
- [sourced_fact] By code reading (nothing executed): four open-source EDL readers all fail to apply the SPLIT delay. The OTIO CMX3600 adapter at 4b02a666 recognises a SPLIT line, checks that exactly one delay is named, then consumes the next two event lines and discards the delay value; the per-track start offset may still differ between the video and audio tracks because first-clip placement is stored in track source_range. pycmx at 49a536f0 parses SPLIT: into a StmtSplitEdit that its Event/Edit classes never expose, and the statement is stored with the previous event. The OTIO writer cannot emit SPLIT, AUD or combined V+A channel codes and writes only the first track. A Rust OTIO port documents that the delay is not modelled because the row times already carry it, and a web editor's importer warns the user that it is not applied. Applied by hand to a real single-spaced SPLIT line, pycmx's fixed columns would mis-read both type and delay. None of the inspected test files contains a split-edit case. · locator: L289-319 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://github.com/0xsline/OpenChatCut/blob/7fa4b7903e7ebecf832a36249f0c0c755200cc17/src/agent/tools/timeline-import-edl.ts
- cites → https://github.com/OpenTimelineIO/otio-cmx3600-adapter/blob/4b02a6668b4ddb435bd6b8e7459e1dbd170938df/src/otio_cmx3600_adapter/cmx_3600.py
- cites → https://github.com/OpenTimelineIO/otio-cmx3600-adapter/blob/4b02a6668b4ddb435bd6b8e7459e1dbd170938df/tests/test_cmx_3600_adapter.py
- cites → https://github.com/alchemist-editor/otio-rust/blob/4910d0546c23691dca398040cfa12e599d102176/crates/otio-cmx3600/src/read.rs
- cites → https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/src/pycmx/edit_list.py
- cites → https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/src/pycmx/event.py
- cites → https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/src/pycmx/parse_cmx_statements.py
- cites → https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/src/pycmx/statements.py
- cites → https://github.com/iluvcapra/pycmx/blob/49a536f0cbc49e774f302376ae30ec646dcca688/tests/test_parse.py
- cites → https://github.com/peetonn/EDL-parser/blob/72d2226b7e018c81475d0a5e2c21b7a07e2d0209/ROUGH%20CUT_v03a1-EDL.edl