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