maximum FLAC order is 32
authorKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 28 Nov 2020 11:01:33 +0000 (12:01 +0100)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 28 Nov 2020 11:01:33 +0000 (12:01 +0100)
nihav-llaudio/src/codecs/flac.rs

index 55cd6bbacb96081530fca19e8d47e0a4eb22d74d..0ca80aab48bcb1d0ca3a12ccf05b60110e657a20 100644 (file)
@@ -121,7 +121,7 @@ fn apply_fixed_predictor(dst: &mut [i32], order: usize) {
     };
 }
 
-fn apply_lpc(dst: &mut [i32], filt: &[i32; 16], order: usize, shift: u8) {
+fn apply_lpc(dst: &mut [i32], filt: &[i32; 32], order: usize, shift: u8) {
     for i in order..dst.len() {
         let mut sum = 0i64;
         for (coef, filt) in dst[i - order..].iter().take(order).zip(filt.iter()) {
@@ -213,7 +213,7 @@ impl FlacDecoder {
                 let precision           = br.read(4)? as u8 + 1;
                 validate!(precision < 16);
                 let shift               = br.read(5)? as u8;
-                let mut filter = [0i32; 16];
+                let mut filter = [0i32; 32];
                 for el in filter[..order].iter_mut().rev() {
                     *el                 = br.read_s(precision)?;
                 }