pub mod bitreader;
pub mod decode;
pub mod entropy;
pub mod frame_header;
pub mod idct;
pub mod vlc_tables;
pub mod zigzag;
pub use decode::{DecodedFrame, DnxhdDecoder};
pub use frame_header::{parse_frame_header, DnxhdProfile, FrameHeader};
#[derive(Debug, thiserror::Error)]
pub enum DecodeError {
#[error("invalid frame magic")]
InvalidMagic,
#[error("unknown compression ID {0}")]
UnknownCid(u32),
#[error("unsupported profile {0:?}")]
UnsupportedProfile(DnxhdProfile),
#[error("buffer too small: need {need}, have {have}")]
BufferTooSmall {
need: usize,
have: usize,
},
#[error("entropy decode: {0}")]
Entropy(String),
#[error("invalid data: {0}")]
InvalidData(String),
}