X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-duck%2Fsrc%2Fcodecs%2Fon2avc.rs;h=2cd7a8802a190ac7b9a7fe4c65eb7913898767d9;hb=7d57ae2f680d7a1eba7af2ee831f305b2f0f9324;hp=97c73c123b57cc1f867f75858f3422300dacaf68;hpb=5580b11b0e9daf065c81a8b354295c6d5d1dd3dd;p=nihav.git diff --git a/nihav-duck/src/codecs/on2avc.rs b/nihav-duck/src/codecs/on2avc.rs index 97c73c1..2cd7a88 100644 --- a/nihav-duck/src/codecs/on2avc.rs +++ b/nihav-duck/src/codecs/on2avc.rs @@ -4,8 +4,8 @@ use nihav_core::io::byteio::read_u16le; use nihav_core::io::bitreader::*; use nihav_core::io::codebook::*; use nihav_core::io::intcode::*; -use nihav_core::dsp::fft::*; -use nihav_core::dsp::mdct::IMDCT; +use nihav_codec_support::dsp::fft::*; +use nihav_codec_support::dsp::mdct::IMDCT; use std::str::FromStr; @@ -1012,7 +1012,7 @@ impl NADecoder for AVCDecoder { if self.version == 500 { abuf = alloc_audio_buffer(self.ainfo, COEFFS, self.chmap.clone())?; let mut adata = abuf.get_abuf_f32().unwrap(); - let mut br = BitReader::new(src.as_slice(), src.len(), BitReaderMode::BE); + let mut br = BitReader::new(src.as_slice(), BitReaderMode::BE); self.decode_frame(&mut br, &mut adata, 0)?; } else { let mut offsets: Vec = Vec::new(); @@ -1034,7 +1034,7 @@ impl NADecoder for AVCDecoder { let mut adata = abuf.get_abuf_f32().unwrap(); let mut aoffset = 0; for (o, s) in offsets.iter().zip(sizes.iter()) { - let mut br = BitReader::new(&src[*o..], *s, BitReaderMode::BE); + let mut br = BitReader::new(&src[*o..][..*s], BitReaderMode::BE); self.decode_frame(&mut br, &mut adata, aoffset)?; aoffset += COEFFS; } @@ -1048,11 +1048,17 @@ impl NADecoder for AVCDecoder { } } -pub fn get_decoder_500() -> Box { +impl NAOptionHandler for AVCDecoder { + 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_500() -> Box { Box::new(AVCDecoder::new(500)) } -pub fn get_decoder_501() -> Box { +pub fn get_decoder_501() -> Box { Box::new(AVCDecoder::new(501)) } @@ -1060,9 +1066,9 @@ pub fn get_decoder_501() -> Box { mod test { use nihav_core::codecs::RegisteredDecoders; use nihav_core::demuxers::RegisteredDemuxers; - use nihav_core::test::dec_video::*; - use crate::codecs::duck_register_all_codecs; - use nihav_commonfmt::demuxers::generic_register_all_demuxers; + use nihav_codec_support::test::dec_video::*; + use crate::duck_register_all_codecs; + use nihav_commonfmt::generic_register_all_demuxers; #[test] fn test_avc() { let mut dmx_reg = RegisteredDemuxers::new();