X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-indeo%2Fsrc%2Fcodecs%2Findeo5.rs;h=3527906e2839fc0c643cbb87f82a47f633f2ee48;hp=045d4b7994ecfd3268cf456ab02dcf910450a95d;hb=78fb6560c73965d834b215fb0b49505ae5443288;hpb=122c047f8d6fa0411f8c7de5a5c7cff6219d6cb9 diff --git a/nihav-indeo/src/codecs/indeo5.rs b/nihav-indeo/src/codecs/indeo5.rs index 045d4b7..3527906 100644 --- a/nihav-indeo/src/codecs/indeo5.rs +++ b/nihav-indeo/src/codecs/indeo5.rs @@ -2,6 +2,7 @@ use nihav_core::io::bitreader::*; use nihav_core::formats; use nihav_core::frame::*; use nihav_core::codecs::*; +use nihav_codec_support::codecs::ZIGZAG; use super::ivi::*; use super::ivibr::*; @@ -264,6 +265,7 @@ impl IndeoXParser for Indeo5Parser { Ok(BandHeader::new(plane_no, band_no, self.mb_size[band_id], self.blk_size[band_id], self.is_hpel[band_id], inherit_mv, has_qdelta, inherit_qd, band_q, rvmap_idx, num_corr, corr_map, blk_cb, tr, txtype)) } + #[allow(clippy::cyclomatic_complexity)] fn decode_mb_info(&mut self, br: &mut BitReader, pic_hdr: &PictureHeader, band: &BandHeader, tile: &mut IVITile, ref_tile: Option<&IVITile>, mv_scale: u8) -> DecoderResult<()> { let mut mv_x = 0; let mut mv_y = 0; @@ -522,7 +524,7 @@ impl NADecoder for Indeo5Decoder { } fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult { let src = pkt.get_buffer(); - let mut br = BitReader::new(src.as_slice(), src.len(), BitReaderMode::LE); + let mut br = BitReader::new(src.as_slice(), BitReaderMode::LE); let bufinfo = self.dec.decode_frame(&mut self.ip, &mut br)?; let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo); @@ -535,6 +537,12 @@ impl NADecoder for Indeo5Decoder { } } +impl NAOptionHandler for Indeo5Decoder { + fn get_supported_options(&self) -> &[NAOptionDefinition] { &[] } + fn set_options(&mut self, _options: &[NAOption]) { } + fn query_option_value(&self, _name: &str) -> Option { None } +} + const INDEO5_PICTURE_SIZE_TAB: [[usize; 2]; 15] = [ [640, 480], [320, 240], [160, 120], [704, 480], [352, 240], [352, 288], [176, 144], [240, 180], [640, 240], [704, 240], [80, 60], [88, 72], [0, 0], [0, 0], [0, 0] @@ -722,15 +730,15 @@ pub fn get_decoder() -> Box { 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_indeo5() { 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); test_decoding("avi", "indeo5", "assets/Indeo/IV5/sample.avi", Some(100), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![