pub struct MediaStreamClassifierRegistry { /* private fields */ }Expand description
Registry of media stream classifier providers.
Provider names and aliases are matched case-insensitively. Duplicate ids or aliases are rejected at registration time so a selector always resolves to at most one provider.
MediaStreamClassifierRegistry::create_default_box and
MediaStreamClassifierRegistry::create_default_arc read
MimeConfig::media_stream_classifier_default first. When the configured
selector is empty or auto, the registry tries all available providers
ordered by descending provider priority and then by provider id. Otherwise
it creates the named provider.
Implementations§
Source§impl MediaStreamClassifierRegistry
impl MediaStreamClassifierRegistry
Sourcepub fn builtin() -> Self
pub fn builtin() -> Self
Creates a registry containing only built-in classifier providers.
§Returns
Registry with the FFprobe provider.
Sourcepub fn default_registry() -> MimeResult<Self>
pub fn default_registry() -> MimeResult<Self>
Gets a snapshot of the process-wide default classifier registry.
The returned registry is cloned from the global default registry, so callers can inspect or create classifiers without holding a global lock.
§Returns
Snapshot of the default registry.
§Errors
Returns MimeError::ClassifierBackend when the global registry lock
has been poisoned by another thread.
Sourcepub fn register_default<P>(provider: P) -> MimeResult<()>where
P: MediaStreamClassifierProvider + 'static,
pub fn register_default<P>(provider: P) -> MimeResult<()>where
P: MediaStreamClassifierProvider + 'static,
Registers a provider in the process-wide default classifier registry.
Successfully registered providers become visible to
MediaStreamClassifierRegistry::default_registry snapshots throughout
the current process.
§Parameters
provider: Provider to register globally.
§Errors
Returns MimeError::DuplicateClassifierName when the provider id or
one of its aliases already exists in the default registry. Returns
MimeError::ClassifierBackend when the global registry lock has been
poisoned by another thread.
Sourcepub fn register<P>(&mut self, provider: P) -> MimeResult<()>where
P: MediaStreamClassifierProvider + 'static,
pub fn register<P>(&mut self, provider: P) -> MimeResult<()>where
P: MediaStreamClassifierProvider + 'static,
Registers a provider.
§Parameters
provider: Provider to register.
§Errors
Returns MimeError::DuplicateClassifierName when the provider id or
one of its aliases conflicts with an existing provider.
Sourcepub fn register_arc<P>(&mut self, provider: Arc<P>) -> MimeResult<()>where
P: MediaStreamClassifierProvider + 'static,
pub fn register_arc<P>(&mut self, provider: Arc<P>) -> MimeResult<()>where
P: MediaStreamClassifierProvider + 'static,
Sourcepub fn provider_names(&self) -> Vec<&str>
pub fn provider_names(&self) -> Vec<&str>
Sourcepub fn find_provider(
&self,
name: &str,
) -> Option<&dyn ServiceProvider<MediaStreamClassifierSpec>>
pub fn find_provider( &self, name: &str, ) -> Option<&dyn ServiceProvider<MediaStreamClassifierSpec>>
Sourcepub fn resolve_provider(
&self,
name: &str,
) -> MimeResult<&dyn ServiceProvider<MediaStreamClassifierSpec>>
pub fn resolve_provider( &self, name: &str, ) -> MimeResult<&dyn ServiceProvider<MediaStreamClassifierSpec>>
Resolves a provider by id or alias.
§Parameters
name: Provider id or alias. Names are normalized before lookup.
§Returns
Matching provider.
§Errors
Returns MimeError::EmptyClassifierName or MimeError::InvalidClassifierName
when name is invalid, or MimeError::UnknownClassifier when no provider
matches.
Sourcepub fn create_box(
&self,
name: &str,
config: &MimeConfig,
) -> MimeResult<Box<dyn MediaStreamClassifier>>
pub fn create_box( &self, name: &str, config: &MimeConfig, ) -> MimeResult<Box<dyn MediaStreamClassifier>>
Creates a boxed classifier from a provider name.
§Parameters
name: Provider id or alias.config: MIME configuration passed to the provider.
§Returns
Boxed media stream classifier trait object.
§Errors
Returns MimeError::UnknownClassifier when no provider matches
name, MimeError::ClassifierUnavailable when the provider is
unavailable, or another MimeError when provider initialization fails.
Sourcepub fn create_arc(
&self,
name: &str,
config: &MimeConfig,
) -> MimeResult<Arc<dyn MediaStreamClassifier>>
pub fn create_arc( &self, name: &str, config: &MimeConfig, ) -> MimeResult<Arc<dyn MediaStreamClassifier>>
Creates a shared classifier from a provider name.
§Parameters
name: Provider id or alias.config: MIME configuration passed to the provider.
§Returns
Shared media stream classifier trait object.
§Errors
Returns MimeError::UnknownClassifier when no provider matches
name, MimeError::ClassifierUnavailable when the provider is
unavailable, or another MimeError when provider initialization fails.
Sourcepub fn create_default_box(
&self,
config: &MimeConfig,
) -> MimeResult<Box<dyn MediaStreamClassifier>>
pub fn create_default_box( &self, config: &MimeConfig, ) -> MimeResult<Box<dyn MediaStreamClassifier>>
Creates a boxed classifier from the configured default selector.
§Parameters
config: MIME configuration.
§Returns
First boxed classifier that can be created.
§Errors
Returns MimeError::NoAvailableClassifier when no configured provider
can be created.
Sourcepub fn create_default_arc(
&self,
config: &MimeConfig,
) -> MimeResult<Arc<dyn MediaStreamClassifier>>
pub fn create_default_arc( &self, config: &MimeConfig, ) -> MimeResult<Arc<dyn MediaStreamClassifier>>
Creates a shared classifier from the configured default selector.
§Parameters
config: MIME configuration.
§Returns
First shared classifier that can be created.
§Errors
Returns MimeError::NoAvailableClassifier when no configured provider
can be created.
Trait Implementations§
Source§impl Clone for MediaStreamClassifierRegistry
impl Clone for MediaStreamClassifierRegistry
Source§fn clone(&self) -> MediaStreamClassifierRegistry
fn clone(&self) -> MediaStreamClassifierRegistry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for MediaStreamClassifierRegistry
impl Default for MediaStreamClassifierRegistry
Source§fn default() -> MediaStreamClassifierRegistry
fn default() -> MediaStreamClassifierRegistry
Auto Trait Implementations§
impl Freeze for MediaStreamClassifierRegistry
impl !RefUnwindSafe for MediaStreamClassifierRegistry
impl Send for MediaStreamClassifierRegistry
impl Sync for MediaStreamClassifierRegistry
impl Unpin for MediaStreamClassifierRegistry
impl UnsafeUnpin for MediaStreamClassifierRegistry
impl !UnwindSafe for MediaStreamClassifierRegistry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, D> IntoConfigDefault<T> for Dwhere
D: IntoValueDefault<T>,
impl<T, D> IntoConfigDefault<T> for Dwhere
D: IntoValueDefault<T>,
Source§fn into_config_default(self) -> T
fn into_config_default(self) -> T
T.