[package]
name = "mediadecode-ffmpeg"
version = "0.19.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
description = "FFmpeg adapter for the `mediadecode` abstraction layer — implements its `VideoAdapter` / `AudioAdapter` / `SubtitleAdapter` traits and the matching push-style decoder traits, with hardware-acceleration auto-probe across VideoToolbox / VAAPI / NVDEC / D3D11VA and software fallback via ffmpeg-next."
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/mediadecode-ffmpeg"
keywords = ["ffmpeg", "decoder", "video", "audio", "mediadecode"]
categories = ["multimedia", "multimedia::video", "multimedia::audio"]
[features]
default = ["std", "resample"]
std = ["mediadecode/default", "mediaio-ffmpeg/std"]
alloc = []
resample = ["mediaio-ffmpeg/resample"]
test-support = ["mediaio-ffmpeg/test-support"]
[dependencies]
mediadecode = { workspace = true, features = ["alloc"] }
mediaio-ffmpeg = { workspace = true }
mediaframe = { workspace = true, features = ["alloc"] }
ffmpeg-next = { workspace = true }
derive_more = { workspace = true, features = ["is_variant", "try_unwrap", "unwrap"] }
smol-bytes = { workspace = true }
triomphe = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
libc = { workspace = true }
[dev-dependencies]
criterion = { workspace = true }
mediaio-ffmpeg = { workspace = true, features = ["test-support"] }
tempfile = { workspace = true }
mediaencode = { workspace = true, features = ["std"] }
[[example]]
name = "decode"
path = "examples/decode.rs"
[[example]]
name = "decode_via_trait"
path = "examples/decode_via_trait.rs"
[[bench]]
name = "decode"
path = "benches/decode.rs"
harness = false
[[test]]
name = "resample"
path = "tests/resample.rs"
required-features = ["resample"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true