Fixes SMALL_FOOTPRINT for float
authorJean-Marc Valin <jmvalin@jmvalin.ca>
Tue, 7 Jan 2014 22:50:46 +0000 (17:50 -0500)
committerJean-Marc Valin <jmvalin@jmvalin.ca>
Tue, 7 Jan 2014 22:50:46 +0000 (17:50 -0500)
celt/celt_decoder.c

index fc31094..1e41ec1 100644 (file)
@@ -51,6 +51,9 @@
 #include "celt_lpc.h"
 #include "vq.h"
 
+#if defined(SMALL_FOOTPRINT) && defined(FIXED_POINT)
+#define NORM_ALIASING_HACK
+#endif
 /**********************************************************************/
 /*                                                                    */
 /*                             DECODER                                */
@@ -458,7 +461,7 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, int N, int LM)
    if (noise_based)
    {
       /* Noise-based PLC/CNG */
-#ifdef SMALL_FOOTPRINT
+#ifdef NORM_ALIASING_HACK
       celt_norm *X;
 #else
       VARDECL(celt_norm, X);
@@ -471,7 +474,7 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, int N, int LM)
       end = st->end;
       effEnd = IMAX(start, IMIN(end, mode->effEBands));
 
-#ifdef SMALL_FOOTPRINT
+#ifdef NORM_ALIASING_HACK
       /* This is an ugly hack that breaks aliasing rules and would be easily broken,
          but it saves almost 4kB of stack. */
       X = (celt_norm*)(out_syn[C-1]+overlap/2);
@@ -731,7 +734,7 @@ int celt_decode_with_ec(CELTDecoder * OPUS_RESTRICT st, const unsigned char *dat
    int spread_decision;
    opus_int32 bits;
    ec_dec _dec;
-#ifdef SMALL_FOOTPRINT
+#ifdef NORM_ALIASING_HACK
    celt_norm *X;
 #else
    VARDECL(celt_norm, X);
@@ -980,7 +983,7 @@ int celt_decode_with_ec(CELTDecoder * OPUS_RESTRICT st, const unsigned char *dat
    /* Decode fixed codebook */
    ALLOC(collapse_masks, C*nbEBands, unsigned char);
 
-#ifdef SMALL_FOOTPRINT
+#ifdef NORM_ALIASING_HACK
    /* This is an ugly hack that breaks aliasing rules and would be easily broken,
       but it saves almost 4kB of stack. */
    X = (celt_norm*)(out_syn[CC-1]+overlap/2);