pub struct CodecRegistry { /* private fields */ }Implementations§
Source§impl CodecRegistry
impl CodecRegistry
pub fn new() -> Self
Sourcepub fn register(&mut self, id: CodecId, implementation: CodecImplementation)
pub fn register(&mut self, id: CodecId, implementation: CodecImplementation)
Register a codec implementation. The same codec id may be registered
multiple times — for example a software FLAC decoder and (later) a
hardware one would both register under id "flac".
Sourcepub fn register_decoder_impl(
&mut self,
id: CodecId,
caps: CodecCapabilities,
factory: DecoderFactory,
)
pub fn register_decoder_impl( &mut self, id: CodecId, caps: CodecCapabilities, factory: DecoderFactory, )
Convenience: register a decoder-only implementation built from a caps + factory pair.
Sourcepub fn register_encoder_impl(
&mut self,
id: CodecId,
caps: CodecCapabilities,
factory: EncoderFactory,
)
pub fn register_encoder_impl( &mut self, id: CodecId, caps: CodecCapabilities, factory: EncoderFactory, )
Convenience: register an encoder-only implementation.
Sourcepub fn register_both(
&mut self,
id: CodecId,
caps: CodecCapabilities,
decode: DecoderFactory,
encode: EncoderFactory,
)
pub fn register_both( &mut self, id: CodecId, caps: CodecCapabilities, decode: DecoderFactory, encode: EncoderFactory, )
Convenience: register a single implementation that handles both decode and encode for a codec id.
Sourcepub fn register_decoder(&mut self, id: CodecId, factory: DecoderFactory)
pub fn register_decoder(&mut self, id: CodecId, factory: DecoderFactory)
Backwards-compat shim: register a decoder-only impl with default
software capabilities. Prefer register_decoder_impl for new code.
Sourcepub fn register_encoder(&mut self, id: CodecId, factory: EncoderFactory)
pub fn register_encoder(&mut self, id: CodecId, factory: EncoderFactory)
Backwards-compat shim: register an encoder-only impl with default software capabilities.
pub fn has_decoder(&self, id: &CodecId) -> bool
pub fn has_encoder(&self, id: &CodecId) -> bool
Sourcepub fn make_decoder_with(
&self,
params: &CodecParameters,
prefs: &CodecPreferences,
) -> Result<Box<dyn Decoder>>
pub fn make_decoder_with( &self, params: &CodecParameters, prefs: &CodecPreferences, ) -> Result<Box<dyn Decoder>>
Build a decoder for params. Walks all implementations matching the
codec id in increasing priority order, skipping any excluded by the
caller’s preferences. Init-time fallback: if a higher-priority impl’s
constructor returns an error, the next candidate is tried.
Sourcepub fn make_encoder_with(
&self,
params: &CodecParameters,
prefs: &CodecPreferences,
) -> Result<Box<dyn Encoder>>
pub fn make_encoder_with( &self, params: &CodecParameters, prefs: &CodecPreferences, ) -> Result<Box<dyn Encoder>>
Build an encoder, with the same priority + fallback semantics.
Sourcepub fn make_decoder(&self, params: &CodecParameters) -> Result<Box<dyn Decoder>>
pub fn make_decoder(&self, params: &CodecParameters) -> Result<Box<dyn Decoder>>
Default-preference shorthand for make_decoder_with.
Sourcepub fn make_encoder(&self, params: &CodecParameters) -> Result<Box<dyn Encoder>>
pub fn make_encoder(&self, params: &CodecParameters) -> Result<Box<dyn Encoder>>
Default-preference shorthand for make_encoder_with.
Sourcepub fn decoder_ids(&self) -> impl Iterator<Item = &CodecId>
pub fn decoder_ids(&self) -> impl Iterator<Item = &CodecId>
Iterate codec ids that have at least one decoder implementation.
pub fn encoder_ids(&self) -> impl Iterator<Item = &CodecId>
Sourcepub fn implementations(&self, id: &CodecId) -> &[CodecImplementation]
pub fn implementations(&self, id: &CodecId) -> &[CodecImplementation]
All registered implementations of a given codec id.
Sourcepub fn all_implementations(
&self,
) -> impl Iterator<Item = (&CodecId, &CodecImplementation)>
pub fn all_implementations( &self, ) -> impl Iterator<Item = (&CodecId, &CodecImplementation)>
Iterator over every (codec_id, impl) pair — useful for oxideav list
to show capability flags per implementation.