mediadecode 0.19.0

The read faces of the mediaio family: the decoder traits, the frame sources and the Demuxer session, over the mediaspine vocabulary. no_std-friendly; backends for FFmpeg, WebCodecs, R3D, BRAW, ARRIRAW, X-OCN, ProRes RAW, Canon Cinema RAW Light.
Documentation
[package]
name        = "mediadecode"
version     = "0.19.0"
edition.workspace      = true
rust-version.workspace = true
license.workspace      = true
repository.workspace   = true
homepage.workspace     = true
documentation = "https://docs.rs/mediadecode"
description = "The read faces of the mediaio family: the decoder traits, the frame sources and the Demuxer session, over the mediaspine vocabulary. no_std-friendly; backends for 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"]
# The vocabulary is `mediaspine`'s, so each capability tier is forwarded
# to it: `alloc` and `std` are its tiers (and, through it, `mediatime`'s
# and serde's), and `serde`, `arbitrary` and `quickcheck` are the trait
# matrices it carries. Every name a dependant enables here still works.
alloc   = ["mediaspine/alloc"]
std     = ["mediaspine/std"]

# 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      = ["mediaspine/serde"]
arbitrary  = ["mediaspine/arbitrary"]
quickcheck = ["mediaspine/quickcheck"]

[dependencies]
mediaspine = { workspace = true }

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

[dev-dependencies]
criterion  = { workspace = true }
# `tests/time_primitives.rs` reads the instants `mediaframe`'s frames
# carry, so it names `mediaframe` itself.
mediaframe = { 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