smacker: reset only non-empty last symbols
[nihav.git] / nihav-rad / src / codecs / smacker.rs
index e6f4268d2edc8e4fd5a51624e5a2900e87a27149..c77b14ffcf8d83a13466d70c49d6af7d8f5594ff 100644 (file)
@@ -160,7 +160,9 @@ impl SmackerTree16 {
     }
     fn reset(&mut self) {
         for i in 0..self.last.len() {
-            self.tree[self.last[i]] = 0;
+            if self.last[i] != SMK_LAST_UNINIT {
+                self.tree[self.last[i]] = 0;
+            }
         }
     }
 }
@@ -440,7 +442,7 @@ impl NADecoder for SmackerVideoDecoder {
 
         let is_intra;
         let ftype;
-        let mut bufinfo;
+        let bufinfo;
         if src.len() > PAL_SIZE {
             let mut br = BitReader::new(&src[PAL_SIZE..], src.len() - PAL_SIZE, BitReaderMode::LE);
 
@@ -521,7 +523,7 @@ impl NADecoder for SmackerAudioDecoder {
             validate!(!(stereo ^ (self.chans == 2)));
             validate!(!(bits16 ^ (self.bits == 16)));
 
-            let mut abuf;
+            let abuf;
             let samples;
             let nch = if stereo { 2 } else { 1 };
             if bits16 {