codec_support/h263: allocate more space in MV predictor
[nihav.git] / nihav-codec-support / src / codecs / h263 / decoder.rs
index 929854af4929608baf96cd43b0d471d1760d0be3..a78bf4f5a7a003354bfbf8f848f67503bd694862 100644 (file)
@@ -22,7 +22,7 @@ impl MVInfo {
     fn reset(&mut self, mb_w: usize, mb_start: usize, mvmode: MVMode) {
         self.mb_start  = mb_start;
         self.mb_w      = mb_w;
-        self.mb_stride = mb_w * 2;
+        self.mb_stride = mb_w * 2 + 2;
         self.mv.resize(self.mb_stride * 3, ZERO_MV);
         self.mvmode    = mvmode;
     }
@@ -141,9 +141,9 @@ pub struct H263BaseDecoder {
 
 #[inline]
 fn clip_dc(dc: i16) -> i16 {
-    if dc < 0 { 0 }
-    else if dc > 2046 { 2046 }
-    else { (dc + 1) & !1 }
+    if dc <= 0 { 0 }
+    else if dc > 2046 { 2047 }
+    else { dc | 1 }
 }
 
 #[inline]