Don't allow transients for 2.5 ms frames.
authorJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Mon, 6 Sep 2010 01:02:38 +0000 (21:02 -0400)
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Mon, 6 Sep 2010 01:02:38 +0000 (21:02 -0400)
It never made sense anyway.

configure.ac
libcelt/celt.c
libcelt/modes.h

index 65e4fbd..fdad7bb 100644 (file)
@@ -5,8 +5,8 @@ AC_INIT(libcelt/arch.h)
 AM_CONFIG_HEADER([config.h])
 
 CELT_MAJOR_VERSION=0
-CELT_MINOR_VERSION=8
-CELT_MICRO_VERSION=1
+CELT_MINOR_VERSION=9
+CELT_MICRO_VERSION=0
 CELT_EXTRA_VERSION=
 CELT_VERSION=$CELT_MAJOR_VERSION.$CELT_MINOR_VERSION.$CELT_MICRO_VERSION$CELT_EXTRA_VERSION
 LIBCELT_SUFFIX=0
@@ -118,7 +118,7 @@ AC_ARG_ENABLE(fixed-point-debug, [  --enable-fixed-point-debug  debug fixed-poin
 fi])
 
 float_approx=$has_float_approx
-AC_ARG_ENABLE(float-approx, [  --disable-float-approx  do not use fast approximations for floating point],
+AC_ARG_ENABLE(float-approx, [  --enable-float-approx   enable fast approximations for floating point],
     [ if test "$enableval" = yes; then
     AC_WARN([Floating point approximations are not supported on all platforms.])
     float_approx=yes
index e667f20..be90a67 100644 (file)
@@ -629,7 +629,7 @@ int celt_encode_with_ec_float(CELTEncoder * restrict st, const celt_sig * pcm, c
 
    resynth = optional_resynthesis!=NULL;
 
-   if (st->complexity > 1)
+   if (st->complexity > 1 && LM>0)
    {
       isTransient = M > 1 &&
          transient_analysis(in, N+st->overlap, C, &transient_time,
@@ -746,7 +746,8 @@ int celt_encode_with_ec_float(CELTEncoder * restrict st, const celt_sig * pcm, c
          error, enc, C, LM, nbAvailableBytes, st->force_intra,
          &st->delayedIntra, st->complexity >= 4);
 
-   ec_enc_bit_prob(enc, shortBlocks!=0, 8192);
+   if (LM > 0)
+      ec_enc_bit_prob(enc, shortBlocks!=0, 8192);
 
    if (shortBlocks)
    {
@@ -1488,7 +1489,10 @@ int celt_decode_with_ec_float(CELTDecoder * restrict st, const unsigned char *da
    unquant_coarse_energy(st->mode, st->start, st->end, bandE, oldBandE,
          intra_ener, st->mode->prob, dec, C, LM);
 
-   isTransient = ec_dec_bit_prob(dec, 8192);
+   if (LM > 0)
+      isTransient = ec_dec_bit_prob(dec, 8192);
+   else
+      isTransient = 0;
 
    if (isTransient)
       shortBlocks = M;
index c7bd526..826ab40 100644 (file)
@@ -43,7 +43,7 @@
 
 #define MAX_CONFIG_SIZES 5
 
-#define CELT_BITSTREAM_VERSION 0x8000000d
+#define CELT_BITSTREAM_VERSION 0x8000000e
 
 #ifdef STATIC_MODES
 #include "static_modes.h"