vp3: switch VP4 test to MD5 sum
[nihav.git] / nihav-duck / src / codecs / vp3.rs
index 08b1e704064b021c7c543ab599d6d2040d945b3c..ccb0262a38405d7c8585449451c30d1352ed6e94 100644 (file)
@@ -1131,7 +1131,7 @@ impl VP34Decoder {
                     last2_mv = last_mv;
                     let saddr = (self.blk_addr[cur_blk] >> 2).min(self.blk_addr[cur_blk + 1] >> 2).min(self.blk_addr[cur_blk + 2] >> 2).min(self.blk_addr[cur_blk + 3] >> 2);
                     for i in 0..4 {
-                        let blk = &mut self.blocks[saddr + (i & 1) + (i >> 1) * self.mb_w];
+                        let blk = &mut self.blocks[saddr + (i & 1) + (i >> 1) * self.mb_w * 2];
                         blk.mv.x = br.read_cb(x_cb)? as i16;
                         if x_sign {
                             blk.mv.x = -blk.mv.x;
@@ -1192,7 +1192,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
             ];
@@ -1913,9 +1913,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]));
     }
 }