aac: allow intensity stereo in right channel
[nihav.git] / nihav-commonfmt / src / codecs / aac.rs
index 5058a44fde17c7cb7118db34eab99bbd0e83b482..fc0bad259975611aa15b65434b30e9f2850ec472 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 {
@@ -930,11 +931,11 @@ impl ChannelPair {
             self.ics[1].info = self.ics[0].info;
         }
         self.ics[0].decode_ics(br, codebooks, m4atype, common_window, true)?;
-        self.ics[1].decode_ics(br, codebooks, m4atype, common_window, false)?;
+        self.ics[1].decode_ics(br, codebooks, m4atype, common_window, true)?;
         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 {