X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-mpeg%2Fsrc%2Fcodecs%2Faac%2Fcoeff_read.rs;h=81a1d367a1c3cd76d105df986db01d706a32d660;hp=63a86aaebe33f601a056de99741c65b352df2a91;hb=e6aaad5c5273cd814b5748b7faf3751835a37217;hpb=625751036014b099fd9c126397bc973cb0543130 diff --git a/nihav-mpeg/src/codecs/aac/coeff_read.rs b/nihav-mpeg/src/codecs/aac/coeff_read.rs index 63a86aa..81a1d36 100644 --- a/nihav-mpeg/src/codecs/aac/coeff_read.rs +++ b/nihav-mpeg/src/codecs/aac/coeff_read.rs @@ -43,7 +43,7 @@ pub fn get_scale(scale: u8) -> f32 { 2.0f32.powf(0.25 * (f32::from(scale) - 100.0 - 56.0)) } fn iquant(val: i16) -> f32 { - let idx = val.abs() as usize; + let idx = val.unsigned_abs() as usize; if idx < CBRT_TAB.len() { if val < 0 { -CBRT_TAB[idx] @@ -83,9 +83,9 @@ fn decode_quads(br: &mut BitReader, cb: &Codebook, unsigned: bool, scale: f for i in 0..4 { let val = AAC_QUADS[cw][i] - 1; if val < 0 { - out[i] = -CBRT_TAB[val.abs() as usize] * scale; + out[i] = -CBRT_TAB[val.unsigned_abs() as usize] * scale; } else { - out[i] = CBRT_TAB[val.abs() as usize] * scale; + out[i] = CBRT_TAB[val.unsigned_abs() as usize] * scale; } } } @@ -118,8 +118,8 @@ fn decode_pairs(br: &mut BitReader, cb: &Codebook, unsigned: bool, escape: out[0] = iquant(x) * scale; out[1] = iquant(y) * scale; } else { - out[0] = scale * if x < 0 { -CBRT_TAB[x.abs() as usize] } else { CBRT_TAB[x as usize] }; - out[1] = scale * if y < 0 { -CBRT_TAB[y.abs() as usize] } else { CBRT_TAB[y as usize] }; + out[0] = scale * if x < 0 { -CBRT_TAB[x.unsigned_abs() as usize] } else { CBRT_TAB[x as usize] }; + out[1] = scale * if y < 0 { -CBRT_TAB[y.unsigned_abs() as usize] } else { CBRT_TAB[y as usize] }; } } Ok(())