]> git.nihav.org Git - nihav.git/blobdiff - src/codecs/h263/rv10.rs
rmdec: handle situation when last partial frame is full frame
[nihav.git] / src / codecs / h263 / rv10.rs
index 4b00bf6e0880f50c3e909c92aef2c6f4d2c4d86e..202d757d1eed2b25ca47fcb29547d71e1e158c71 100644 (file)
@@ -90,7 +90,7 @@ impl<'a> RealVideo10BR<'a> {
 
 #[allow(unused_variables)]
     fn decode_block(&mut self, sstate: &SliceState, quant: u8, intra: bool, coded: bool, blk: &mut [i16; 64], plane_no: usize) -> DecoderResult<()> {
-        let mut br = &mut self.br;
+        let br = &mut self.br;
         let mut idx = 0;
         if intra {
             let mut dc;
@@ -224,7 +224,7 @@ println!("decoding picture header size {}", if self.num_slices > 1 { self.slice_
         let mb_end = shdr.mb_x + shdr.mb_y * self.mb_w + shdr.mb_c;
 
         let ftype = if !shdr.is_p { Type::I } else { Type::P };
-        let picinfo = PicInfo::new(self.w, self.h, ftype, false, false, shdr.qscale, 0, None, None);
+        let picinfo = PicInfo::new(self.w, self.h, ftype, MVMode::Old, false, false, shdr.qscale, 0, None, None);
         Ok(picinfo)
     }
 
@@ -240,7 +240,7 @@ println!("decoding picture header size {}", if self.num_slices > 1 { self.slice_
     }
 
     fn decode_block_header(&mut self, info: &PicInfo, slice: &SliceInfo, sstate: &SliceState) -> DecoderResult<BlockInfo> {
-        let mut br = &mut self.br;
+        let br = &mut self.br;
         let mut q = slice.get_quant();
         match info.get_mode() {
             Type::I => {
@@ -315,15 +315,13 @@ println!(" MB {}.{} cbp = {:X}", sstate.mb_x, sstate.mb_y, cbp);
     }
 
     fn is_slice_end(&mut self) -> bool { false }
-
-    fn is_gob(&mut self) -> bool { false }
 }
 
 impl<'a> RealVideo10BR<'a> {
     fn read_slice_header(&mut self) -> DecoderResult<RV10SliceInfo> {
         validate!(self.slice_no < self.num_slices);
 
-        let mut br = &mut self.br;
+        let br = &mut self.br;
         br.seek(self.slice_off[self.slice_no] * 8)?;
 
         let marker      = br.read(1)?;
@@ -399,7 +397,7 @@ impl RealVideo10Decoder {
 
         RealVideo10Decoder{
             info:           Rc::new(DUMMY_CODEC_INFO),
-            dec:            H263BaseDecoder::new(),
+            dec:            H263BaseDecoder::new(false),
             tables:         tables,
             w:              0,
             h:              0,
@@ -465,7 +463,7 @@ mod test {
     use test::dec_video::test_file_decoding;
     #[test]
     fn test_rv10() {
-         test_file_decoding("realmedia", "assets/RV/rv10_dnet_640x352_realvideo_encoder_4.0.rm", Some(1000), true, false, Some("rv10"));
+         test_file_decoding("realmedia", "assets/RV/rv10_dnet_640x352_realvideo_encoder_4.0.rm", Some(1000), true, false, None/*Some("rv10")*/);
     }
 }