pub mod demuxer;
pub mod muxer;
pub(crate) mod packaging;
pub mod riff;
pub mod stream_format;
use oxideav_core::ContainerRegistry;
pub fn register_containers(reg: &mut ContainerRegistry) {
reg.register_demuxer("avi", demuxer::open);
reg.register_muxer("avi", muxer::open);
reg.register_extension("avi", "avi");
reg.register_probe("avi", probe);
}
pub fn register(ctx: &mut oxideav_core::RuntimeContext) {
register_containers(&mut ctx.containers);
}
oxideav_core::register!("avi", register);
fn probe(p: &oxideav_core::ProbeData) -> u8 {
if p.buf.len() >= 12 && &p.buf[0..4] == b"RIFF" && &p.buf[8..12] == b"AVI " {
100
} else {
0
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn register_via_runtime_context_installs_container() {
let mut ctx = oxideav_core::RuntimeContext::new();
register(&mut ctx);
assert_eq!(ctx.containers.container_for_extension("avi"), Some("avi"));
}
}