qubit_mime/classifier/
ffprobe_command_media_stream_classifier_provider.rs1use crate::{
13 FfprobeCommandMediaStreamClassifier,
14 MediaStreamClassifier,
15 MimeConfig,
16 ProviderAvailability,
17 ProviderCreateError,
18 ProviderDescriptor,
19 ProviderRegistryError,
20 ServiceProvider,
21};
22
23use super::{
24 MediaStreamClassifierAvailability,
25 MediaStreamClassifierSpec,
26};
27
28#[derive(Debug, Clone, Copy, Default)]
30pub struct FfprobeCommandMediaStreamClassifierProvider;
31
32impl ServiceProvider<MediaStreamClassifierSpec> for FfprobeCommandMediaStreamClassifierProvider {
33 fn descriptor(&self) -> Result<ProviderDescriptor, ProviderRegistryError> {
35 let descriptor = ProviderDescriptor::new("ffprobe")
36 .expect("built-in FFprobe classifier provider id should be valid")
37 .with_aliases(&["ffprobe-command", "ffprobe-command-media-stream-classifier"])
38 .expect("built-in FFprobe classifier aliases should be valid")
39 .with_priority(10);
40 Ok(descriptor)
41 }
42
43 fn availability(&self, _config: &MimeConfig) -> MediaStreamClassifierAvailability {
49 ProviderAvailability::Available
50 }
51
52 fn create_box(
54 &self,
55 _config: &MimeConfig,
56 ) -> Result<Box<dyn MediaStreamClassifier>, ProviderCreateError> {
57 Ok(Box::new(FfprobeCommandMediaStreamClassifier::new()))
58 }
59}