X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Frv40enc%2Fmotion_est.rs;fp=nihav-realmedia%2Fsrc%2Fcodecs%2Frv40enc%2Fmotion_est.rs;h=9fa18e9edc51343727d47e0095fc96ae698d4cf8;hp=63d466391e0c9871be6534b79e86a74935098cd1;hb=e6aaad5c5273cd814b5748b7faf3751835a37217;hpb=625751036014b099fd9c126397bc973cb0543130 diff --git a/nihav-realmedia/src/codecs/rv40enc/motion_est.rs b/nihav-realmedia/src/codecs/rv40enc/motion_est.rs index 63d4663..9fa18e9 100644 --- a/nihav-realmedia/src/codecs/rv40enc/motion_est.rs +++ b/nihav-realmedia/src/codecs/rv40enc/motion_est.rs @@ -3,10 +3,11 @@ use nihav_codec_support::codecs::{MV, ZERO_MV}; use std::str::FromStr; use super::dsp::{RefMBData, luma_mc, chroma_mc}; -#[derive(Clone,Copy,PartialEq)] +#[derive(Clone,Copy,PartialEq,Default)] pub enum MVSearchMode { Dummy, Diamond, + #[default] Hexagon, UMH, } @@ -25,10 +26,6 @@ impl MVSearchMode { } } -impl Default for MVSearchMode { - fn default() -> Self { MVSearchMode::Hexagon } -} - impl std::fmt::Display for MVSearchMode { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match *self { @@ -878,7 +875,7 @@ impl FrameComplexityEstimate { hadamard!(diffs[i], diffs[i + 4], diffs[i + 8], diffs[i + 12], diffs[i], diffs[i + 4], diffs[i + 8], diffs[i + 12]); } - diffs.iter().fold(0u32, |acc, x| acc + (x.abs() as u32)) + diffs.iter().fold(0u32, |acc, x| acc + (x.unsigned_abs() as u32)) } fn satd(src0: &[u8], src1: &[u8], stride: usize) -> u32 { let mut diffs = [0; 16]; @@ -894,7 +891,7 @@ impl FrameComplexityEstimate { hadamard!(diffs[i], diffs[i + 4], diffs[i + 8], diffs[i + 12], diffs[i], diffs[i + 4], diffs[i + 8], diffs[i + 12]); } - diffs.iter().fold(0u32, |acc, x| acc + (x.abs() as u32)) + diffs.iter().fold(0u32, |acc, x| acc + (x.unsigned_abs() as u32)) } fn downscale(dst: &mut NAVideoBuffer, src: &NAVideoBuffer) { let dst = NASimpleVideoFrame::from_video_buf(dst).unwrap();