aacsbr: fix high<->low resolution envelope mapping
[nihav.git] / nihav-mpeg / src / codecs / aac / sbr / mod.rs
index f337e965004f64fbdb8e621eb2f626e4aba0f177..d2477b98a45a5735d5c83a2b1c58a487158a2e23 100644 (file)
@@ -189,9 +189,10 @@ impl SBRState {
             }
         }
         for (dst, high) in self.low_to_high_res.iter_mut().zip(high_src.iter()) {
-            match low_src.binary_search(high) {
-                Ok(idx) | Err(idx) => *dst = idx,
-            };
+            *dst = match low_src.binary_search(high) {
+                    Ok(idx) => idx,
+                    Err(idx) => idx - 1,
+                };
         }
 
         let num_q = (((hdr.noise_bands as f32) * ((k2 as f32) / (k_x as f32)).log2()).round() as usize).max(1);