cng exitation signal can saturate. Use same scaling as PLC and normal decoding
[opus.git] / silk / log2lin.c
index 07d97a9..b7c48e4 100644 (file)
@@ -33,7 +33,7 @@ POSSIBILITY OF SUCH DAMAGE.
 
 /* Approximation of 2^() (very close inverse of silk_lin2log()) */
 /* Convert input to a linear scale    */
-opus_int32 silk_log2lin( 
+opus_int32 silk_log2lin(
     const opus_int32            inLog_Q7            /* I  input on log scale                                            */
 )
 {
@@ -41,6 +41,8 @@ opus_int32 silk_log2lin(
 
     if( inLog_Q7 < 0 ) {
         return 0;
+    } else if ( inLog_Q7 >= 3967 ) {
+        return silk_int32_MAX;
     }
 
     out = silk_LSHIFT( 1, silk_RSHIFT( inLog_Q7, 7 ) );