[package] name = "craft-media" description = "Bit-level I/O, clean-room ISO BMFF (MP4), QuickTime (MOV) and Matroska (MKV, WebM) and MXF demuxers and muxers, and Ogg, AVI and MPEG-TS/PS demuxers." version.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true repository.workspace = true [package.metadata.docs.rs] all-features = true [lints] workspace = true [features] default = ["isobmff"] bitstream = [] isobmff = ["bitstream", "dep:thiserror"] matroska = [] # AVI (RIFF) and OpenDML demuxer (`craft_media::avi`). avi = [] # MXF demuxer and writer (`craft_media::mxf`); the writer formats dates with chrono. mxf = ["dep:chrono"] # MPEG-2 Systems demuxer: transport streams and program streams (`craft_media::mpegts`). mpegts = [] # Ogg demuxer (Ogg Opus and Vorbis mapping, `craft_media::ogg`). ogg = [] # Serialize and Deserialize for `Container`, `CodecId`, `CodecParams` and `PcmFormat`. serde = ["dep:serde"] [dependencies] thiserror = { workspace = true, optional = true } serde = { workspace = true, optional = true } chrono = { workspace = true, optional = true } [dev-dependencies] craft-media-testkit = { workspace = true } proptest = { workspace = true } serde_json = { workspace = true } [[test]] name = "fuzz" required-features = ["isobmff"] [[test]] name = "fuzz_matroska" required-features = ["matroska"] [[test]] name = "oracle_avi" required-features = ["avi"] [[test]] name = "oracle_demux" required-features = ["isobmff"] [[test]] name = "oracle_matroska" required-features = ["matroska"] [[test]] name = "oracle_mpegts" required-features = ["mpegts"] [[test]] name = "oracle_mux" required-features = ["isobmff"] [[test]] name = "oracle_mxf" required-features = ["mxf"] [[test]] name = "oracle_ogg" required-features = ["ogg"] [[test]] name = "roundtrip" required-features = ["isobmff"]