X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Frv34dsp.rs;h=a8f9e0353a2606a86c7777ed6db6a9936cefe74e;hb=549152963d868fc896287193b7ac7767e8794e01;hp=c8c87fb61e06d9a3b85a6950f8a61c811d47be1d;hpb=5641dccfbf2a70d589cf094a0d4ed5a10f919f00;p=nihav.git diff --git a/nihav-realmedia/src/codecs/rv34dsp.rs b/nihav-realmedia/src/codecs/rv34dsp.rs index c8c87fb..a8f9e03 100644 --- a/nihav-realmedia/src/codecs/rv34dsp.rs +++ b/nihav-realmedia/src/codecs/rv34dsp.rs @@ -30,12 +30,15 @@ pub enum PredType8x8 { DC128 } +type IPred4x4Func = fn(buf: &mut [u8], idx: usize, stride: usize, tr: &[u8]); + pub struct RV34CommonDSP { - pub ipred4x4: [fn(buf: &mut [u8], idx: usize, stride: usize, tr: &[u8]); 15], + pub ipred4x4: [IPred4x4Func; 15], pub ipred8x8: [fn(buf: &mut [u8], idx: usize, stride: usize); 7], pub ipred16x16: [fn(buf: &mut [u8], idx: usize, stride: usize); 7], } +#[allow(clippy::erasing_op)] fn row_transform(src: &[i16], dst: &mut [i32]) { for i in 0..4 { let z0 = 13 * ((src[i + 4*0] as i32) + (src[i + 4*2] as i32)); @@ -61,6 +64,7 @@ fn mclip8(a: i32) -> u8 { else { a as u8 } } +#[allow(clippy::erasing_op)] impl RV34CommonDSP { pub fn new() -> Self { Self { @@ -545,7 +549,7 @@ fn ipred_16x16_plane(buf: &mut [u8], mut idx: usize, stride: usize) { } } -const IPRED_FUNCS4X4: [fn(buf: &mut [u8], idx: usize, stride: usize, tr: &[u8]); 15] = [ +const IPRED_FUNCS4X4: [IPred4x4Func; 15] = [ ipred_4x4_ver, ipred_4x4_hor, ipred_4x4_dc, ipred_4x4_diag_down_left, ipred_4x4_diag_down_right, ipred_4x4_ver_right, ipred_4x4_hor_down, ipred_4x4_ver_left, ipred_4x4_hor_up,