1pub mod filter;
5pub mod pcm;
6pub mod slin;
7pub mod wav;
8pub mod y4m;
9
10use oxideav_core::CodecRegistry;
11use oxideav_core::ContainerRegistry;
12use oxideav_core::RuntimeContext;
13
14pub fn register_codecs(reg: &mut CodecRegistry) {
16 pcm::register(reg);
17}
18
19pub fn register_containers(reg: &mut ContainerRegistry) {
21 wav::register(reg);
22 slin::register(reg);
23 y4m::register(reg);
24}
25
26pub fn register(ctx: &mut RuntimeContext) {
32 register_codecs(&mut ctx.codecs);
33 register_containers(&mut ctx.containers);
34}
35
36oxideav_core::register!("basic", register);
37
38#[cfg(test)]
39mod tests {
40 use super::*;
41
42 #[test]
43 fn register_via_runtime_context_installs_factories() {
44 let mut ctx = RuntimeContext::new();
45 register(&mut ctx);
46 assert!(
47 ctx.codecs.decoder_ids().next().is_some(),
48 "register(ctx) should install codec decoder factories"
49 );
50 assert!(
51 ctx.containers.demuxer_names().next().is_some(),
52 "register(ctx) should install container demuxer factories"
53 );
54 }
55}