X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-llaudio%2Fsrc%2Fdemuxers%2Fmod.rs;h=4ccb8f18a414187c6f8f5f2cecf2362ba5a19110;hb=c7410bf50835ea5fa960550afefaec00c0a34339;hp=ce0f012bbb2fb988a470042df92ef2e0f9db33db;hpb=87927c5732b39bb23209486bed8d7bb7fc56b92e;p=nihav.git diff --git a/nihav-llaudio/src/demuxers/mod.rs b/nihav-llaudio/src/demuxers/mod.rs index ce0f012..4ccb8f1 100644 --- a/nihav-llaudio/src/demuxers/mod.rs +++ b/nihav-llaudio/src/demuxers/mod.rs @@ -1,20 +1,27 @@ use nihav_core::demuxers::*; #[allow(unused_macros)] +#[cfg(debug_assertions)] macro_rules! validate { ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } }; } +#[cfg(not(debug_assertions))] +macro_rules! validate { + ($a:expr) => { if !$a { return Err(DemuxerError::InvalidData); } }; +} #[cfg(feature="demuxer_ape")] mod ape; #[cfg(feature="demuxer_flac")] mod flac; +#[cfg(feature="demuxer_flac")] +mod flacraw; #[cfg(feature="demuxer_tta")] mod tta; #[cfg(feature="demuxer_wavpack")] mod wavpack; -const LL_AUDIO_DEMUXERS: &[&DemuxerCreator] = &[ +const LL_AUDIO_DEMUXERS: &[&dyn DemuxerCreator] = &[ #[cfg(feature="demuxer_ape")] &ape::APEDemuxerCreator {}, #[cfg(feature="demuxer_flac")] @@ -31,3 +38,15 @@ pub fn llaudio_register_all_demuxers(rd: &mut RegisteredDemuxers) { rd.add_demuxer(*demuxer); } } + +const LL_RAW_AUDIO_DEMUXERS: &[&dyn RawDemuxerCreator] = &[ +#[cfg(feature="demuxer_flac")] + &flacraw::FLACDemuxerCreator {}, +]; + +/// Registers all available raw stream demuxers provided by this crate. +pub fn llaudio_register_all_raw_demuxers(rd: &mut RegisteredRawDemuxers) { + for demuxer in LL_RAW_AUDIO_DEMUXERS.iter() { + rd.add_demuxer(*demuxer); + } +}