Skip to main content

Crate rav2d

Crate rav2d 

Source
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.
FrameHeader
Logger
Picture
A decoded video frame with pixel data and associated metadata.
SequenceHeader
Settings
Decoder configuration. Use Settings::default() for sensible defaults.

Enums§

DecodeFrameType
Which frame types to decode.
EventFlags
InloopFilterType
Which in-loop filters to apply during decoding.
PixelLayout
Rav2dError

Constants§

MAX_FRAME_DELAY
MAX_THREADS

Traits§

PicAllocator

Functions§

get_frame_delay
version
version_api