ape: fix decoding of large value in 3.91-3.98
[nihav.git] / nihav-llaudio / src / codecs / apereader.rs
index acd602bd1b4dc507fba9763df896e6f15c84542b..c1681a4e4a86ee6ab8b586d689a229b4249843c2 100644 (file)
@@ -360,9 +360,9 @@ fn decode_value_3910(rc: &mut ARangeCoder, rice: &mut RiceParams) -> i32 {
     let base = if k <= 16 {
             rc.decode_bits(k)
         } else if k <= 32 {
-            let low = rc.decode_bits(k);
+            let low = rc.decode_bits(16);
             let high = rc.decode_bits(k - 16);
-            (high << (k - 16)) | low
+            (high << 16) | low
         } else {
             rc.error = true;
             return 0;