X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-commonfmt%2Fsrc%2Fcodecs%2Faac.rs;h=d3f991b4da925f1bee1deec2257bd44c29317389;hp=c2ef76aab74c7e60806f701cb73b7cea56c0cca6;hb=78fb6560c73965d834b215fb0b49505ae5443288;hpb=08a1fab72215ea7716f51adf7008f85372e80c71 diff --git a/nihav-commonfmt/src/codecs/aac.rs b/nihav-commonfmt/src/codecs/aac.rs index c2ef76a..d3f991b 100644 --- a/nihav-commonfmt/src/codecs/aac.rs +++ b/nihav-commonfmt/src/codecs/aac.rs @@ -1,8 +1,8 @@ use nihav_core::formats::*; use nihav_core::frame::*; use nihav_core::codecs::*; -use nihav_core::dsp::mdct::IMDCT; -use nihav_core::dsp::window::*; +use nihav_codec_support::dsp::mdct::IMDCT; +use nihav_codec_support::dsp::window::*; use nihav_core::io::bitreader::*; use nihav_core::io::codebook::*; use std::fmt; @@ -147,7 +147,7 @@ impl M4AInfo { } } fn read(&mut self, src: &[u8]) -> DecoderResult<()> { - let mut br = BitReader::new(src, src.len(), BitReaderMode::BE); + let mut br = BitReader::new(src, BitReaderMode::BE); self.otype = Self::read_object_type(&mut br)?; self.srate = Self::read_sampling_frequency(&mut br)?; validate!(self.srate > 0); @@ -1003,6 +1003,7 @@ impl DSP { tmp: [0.0; 2048], ew_buf: [0.0; 1152], } } + #[allow(clippy::cyclomatic_complexity)] fn synth(&mut self, coeffs: &[f32; 1024], delay: &mut [f32; 1024], seq: u8, window_shape: bool, prev_window_shape: bool, dst: &mut [f32]) { let long_win = if window_shape { &self.kbd_long_win } else { &self.sine_long_win }; let short_win = if window_shape { &self.kbd_short_win } else { &self.sine_short_win }; @@ -1238,7 +1239,7 @@ impl NADecoder for AACDecoder { let ainfo = self.info.get_properties().get_audio_info().unwrap(); let mut abuf = alloc_audio_buffer(ainfo, self.m4ainfo.samples, self.chmap.clone())?; - let mut br = BitReader::new(&pktbuf, pktbuf.len(), BitReaderMode::BE); + let mut br = BitReader::new(&pktbuf, BitReaderMode::BE); match self.m4ainfo.otype { M4AType::LC => { self.decode_ga(&mut br, &mut abuf)?; @@ -1258,6 +1259,12 @@ impl NADecoder for AACDecoder { } } +impl NAOptionHandler for AACDecoder { + fn get_supported_options(&self) -> &[NAOptionDefinition] { &[] } + fn set_options(&mut self, _options: &[NAOption]) { } + fn query_option_value(&self, _name: &str) -> Option { None } +} + pub fn get_decoder() -> Box { Box::new(AACDecoder::new()) } @@ -1266,15 +1273,15 @@ pub fn get_decoder() -> Box { mod test { use nihav_core::codecs::RegisteredDecoders; use nihav_core::demuxers::RegisteredDemuxers; - use nihav_core::test::dec_video::test_decode_audio; - use crate::codecs::generic_register_all_codecs; - use nihav_realmedia::demuxers::realmedia_register_all_demuxers; + use nihav_codec_support::test::dec_video::test_decode_audio; + use crate::generic_register_all_decoders; + use nihav_realmedia::realmedia_register_all_demuxers; #[test] fn test_aac() { let mut dmx_reg = RegisteredDemuxers::new(); realmedia_register_all_demuxers(&mut dmx_reg); let mut dec_reg = RegisteredDecoders::new(); - generic_register_all_codecs(&mut dec_reg); + generic_register_all_decoders(&mut dec_reg); // let file = "assets/RV/rv40_weighted_mc.rmvb"; let file = "assets/RV/rv40_weighted_mc_2.rmvb";