move zigzag scan to common place
[nihav.git] / nihav-core / src / codecs / mod.rs
index 4ea379d59bc64294e19036e006d19a2e1ea03b89..ee6f5cdc2bae6d5432a540abac063ed7e1ad0206 100644 (file)
@@ -168,8 +168,10 @@ pub struct MV {
     pub y: i16,
 }
 
+#[allow(clippy::many_single_char_names)]
+#[allow(clippy::collapsible_if)]
 impl MV {
-    pub fn new(x: i16, y: i16) -> Self { MV{ x: x, y: y } }
+    pub fn new(x: i16, y: i16) -> Self { MV{ x, y } }
     pub fn pred(a: MV, b: MV, c: MV) -> Self {
         let x;
         if a.x < b.x {
@@ -199,7 +201,7 @@ impl MV {
                 y = b.y;
             }
         }
-        MV { x: x, y: y }
+        MV { x, y }
     }
 }
 
@@ -245,6 +247,10 @@ impl NADecoderSupport {
     }
 }
 
+impl Default for NADecoderSupport {
+    fn default() -> Self { Self::new() }
+}
+
 
 pub trait NADecoder {
     fn init(&mut self, supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()>;
@@ -257,12 +263,13 @@ pub struct DecoderInfo {
     pub get_decoder: fn () -> Box<dyn NADecoder>,
 }
 
-#[cfg(any(feature="h263"))]
+#[cfg(any(feature="blockdsp"))]
 pub mod blockdsp;
 
 #[cfg(feature="h263")]
 pub mod h263;
 
+#[derive(Default)]
 pub struct RegisteredDecoders {
     decs:   Vec<DecoderInfo>,
 }
@@ -286,3 +293,14 @@ impl RegisteredDecoders {
         self.decs.iter()
     }
 }
+
+pub const ZIGZAG: [usize; 64] = [
+     0,  1,  8, 16,  9,  2,  3, 10,
+    17, 24, 32, 25, 18, 11,  4,  5,
+    12, 19, 26, 33, 40, 48, 41, 34,
+    27, 20, 13,  6,  7, 14, 21, 28,
+    35, 42, 49, 56, 57, 50, 43, 36,
+    29, 22, 15, 23, 30, 37, 44, 51,
+    58, 59, 52, 45, 38, 31, 39, 46,
+    53, 60, 61, 54, 47, 55, 62, 63
+];