aac: fix the window group advancement in joint-stereo reconstruction
[nihav.git] / nihav-commonfmt / src / codecs / aac.rs
index 5058a44fde17c7cb7118db34eab99bbd0e83b482..9f9588b534dc33347ee5f070c473acf166f34aa8 100644 (file)
@@ -882,6 +882,7 @@ fn read_escape(br: &mut BitReader, sign: bool) -> DecoderResult<i16> {
     let prefix                                          = br.read_code(UintCodeType::UnaryOnes)? as u8;
     validate!(prefix < 9);
     let bits                                            = br.read(prefix + 4)? as i16;
+    let bits = bits | (1 << (prefix + 4));
     if sign {
         Ok(bits)
     } else {
@@ -934,7 +935,7 @@ impl ChannelPair {
         if common_window && self.ms_mask_present != 0 {
             let mut g = 0;
             for w in 0..self.ics[0].info.num_windows {
-                if w > 0 && self.ics[0].info.scale_factor_grouping[w - 1] {
+                if w > 0 && !self.ics[0].info.scale_factor_grouping[w - 1] {
                     g += 1;
                 }
                 for sfb in 0..self.ics[0].info.max_sfb {