diff --git a/src/driver/export.rs b/src/driver/export.rs index 3236f91..bf0a349 100644 --- a/src/driver/export.rs +++ b/src/driver/export.rs @@ -254,7 +254,7 @@ pub fn export_packed<'a>( )?; let target = Format::from_raw(format); - if matches!(target, Some(Format::Yuv420p) | Some(Format::Yuva420p)) { + if matches!(target, Some(Format::Yuv420p | Format::Yuva420p)) { let want_alpha = target == Some(Format::Yuva420p); let native = img.format; let mut planar = if !img.chroma_full @@ -559,7 +559,7 @@ pub fn export_still_lossless<'a>( *converted_format = format; }; - if matches!(target, Some(Format::Yuv420p) | Some(Format::Yuva420p)) { + if matches!(target, Some(Format::Yuv420p | Format::Yuva420p)) { let want_alpha = target == Some(Format::Yuva420p); ensure_yuva_rows(dsp, output, img, want_alpha, first, upto)?; diff --git a/src/vp8/rac.rs b/src/vp8/rac.rs index 520f500..780f2c6 100644 --- a/src/vp8/rac.rs +++ b/src/vp8/rac.rs @@ -192,7 +192,7 @@ mod imp { #[inline(always)] fn set_range(&mut self, range: u32, pos: i32) { - let shift = range.leading_zeros() ^ 24; + let shift = range.leading_zeros() ^ 0b1_1000; self.c.range = range; self.shift = shift; diff --git a/src/vp8l/huffman.rs b/src/vp8l/huffman.rs index 8fc531b..1f23383 100644 --- a/src/vp8l/huffman.rs +++ b/src/vp8l/huffman.rs @@ -151,7 +151,7 @@ fn next_key(key: u32, len: u32) -> u32 { if inv == 0 { return key; } - let inv = 1u32 << (31 - inv.leading_zeros()); + let inv = 1u32 << inv.ilog2(); (key & (inv - 1)) + inv }