Skip to main content

Crate oximedia_edl

Crate oximedia_edl 

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