]> git.nihav.org Git - nihav.git/blobdiff - nihav-indeo/src/codecs/indeo3enc/cell.rs
indeo3enc: rework cell intra flag logic
[nihav.git] / nihav-indeo / src / codecs / indeo3enc / cell.rs
index 6f641eb3c87355a8f6db9f98552b5e79365463c9..910418974159e156605e478f6ff01fd9ab76b13f 100644 (file)
@@ -176,7 +176,7 @@ impl CellEncoder {
             buf:    [0; MAX_CELL_SIZE + 160],
             rbuf:   [0; MAX_CELL_SIZE + 160],
             deltas: [0; MAX_CELL_SIZE],
-            cell:   Indeo3Cell::new(0, 0, false),
+            cell:   Indeo3Cell::new(0, 0),
             out:    [0; MAX_CELL_SIZE / 2 + 1],
             osize:  0,
 
@@ -619,13 +619,11 @@ impl CellEncoder {
         let dst = &mut data[x + y * stride..];
         let mut dst_idx = stride;
         for line in 0..4 {
-            for x in 0..4 {
-                let top = dst[dst_idx - stride + x * 2];
-                let cur = cell[(line + 1) * 4 + x];
-                dst[dst_idx + x * 2]     = (top + cur) >> 1;
-                dst[dst_idx + x * 2 + 1] = (top + cur) >> 1;
-                dst[dst_idx + stride + x * 2]     = cur;
-                dst[dst_idx + stride + x * 2 + 1] = cur;
+            for x in 0..8 {
+                let top = dst[dst_idx - stride + x];
+                let cur = cell[(line + 1) * 4 + x / 2];
+                dst[dst_idx + x]            = (top + cur) >> 1;
+                dst[dst_idx + stride + x]   = cur;
             }
             dst_idx += stride * 2;
         }