X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-indeo%2Fsrc%2Fcodecs%2Fimc.rs;h=ea84d0ab01977f91285045264d60488f5df197d7;hp=4b7c9908e511bbc37e163b12ed3313def9ef2103;hb=78fb6560c73965d834b215fb0b49505ae5443288;hpb=f9be4e750dccff762b9a3d894faec50ffdb59233 diff --git a/nihav-indeo/src/codecs/imc.rs b/nihav-indeo/src/codecs/imc.rs index 4b7c990..ea84d0a 100644 --- a/nihav-indeo/src/codecs/imc.rs +++ b/nihav-indeo/src/codecs/imc.rs @@ -7,8 +7,8 @@ use nihav_core::frame::*; use nihav_core::codecs::*; use nihav_core::io::bitreader::*; use nihav_core::io::codebook::*; -use nihav_core::dsp::fft::*; -use nihav_core::dsp::window::*; +use nihav_codec_support::dsp::fft::*; +use nihav_codec_support::dsp::window::*; const BANDS: usize = 32; const COEFFS: usize = 256; @@ -103,6 +103,7 @@ impl BitAlloc { self.skip_flag[i] = false; } } + #[allow(clippy::cyclomatic_complexity)] fn calculate_bit_allocation(&mut self, ch_data: &mut IMCChannel, bits: usize, fixed_head: bool, adj_idx: usize) -> DecoderResult<()> { let mut peak = 0.0; @@ -728,7 +729,7 @@ impl IMCDecoder { } fn decode_block(&mut self, data: &[u8], ch: usize, dst: &mut [f32]) -> DecoderResult<()> { - let mut br = BitReader::new(&data[BLOCK_SIZE*ch..], BLOCK_SIZE, BitReaderMode::LE16MSB); + let mut br = BitReader::new(&data[BLOCK_SIZE*ch..][..BLOCK_SIZE], BitReaderMode::LE16MSB); let hdr = br.read(9)?; validate!((hdr & 0x18) == 0); @@ -926,11 +927,17 @@ impl NADecoder for IMCDecoder { } } -pub fn get_decoder_imc() -> Box { +impl NAOptionHandler for IMCDecoder { + 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_imc() -> Box { Box::new(IMCDecoder::new(true)) } -pub fn get_decoder_iac() -> Box { +pub fn get_decoder_iac() -> Box { Box::new(IMCDecoder::new(false)) } @@ -1111,22 +1118,22 @@ const IMC_CB_SELECTOR: [[usize; BANDS]; 4] = [ mod test { use nihav_core::codecs::RegisteredDecoders; use nihav_core::demuxers::RegisteredDemuxers; - use nihav_core::test::dec_video::*; - use crate::codecs::indeo_register_all_codecs; - use nihav_commonfmt::demuxers::generic_register_all_demuxers; + use nihav_codec_support::test::dec_video::*; + use crate::indeo_register_all_decoders; + use nihav_commonfmt::generic_register_all_demuxers; #[test] fn test_imc() { let mut dmx_reg = RegisteredDemuxers::new(); generic_register_all_demuxers(&mut dmx_reg); let mut dec_reg = RegisteredDecoders::new(); - indeo_register_all_codecs(&mut dec_reg); + indeo_register_all_decoders(&mut dec_reg); // let file = "assets/Indeo/neal73_saber.avi"; // let file = "assets/Indeo/IMC/hvalen.avi"; let file = "assets/Indeo/IMC/8khz.avi"; // let file = "assets/Indeo/STsKlassFist-1a.avi"; // let file = "assets/Indeo/IMC/Angel Bday.avi"; - test_decode_audio("avi", file, None, "imc", &dmx_reg, &dec_reg); + test_decode_audio("avi", file, None, None/*Some("imc")*/, &dmx_reg, &dec_reg); //test_file_decoding("avi", file, None, false, true, None); } }