X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Fcodecs%2Fmod.rs;h=ee6f5cdc2bae6d5432a540abac063ed7e1ad0206;hb=64e8b9711a54641d4155d01f095053233c79a9bf;hp=8225dd0dcbf08ff18cdf7eddd689458c14596da1;hpb=01613464323864a655c994820d3c43df1954e3b2;p=nihav.git diff --git a/nihav-core/src/codecs/mod.rs b/nihav-core/src/codecs/mod.rs index 8225dd0..ee6f5cd 100644 --- a/nihav-core/src/codecs/mod.rs +++ b/nihav-core/src/codecs/mod.rs @@ -162,14 +162,16 @@ impl Default for IPBShuffler { fn default() -> Self { Self { lastframe: None, nextframe: None } } } -#[derive(Debug,Clone,Copy,PartialEq)] +#[derive(Debug,Clone,Copy,Default,PartialEq)] pub struct MV { pub x: i16, 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<()>; @@ -254,15 +260,16 @@ pub trait NADecoder { #[derive(Clone,Copy)] pub struct DecoderInfo { pub name: &'static str, - pub get_decoder: fn () -> Box, + pub get_decoder: fn () -> Box, } -#[cfg(any(feature="h263"))] +#[cfg(any(feature="blockdsp"))] pub mod blockdsp; #[cfg(feature="h263")] pub mod h263; +#[derive(Default)] pub struct RegisteredDecoders { decs: Vec, } @@ -274,7 +281,7 @@ impl RegisteredDecoders { pub fn add_decoder(&mut self, dec: DecoderInfo) { self.decs.push(dec); } - pub fn find_decoder(&self, name: &str) -> Option Box> { + pub fn find_decoder(&self, name: &str) -> Option Box> { for &dec in self.decs.iter() { if dec.name == name { return Some(dec.get_decoder); @@ -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 +];