summaryrefslogtreecommitdiff
path: root/silk/log2lin.c
diff options
context:
space:
mode:
authorKoen Vos <koenvos74@gmail.com>2013-11-20 08:32:32 -0500
committerJean-Marc Valin <jmvalin@jmvalin.ca>2013-11-20 08:32:32 -0500
commitc63fb978be59fd09179abe9d714ee598d888e789 (patch)
tree36deeaa6440ff80c943e19d6ab4016e29dd4ccbc /silk/log2lin.c
parentac31a0af4ace081404de39342eed41cf59f91e2d (diff)
downloadopus-c63fb978be59fd09179abe9d714ee598d888e789.tar.gz
Constrains accumulated pitch gain to avoid potential instability.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
Diffstat (limited to 'silk/log2lin.c')
-rw-r--r--silk/log2lin.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/silk/log2lin.c b/silk/log2lin.c
index 07d97a95..a692e009 100644
--- a/silk/log2lin.c
+++ b/silk/log2lin.c
@@ -41,7 +41,9 @@ 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 ) );
frac_Q7 = inLog_Q7 & 0x7F;