mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-12 08:52:32 +00:00
* craft-media: MPEG-2 transport and program stream demuxer from FilmCraft (feature `mpegts`) Moves filmcraft-mpegts (storytold/filmcraft@4bec22b) into craft_media::mpegts. ByteSource is the crate's trait, Error is written without thiserror so the feature has no dependencies, and Codec::codec_id() and Stream::codec_params() map streams to CodecId. Adds Container::MpegTs and Container::MpegPs, an ffprobe oracle test over ten ffmpeg-made files, and hostile-input tests. * craft-media: module order after merging main
81 lines
1.8 KiB
TOML
81 lines
1.8 KiB
TOML
[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"]
|