9 releases
0.2.5 | Jan 4, 2023 |
---|---|
0.2.4 | Sep 3, 2022 |
0.2.3 | Apr 8, 2022 |
0.2.2 | Mar 23, 2022 |
0.1.1 | Nov 21, 2020 |
#12 in #av1
582 downloads per month
Used in 4 crates
(2 directly)
30KB
669 lines
Rust wrapper for AOMedia AV1 decoder
It's a minimal safe wrapper that allows decoding individual AV1 frames. It's meant for decoding AVIF images.
Usage
See examples/topng.rs
for the full code.
You'll need the avif-parse crate to get AV1 data out of an AVIF file, and the yuv crate to convert YUV pixels into RGB.
let avif = avif_parse::read_avif(file)?;
let mut d = Decoder::new(&Config {
threads: num_cpus::get(),
})?;
let img = d.decode_frame(&avif.primary_item)?;
match img.rows_iter()? {
RowsIters::YuvPlanes8 {y,u,v,chroma_sampling} => {
match chroma_sampling {
color::ChromaSampling::Cs444 => {
yuv_444(y, u, v).map(|px| {
// here's your YUV pixel
});
},
}
},
}
Dependencies
~19MB
~380K SLoC