mediadecode 0.2.0

Generic, no_std-friendly type-and-trait spine for media decoders (FFmpeg, WebCodecs, R3D, BRAW, ARRIRAW, X-OCN, ProRes RAW, Canon Cinema RAW Light).
Documentation
[package]
name        = "mediadecode"
version     = "0.2.0"
edition.workspace      = true
rust-version.workspace = true
license.workspace      = true
repository.workspace   = true
homepage.workspace     = true
documentation = "https://docs.rs/mediadecode"
description = "Generic, no_std-friendly type-and-trait spine for media decoders (FFmpeg, WebCodecs, R3D, BRAW, ARRIRAW, X-OCN, ProRes RAW, Canon Cinema RAW Light)."
keywords   = ["media", "decoder", "video", "audio", "no-std"]
categories = ["multimedia", "multimedia::video", "multimedia::audio", "no-std", "no-std::no-alloc"]

[features]
default = ["std"]
alloc   = ["smol_str"]
std     = ["mediatime/default", "smol_str/default"]

# Async-fn-in-trait variants of the decoder traits, exposed under
# `mediadecode::future`. No runtime dependency — only a proc-macro
# (`trait-variant`) used to generate the `Send`-bounded sibling of
# each `!Send` trait. Callers pick their own executor.
future = ["dep:trait-variant"]

serde      = ["dep:serde", "mediatime/serde", "bitflags/serde"]
arbitrary  = ["dep:arbitrary", "mediatime/arbitrary", "smol_str?/arbitrary"]
quickcheck = ["dep:quickcheck", "mediatime/quickcheck"]

[dependencies]
mediatime   = { workspace = true }
bitflags    = { workspace = true }
derive_more = { workspace = true, features = ["display", "is_variant"] }
thiserror   = { workspace = true }
smol_str    = { workspace = true, optional = true }
videoframe  = { workspace = true }

serde      = { workspace = true, optional = true }
arbitrary  = { workspace = true, optional = true }
quickcheck = { workspace = true, optional = true }

trait-variant = { workspace = true, optional = true }

[dev-dependencies]
criterion = { workspace = true }
tempfile  = { workspace = true }

[[bench]]
path    = "benches/foo.rs"
name    = "foo"
harness = false

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints]
workspace = true