Fixed "forced intensity stereo"
authorJean-Marc Valin <jean-marc.valin@octasic.com>
Wed, 4 Aug 2010 21:17:18 +0000 (17:17 -0400)
committerJean-Marc Valin <jean-marc.valin@octasic.com>
Wed, 4 Aug 2010 21:17:18 +0000 (17:17 -0400)
libcelt/bands.c
libcelt/celt.c

index bbc5701..2efe32e 100644 (file)
@@ -667,7 +667,7 @@ static void quant_band(int encode, const CELTMode *m, int i, celt_norm *X, celt_
          if (encode)
          {
             if (stereo)
-               stereo_band_mix(m, X, Y, bandE, qb==0, i, 1, N);
+               stereo_band_mix(m, X, Y, bandE, 0, i, 1, N);
 
             mid = renormalise_vector(X, Q15ONE, N, 1);
             side = renormalise_vector(Y, Q15ONE, N, 1);
@@ -731,6 +731,9 @@ static void quant_band(int encode, const CELTMode *m, int i, celt_norm *X, celt_
             qalloc = log2_frac(ft,BITRES) - log2_frac(fs,BITRES) + 1;
          }
          itheta <<= shift;
+      } else {
+         if (stereo && encode)
+            stereo_band_mix(m, X, Y, bandE, 1, i, 1, N);
       }
 
       if (itheta == 0)
index b6ae119..8b2ad1f 100644 (file)
@@ -1105,7 +1105,7 @@ int celt_encode_with_ec_float(CELTEncoder * restrict st, const celt_sig * pcm, c
 
    /* If there's any room left (can only happen for very high rates),
       fill it with zeros */
-   while (nbCompressedBytes*8 - ec_enc_tell(enc,0) >= 8)
+   while (ec_enc_tell(enc,0) + 8 <= nbCompressedBytes*8)
       ec_enc_bits(enc, 0, 8);
    ec_enc_done(enc);