Make the dynalloc boost run over [start,end).
authorTimothy B. Terriberry <tterribe@xiph.org>
Thu, 30 Dec 2010 17:04:16 +0000 (09:04 -0800)
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Thu, 30 Dec 2010 17:47:28 +0000 (12:47 -0500)
Previously it was coded for all bands, even when not all of them
 were being used.

libcelt/celt.c

index 03bd83a..922f51d 100644 (file)
@@ -1010,7 +1010,7 @@ int celt_encode_with_ec_float(CELTEncoder * restrict st, const celt_sig * pcm, i
       }
    }
    dynalloc_prob = 6;
-   for (i=0;i<st->mode->nbEBands;i++)
+   for (i=st->start;i<st->end;i++)
    {
       int j;
       ec_enc_bit_logp(enc, offsets[i]!=0, dynalloc_prob);
@@ -1859,7 +1859,7 @@ int celt_decode_with_ec_float(CELTDecoder * restrict st, const unsigned char *da
    for (i=0;i<st->mode->nbEBands;i++)
       offsets[i] = 0;
    dynalloc_prob = 6;
-   for (i=0;i<st->mode->nbEBands;i++)
+   for (i=st->start;i<st->end;i++)
    {
       if (ec_dec_bit_logp(dec, dynalloc_prob))
       {