X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Fcodecs%2Fh263%2Fmod.rs;h=6f3d548b01a939520fe02d06b66b802aaa8d3749;hb=64e8b9711a54641d4155d01f095053233c79a9bf;hp=1cd10a2e18283d99df3c96c7a3f5fcd7635ee1ef;hpb=5641dccfbf2a70d589cf094a0d4ed5a10f919f00;p=nihav.git diff --git a/nihav-core/src/codecs/h263/mod.rs b/nihav-core/src/codecs/h263/mod.rs index 1cd10a2..6f3d548 100644 --- a/nihav-core/src/codecs/h263/mod.rs +++ b/nihav-core/src/codecs/h263/mod.rs @@ -1,8 +1,10 @@ use super::{DecoderResult, MV, ZERO_MV}; use crate::frame::NAVideoBuffer; +#[allow(clippy::many_single_char_names)] pub mod code; pub mod data; +#[allow(clippy::needless_range_loop)] pub mod decoder; pub trait BlockDecoder { @@ -28,8 +30,8 @@ pub enum Type { } impl Type { - pub fn is_ref(&self) -> bool { - match *self { + pub fn is_ref(self) -> bool { + match self { Type::I | Type::P | Type::PB => true, _ => false, } @@ -46,11 +48,11 @@ pub struct PBInfo { impl PBInfo { pub fn new(trb: u8, dbquant: u8, improved: bool) -> Self { - PBInfo{ trb: trb, dbquant: dbquant, improved: improved } + PBInfo{ trb, dbquant, improved } } - pub fn get_trb(&self) -> u8 { self.trb } - pub fn get_dbquant(&self) -> u8 { self.dbquant } - pub fn is_improved(&self) -> bool { self.improved } + pub fn get_trb(self) -> u8 { self.trb } + pub fn get_dbquant(self) -> u8 { self.dbquant } + pub fn is_improved(self) -> bool { self.improved } } #[allow(dead_code)] @@ -72,9 +74,9 @@ pub struct PicInfo { impl PicInfo { pub fn new(w: usize, h: usize, mode: Type, mvmode: MVMode, umv: bool, apm: bool, quant: u8, ts: u16, pb: Option, plusinfo: Option) -> Self { PicInfo { - w: w, h: h, mode: mode, mvmode: mvmode, - umv: umv, apm: apm, quant: quant, - pb: pb, ts: ts, plusinfo: plusinfo + w, h, mode, mvmode, + umv, apm, quant, + pb, ts, plusinfo } } pub fn get_width(&self) -> usize { self.w } @@ -107,7 +109,7 @@ pub struct PlusInfo { impl PlusInfo { pub fn new(aic: bool, deblock: bool, aiv_mode: bool, mq_mode: bool) -> Self { - PlusInfo { aic: aic, deblock: deblock, aiv_mode: aiv_mode, mq_mode: mq_mode } + PlusInfo { aic, deblock, aiv_mode, mq_mode } } } @@ -137,10 +139,10 @@ const SLICE_NO_END: usize = 99999999; impl SliceInfo { pub fn new(mb_x: usize, mb_y: usize, mb_end: usize, quant: u8) -> Self { - SliceInfo{ mb_x: mb_x, mb_y: mb_y, mb_end: mb_end, quant: quant } + SliceInfo{ mb_x, mb_y, mb_end, quant } } pub fn new_gob(mb_x: usize, mb_y: usize, quant: u8) -> Self { - SliceInfo{ mb_x: mb_x, mb_y: mb_y, mb_end: SLICE_NO_END, quant: quant } + SliceInfo{ mb_x, mb_y, mb_end: SLICE_NO_END, quant } } pub fn get_default_slice(pinfo: &PicInfo) -> Self { SliceInfo{ mb_x: 0, mb_y: 0, mb_end: SLICE_NO_END, quant: pinfo.get_quant() } @@ -153,7 +155,7 @@ impl SliceInfo { impl SliceState { pub fn new(is_iframe: bool) -> Self { SliceState { - is_iframe: is_iframe, mb_x: 0, mb_y: 0, first_line: true, first_mb: true, + is_iframe, mb_x: 0, mb_y: 0, first_line: true, first_mb: true, slice_mb_x: 0, slice_mb_y: 0, quant: 0 } } @@ -227,9 +229,9 @@ impl BlockInfo { BlockInfo { intra: mode == Type::I, skip: (cbp == 0) && (mode != Type::I), - mode: mode, - cbp: cbp, - q: q, + mode, + cbp, + q, mv: [MV::new(0, 0), MV::new(0, 0), MV::new(0, 0), MV::new(0, 0)], num_mv: 0, bpart: false, @@ -252,7 +254,7 @@ impl BlockInfo { pub fn get_num_mvs2(&self) -> usize { self.num_mv2 } pub fn get_mv2(&self, idx: usize) -> MV { self.mv2[idx] } pub fn set_mv(&mut self, mvs: &[MV]) { - if mvs.len() > 0 { self.skip = false; } + if !mvs.is_empty() { self.skip = false; } let mut mv_arr: [MV; 4] = [MV::new(0, 0), MV::new(0, 0), MV::new(0, 0), MV::new(0, 0)]; for i in 0..mvs.len() { mv_arr[i] = mvs[i]; } self.mv = mv_arr; @@ -265,7 +267,7 @@ impl BlockInfo { self.num_mv2 = bbinfo.get_num_mv(); } pub fn set_b_mv(&mut self, mvs: &[MV]) { - if mvs.len() > 0 { self.skip = false; } + if !mvs.is_empty() { self.skip = false; } let mut mv_arr: [MV; 2] = [ZERO_MV, ZERO_MV]; for i in 0..mvs.len() { mv_arr[i] = mvs[i]; } self.mv2 = mv_arr; @@ -279,10 +281,10 @@ impl BlockInfo { impl BBlockInfo { pub fn new(present: bool, cbp: u8, num_mv: usize, fwd: bool) -> Self { BBlockInfo { - present: present, - cbp: cbp, - num_mv: num_mv, - fwd: fwd, + present, + cbp, + num_mv, + fwd, } } pub fn get_num_mv(&self) -> usize { self.num_mv } @@ -337,7 +339,7 @@ impl H263MVTrait for MV { let bscale = (trb as i32) - (trd as i32); let x = if bvec.x != 0 { fwdvec.x - pvec.x } else if trd != 0 { (bscale * (pvec.x as i32) / (trd as i32)) as i16 } else { 0 }; let y = if bvec.y != 0 { fwdvec.y - pvec.y } else if trd != 0 { (bscale * (pvec.y as i32) / (trd as i32)) as i16 } else { 0 }; - MV { x: x, y: y } + MV { x, y } } }