]> git.nihav.org Git - nihav.git/blobdiff - nihav-indeo/src/codecs/indeo3enc/mod.rs
indeo3enc: advance frameno on skip frames as well
[nihav.git] / nihav-indeo / src / codecs / indeo3enc / mod.rs
index 1c6bf77bc1972fe2cc10c6ee42bacd53d3a1bbc0..dc638bc791c14b872ad87e3c55d2f208b73defdc 100644 (file)
@@ -148,7 +148,7 @@ impl Indeo3Encoder {
             }
 
             let mut iw = Indeo3Writer::new(dbuf);
-            self.cframe.plane[planeno].encode_tree(&mut iw, &tree, &mut self.cenc, is_intra, ref_plane);
+            self.cframe.plane[planeno].encode_tree(&mut iw, &tree, &mut self.cenc, ref_plane);
             drop(iw);
             while (dbuf.len() & 3) != 0 {
                 dbuf.push(0);
@@ -273,6 +273,7 @@ impl NAEncoder for Indeo3Encoder {
 
             let fsize = dbuf.len() as u32;
             self.rc.advance(fsize);
+            self.frameno += 1;
 
             self.pkt = Some(NAPacket::new(self.stream.clone().unwrap(), frm.ts, false, dbuf));
             return Ok(());
@@ -355,7 +356,7 @@ impl NAEncoder for Indeo3Encoder {
             self.encode_planes(&mut dbuf, &trees, is_intra)?;
 
             let cur_quant = self.cenc.quant.unwrap_or(42);
-            if !is_intra && cur_quant < 8 {
+            if self.try_again && !is_intra && cur_quant < 8 {
                 let expected_size = self.rc.get_expected_size();
                 if expected_size > 0 {
                     let cur_size = dbuf.len() as u32;