X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-duck%2Fsrc%2Fcodecs%2Fvp3.rs;h=c33f97b7aca2c3d99b2ebdf0a7b6efa846beef9f;hb=ce742854b2912b880fb3d3e330042b049dac8504;hp=7efb403c7dc0e43fd807161abf5bd9d939b666e2;hpb=618ef4a7e2c046d5d530610c0cc9d52a9bc8d895;p=nihav.git diff --git a/nihav-duck/src/codecs/vp3.rs b/nihav-duck/src/codecs/vp3.rs index 7efb403..c33f97b 100644 --- a/nihav-duck/src/codecs/vp3.rs +++ b/nihav-duck/src/codecs/vp3.rs @@ -1,7 +1,8 @@ use std::mem; use std::ptr; use nihav_core::codecs::*; -use nihav_core::codecs::blockdsp::*; +use nihav_codec_support::codecs::{MV, ZERO_MV, ZIGZAG}; +use nihav_codec_support::codecs::blockdsp::*; use nihav_core::io::bitreader::*; use nihav_core::io::codebook::*; use nihav_core::io::intcode::*; @@ -243,7 +244,7 @@ impl BitRunDecoder { self.run = (self.read_run)(br)?; } self.run -= 1; - Ok(self.value) + Ok(self.value) } } @@ -1108,7 +1109,7 @@ impl VP34Decoder { cur_blk += 1; } } - } + } } Ok(()) } else { @@ -1192,7 +1193,7 @@ impl VP34Decoder { fn vp40_unpack_coeffs(&mut self, br: &mut BitReader, dc_table_y: usize, dc_table_c: usize, ac_table_y: usize, ac_table_c: usize) -> DecoderResult<()> { const VP40_PRED_MASKS: [usize; 16] = [ // top, bottom, left, right 0b1010, 0b1010, 0b1000, 0b1011, - 0b1010, 0b1010, 0b0010, 0b1111, + 0b1010, 0b1010, 0b0010, 0b1110, 0b0010, 0b1010, 0b0010, 0b0110, 0b0100, 0b0111, 0b1110, 0b1110 ]; @@ -1824,7 +1825,7 @@ impl NADecoder for VP34Decoder { fn decode(&mut self, supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult { let src = pkt.get_buffer(); validate!(src.len() > 0); - let mut br = BitReader::new(&src, src.len(), BitReaderMode::BE); + let mut br = BitReader::new(&src, BitReaderMode::BE); self.parse_header(&mut br)?; if self.is_intra { @@ -1875,9 +1876,9 @@ pub fn get_decoder_vp4() -> 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_vp30() { @@ -1913,9 +1914,8 @@ mod test { let mut dec_reg = RegisteredDecoders::new(); duck_register_all_codecs(&mut dec_reg); - let file = "assets/Duck/ot171_vp40.avi"; - test_file_decoding("avi", file, Some(16), true, false, None/*Some("vp4")*/, &dmx_reg, &dec_reg); -//panic!("end"); + test_decoding("avi", "vp3", "assets/Duck/ot171_vp40.avi", Some(86), &dmx_reg, &dec_reg, + ExpectedTestResult::MD5([0xd41d8cd9, 0x8f00b204, 0xe9800998, 0xecf8427e])); } }