X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-core%2Fsrc%2Fdemuxers%2Fmod.rs;h=a0f67a84c7d984fad014ece751dbc6b8c1763b06;hp=1d7347b6ac9e0f5847d0abf0237d4782123c99aa;hb=787b8d03074419d7f8e6b52daba02a3807444bc2;hpb=dc80f48ea3097c891b159667ea239d3c20c78bc8 diff --git a/nihav-core/src/demuxers/mod.rs b/nihav-core/src/demuxers/mod.rs index 1d7347b..a0f67a8 100644 --- a/nihav-core/src/demuxers/mod.rs +++ b/nihav-core/src/demuxers/mod.rs @@ -1,6 +1,7 @@ //! Demuxer definitions. pub use crate::frame::*; pub use crate::io::byteio::*; +pub use crate::options::*; /// A list specifying general demuxing errors. #[derive(Debug,Clone,Copy,PartialEq)] @@ -30,7 +31,7 @@ pub enum DemuxerError { pub type DemuxerResult = Result; /// A trait for demuxing operations. -pub trait DemuxCore<'a> { +pub trait DemuxCore<'a>: NAOptionHandler { /// Opens the input stream, reads required headers and prepares everything for packet demuxing. fn open(&mut self, strmgr: &mut StreamManager, seek_idx: &mut SeekIndex) -> DemuxerResult<()>; /// Demuxes a packet. @@ -394,6 +395,18 @@ impl<'a> Demuxer<'a> { } } +impl<'a> NAOptionHandler for Demuxer<'a> { + fn get_supported_options(&self) -> &[NAOptionDefinition] { + self.dmx.get_supported_options() + } + fn set_options(&mut self, options: &[NAOption]) { + self.dmx.set_options(options); + } + fn query_option_value(&self, name: &str) -> Option { + self.dmx.query_option_value(name) + } +} + impl From for DemuxerError { fn from(_: ByteIOError) -> Self { DemuxerError::IOError } }