Expand description
OxiMedia EDL - CMX 3600 Edit Decision List parser and generator.
This crate provides comprehensive support for EDL (Edit Decision List) files, with a focus on the CMX 3600 format and related formats.
§Features
- CMX 3600, CMX 3400, GVG, and Sony BVE-9000 format support
- Event types: Cut, Dissolve, Wipe, Key
- Timecode support: Drop-frame, Non-drop-frame (24, 25, 30, 60 fps)
- Reel names and source references
- Motion effects (speed changes, reverse playback, freeze frames)
- Audio channel mapping and routing
- EDL validation and compliance checking
- Format conversion and optimization
§Example: Parsing an EDL
use oximedia_edl::{parse_edl, Edl};
let edl_text = r#"
TITLE: Example EDL
FCM: DROP FRAME
001 AX V C 01:00:00:00 01:00:05:00 01:00:00:00 01:00:05:00
* FROM CLIP NAME: shot001.mov
"#;
let edl = parse_edl(edl_text)?;
assert_eq!(edl.title, Some("Example EDL".to_string()));
assert_eq!(edl.events.len(), 1);§Example: Generating an EDL
use oximedia_edl::{Edl, EdlFormat, EdlGenerator};
use oximedia_edl::event::{EdlEvent, EditType, TrackType};
use oximedia_edl::timecode::{EdlFrameRate, EdlTimecode};
let mut edl = Edl::new(EdlFormat::Cmx3600);
edl.set_title("My EDL".to_string());
edl.set_frame_rate(EdlFrameRate::Fps25);
let tc1 = EdlTimecode::new(1, 0, 0, 0, EdlFrameRate::Fps25)?;
let tc2 = EdlTimecode::new(1, 0, 5, 0, EdlFrameRate::Fps25)?;
let event = EdlEvent::new(
1,
"A001".to_string(),
TrackType::Video,
EditType::Cut,
tc1,
tc2,
tc1,
tc2,
);
edl.add_event(event)?;
let generator = EdlGenerator::new();
let output = generator.generate(&edl)?;
assert!(output.contains("TITLE: My EDL"));§Example: Validating an EDL
use oximedia_edl::{Edl, EdlFormat, EdlValidator};
use oximedia_edl::validator::ValidationLevel;
let edl = Edl::new(EdlFormat::Cmx3600);
let validator = EdlValidator::strict();
let report = validator.validate(&edl)?;Re-exports§
pub use ale::parse_ale_records;pub use ale::AleRecord;pub use batch_export::BatchEdlExporter;pub use error::EdlError;pub use error::EdlResult;pub use generator::EdlGenerator;pub use parser::parse_edl;pub use parser::EdlParser;pub use validator::EdlValidator;
Modules§
- aaf
- AAF (Advanced Authoring Format) round-trip support.
- ale
- ALE (Avid Log Exchange) format parsing and generation.
- audio
- Audio channel handling for EDL operations.
- batch_
export - Batch EDL export functionality.
- cmx3600
- CMX 3600 EDL format parser and serializer.
- conform_
report - EDL conform report types and operations.
- consolidate
- EDL consolidation utilities.
- converter
- EDL format conversion between CMX 3400, CMX 3600, GVG, and other formats.
- diff
- EDL change tracking and diff.
- edl_
ascii_ timeline - ASCII timeline visualization for EDL debugging.
- edl_
changelist - Track changes and diffs between two EDL versions.
- edl_
comments - EDL comment parsing and management.
- edl_
compare - EDL comparison utilities for detecting differences between two EDLs.
- edl_
duration - Duration arithmetic and range calculations for EDL events.
- edl_
event - Extended EDL event model.
- edl_
filter - EDL event filtering and selection utilities.
- edl_
merge - EDL merging utilities for combining multiple EDLs into one.
- edl_
sanitize - EDL text sanitization and normalization utilities.
- edl_
statistics - EDL statistics and analysis utilities.
- edl_
timeline - EDL timeline analysis utilities.
- edl_
validator - EDL validation rules, errors, and report.
- error
- Error types for EDL operations.
- event
- EDL event types and related structures.
- event_
list - Indexed event list for efficient EDL event management.
- fcpxml
- XML-based EDL format support (Final Cut Pro XML style).
- filter
- EDL event filtering with builder pattern.
- frame_
count - Frame counting and timecode conversion utilities for EDLs.
- fuzz_
tests - Fuzz-style edge case tests for the EDL parser.
- generator
- EDL generator for creating EDL files from event data.
- lazy_
parser - Lazy EDL parsing — only parses event headers until details are accessed.
- metadata
- EDL metadata and header management.
- motion
- Motion effects for EDL operations.
- multicam
- Multi-camera EDL support.
- optimizer
- EDL optimization and consolidation.
- otio
- OTIO (OpenTimelineIO) format import/export.
- parser
- EDL parser implementation.
- parser_
opt - Parser allocation optimizations: zero-copy header pre-scan and FCM multi-rate detection.
- reel
- Reel and source management for EDL operations.
- reel_
map - Reel/tape name mapping for EDL conform workflows.
- reel_
registry - EDL reel registry.
- roundtrip
- EDL roundtrip validation.
- subframe
- Sub-frame timecode precision for high frame rate content (120fps+).
- tc_
cache - Thread-local timecode conversion cache.
- tc_list
- Timecode list export utilities.
- timecode
- Timecode handling for EDL operations.
- to_
timeline - EDL-to-timeline conversion.
- transition_
events - Transition events for EDL sequences.
- validator
- EDL validation and compliance checking.
- version_
history - EDL change tracking with version history.
Structs§
- Edl
- Main EDL structure containing all events and metadata.
Enums§
- EdlFormat
- EDL format identifier.