Expand description
§rav2d — AV2 Video Decoder in Rust
A safe Rust port of dav2d, the AV2 reference decoder. Assembly-optimized DSP kernels are shared via FFI; all C parsing, decode orchestration, and filter logic has been rewritten in safe Rust.
§Quick Start
use rav2d::{Decoder, Settings, Data, Rav2dError};
let mut decoder = Decoder::open(&Settings::default()).unwrap();
// Feed compressed data
let obu_data: Vec<u8> = std::fs::read("input.obu").unwrap();
decoder.send_data(Some(Data::wrap(obu_data))).unwrap();
// Retrieve decoded pictures
loop {
match decoder.get_picture() {
Ok(picture) => { /* process decoded frame */ }
Err(Rav2dError::Again) => break, // need more input
Err(Rav2dError::Eof) => break, // end of stream
Err(e) => panic!("decode error: {e}"),
}
}Structs§
- Data
- A reference-counted byte buffer for compressed bitstream data.
- Decoder
- AV2 bitstream decoder.
- Frame
Header - Logger
- Picture
- A decoded video frame with pixel data and associated metadata.
- Sequence
Header - Settings
- Decoder configuration. Use
Settings::default()for sensible defaults.
Enums§
- Decode
Frame Type - Which frame types to decode.
- Event
Flags - Inloop
Filter Type - Which in-loop filters to apply during decoding.
- Pixel
Layout - Rav2d
Error