Skip to main content

Crate oxideav

Crate oxideav 

Source
Expand description

Thin facade over oxideav_core.

oxideav is no longer an aggregator — it does NOT depend on any sibling codec / container / filter / source crate. Instead, each sibling crate self-registers into oxideav_core::REGISTRARS (a linkme distributed slice) at link time. Consumers pull whichever siblings they want into their own [dependencies], then call with_all_features to materialise everything that ended up linked.

For convenience there is a sibling oxideav-format-all virtual crate that depends on every codec / container / filter / source crate the framework knows about — oxideav-cli, oxideplay, and similar “want everything” consumers depend on it.

§Quick start (everything)

[dependencies]
oxideav = "*"
oxideav-format-all = "*"
let ctx = oxideav::with_all_features();

§Quick start (selective)

[dependencies]
oxideav = "*"
oxideav-h264 = "*"
oxideav-aac = "*"
oxideav-mp4 = "*"
// Only h264 + aac + mp4 self-register; the slice walker sees them.
let ctx = oxideav::with_all_features();

Re-exports§

pub use oxideav_core as core;
pub use oxideav_pipeline as pipeline;
pub use oxideav_source as source;

Structs§

RuntimeContext
Aggregate of every registry the framework consumes.

Traits§

RuntimeContextExt
Convenience trait so call sites can write RuntimeContext::with_all_features() (matching the historical Registries::with_all_features() shape) without depending on the free function’s path.

Functions§

with_all_features
Build a RuntimeContext populated with every sibling crate that’s linked into the binary.
with_all_features_filtered
Build a RuntimeContext populated with every sibling crate whose name filter returns true for. Used by CLIs to implement opt-outs like --no-hwaccel (skip videotoolbox / audiotoolbox).
with_all_features_traced
Build a RuntimeContext populated with every sibling crate, while invoking trace(name) immediately before each registrar fires. Useful for diagnosing register-time hangs.

Type Aliases§

Registries
Back-compat alias — historically the aggregator exposed Registries (codecs + containers). The unified context now lives in oxideav-core and bundles all four registries (codec / container / source / filter), so consumers should prefer RuntimeContext directly. The alias keeps existing call sites (reg.codecs, reg.containers) compiling unchanged.