imferno-core
Rust library for parsing and validating SMPTE ST 2067 (IMF) packages. All parsing, validation, and inspection logic lives here.
Part of the imferno ecosystem.
Install
[]
= "2.0"
Usage
Validate a package
use ;
let files = read_dir?;
let report = parse_and_validate;
for issue in &report.errors
Parse and inspect
use ;
let files = read_dir?;
let pkg = parse?;
for in &pkg.composition_playlists
Parse individual files
use parse_cpl;
use ;
let cpl = parse_cpl?;
let asset_map = parse_assetmap?;
let pkl = parse_pkl?;
let volindex = parse_volindex?;
Validate a package directly from a URI
package::read accepts file:// and bare paths out of the box, plus
s3://bucket/prefix/ when built with the aws-s3 Cargo feature.
use ;
use ;
let uri = parse?;
let storage = new;
let files = read?;
let package = parse?;
S3 (with --features aws-s3):
use ;
let uri = parse?;
let storage = from_default?;
let files = read?;
Standards coverage
| Standard | Title | Status |
|---|---|---|
| ST 429-9 | Volume Index / Asset Map | Complete |
| ST 2067-2 | Core Constraints & Packing List | Complete |
| ST 2067-3 | Composition Playlist | Complete |
| ST 2067-9 | Sidecar Composition Map | Complete |
| ST 2067-21 | Application #2E (UHD/HDR) | Complete |
| ST 2067-201 | IAB Level 0 Plug-in | Complete |
| ST 2067-202 | ISXD Plug-in | Complete |
| ST 377-1 | MXF File Format | Partial — header partition only |
Development
MXF test fixtures are stored as GitHub Release assets. Fetch them before running tests:
License
MIT