Skip to main content

CodecRegistry

Struct CodecRegistry 

Source
pub struct CodecRegistry { /* private fields */ }
Expand description

Central registry of codec descriptors.

Stores at most one descriptor per CodecId. Secondary indices on name and FOURCC are rebuilt lazily on mutation.

Implementations§

Source§

impl CodecRegistry

Source

pub fn new() -> Self

Create an empty registry.

Source

pub fn register(&mut self, desc: CodecDescriptor)

Register or replace a codec descriptor.

Updates all secondary indices automatically.

Source

pub fn remove(&mut self, id: CodecId) -> Option<CodecDescriptor>

Remove a codec by CodecId.

Returns the removed descriptor, or None if it was not registered.

Source

pub fn lookup_by_id(&self, id: CodecId) -> Option<&CodecDescriptor>

Look up a descriptor by CodecId.

Source

pub fn lookup_by_name(&self, name: &str) -> Option<&CodecDescriptor>

Look up a descriptor by short name (case-insensitive).

Source

pub fn lookup_by_fourcc(&self, fourcc: &Fourcc) -> Option<&CodecDescriptor>

Look up a descriptor by FOURCC bytes.

Source

pub fn encoders(&self) -> Vec<&CodecDescriptor>

Return all descriptors that can encode.

Source

pub fn decoders(&self) -> Vec<&CodecDescriptor>

Return all descriptors that can decode.

Source

pub fn lossless_codecs(&self) -> Vec<&CodecDescriptor>

Return all lossless codec descriptors.

Source

pub fn len(&self) -> usize

Return the total number of registered codecs.

Source

pub fn is_empty(&self) -> bool

Return true if no codecs are registered.

Source

pub fn codec_ids(&self) -> Vec<CodecId>

Return all registered CodecIds.

Source

pub fn default_registry() -> Self

Build a default registry pre-populated with all OxiMedia-supported codecs.

Trait Implementations§

Source§

impl Debug for CodecRegistry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for CodecRegistry

Source§

fn default() -> CodecRegistry

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.