diff options
Diffstat (limited to 'lib/rbcodec/codecs/libopus/silk/CNG.c')
-rw-r--r-- | lib/rbcodec/codecs/libopus/silk/CNG.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/rbcodec/codecs/libopus/silk/CNG.c b/lib/rbcodec/codecs/libopus/silk/CNG.c index fc19391057..19c2e2230c 100644 --- a/lib/rbcodec/codecs/libopus/silk/CNG.c +++ b/lib/rbcodec/codecs/libopus/silk/CNG.c | |||
@@ -12,7 +12,7 @@ documentation and/or other materials provided with the distribution. | |||
12 | names of specific contributors, may be used to endorse or promote | 12 | names of specific contributors, may be used to endorse or promote |
13 | products derived from this software without specific prior written | 13 | products derived from this software without specific prior written |
14 | permission. | 14 | permission. |
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
16 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 16 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
17 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 17 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
18 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | 18 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
@@ -26,10 +26,11 @@ POSSIBILITY OF SUCH DAMAGE. | |||
26 | ***********************************************************************/ | 26 | ***********************************************************************/ |
27 | 27 | ||
28 | #ifdef HAVE_CONFIG_H | 28 | #ifdef HAVE_CONFIG_H |
29 | #include "opus_config.h" | 29 | #include "config.h" |
30 | #endif | 30 | #endif |
31 | 31 | ||
32 | #include "main.h" | 32 | #include "main.h" |
33 | #include "stack_alloc.h" | ||
33 | 34 | ||
34 | /* Generates excitation for CNG LPC synthesis */ | 35 | /* Generates excitation for CNG LPC synthesis */ |
35 | static inline void silk_CNG_exc( | 36 | static inline void silk_CNG_exc( |
@@ -86,8 +87,8 @@ void silk_CNG( | |||
86 | opus_int i, subfr; | 87 | opus_int i, subfr; |
87 | opus_int32 sum_Q6, max_Gain_Q16; | 88 | opus_int32 sum_Q6, max_Gain_Q16; |
88 | opus_int16 A_Q12[ MAX_LPC_ORDER ]; | 89 | opus_int16 A_Q12[ MAX_LPC_ORDER ]; |
89 | opus_int32 CNG_sig_Q10[ MAX_FRAME_LENGTH + MAX_LPC_ORDER ]; | ||
90 | silk_CNG_struct *psCNG = &psDec->sCNG; | 90 | silk_CNG_struct *psCNG = &psDec->sCNG; |
91 | SAVE_STACK; | ||
91 | 92 | ||
92 | if( psDec->fs_kHz != psCNG->fs_kHz ) { | 93 | if( psDec->fs_kHz != psCNG->fs_kHz ) { |
93 | /* Reset state */ | 94 | /* Reset state */ |
@@ -123,6 +124,9 @@ void silk_CNG( | |||
123 | 124 | ||
124 | /* Add CNG when packet is lost or during DTX */ | 125 | /* Add CNG when packet is lost or during DTX */ |
125 | if( psDec->lossCnt ) { | 126 | if( psDec->lossCnt ) { |
127 | VARDECL( opus_int32, CNG_sig_Q10 ); | ||
128 | |||
129 | ALLOC( CNG_sig_Q10, length + MAX_LPC_ORDER, opus_int32 ); | ||
126 | 130 | ||
127 | /* Generate CNG excitation */ | 131 | /* Generate CNG excitation */ |
128 | silk_CNG_exc( CNG_sig_Q10 + MAX_LPC_ORDER, psCNG->CNG_exc_buf_Q14, psCNG->CNG_smth_Gain_Q16, length, &psCNG->rand_seed ); | 132 | silk_CNG_exc( CNG_sig_Q10 + MAX_LPC_ORDER, psCNG->CNG_exc_buf_Q14, psCNG->CNG_smth_Gain_Q16, length, &psCNG->rand_seed ); |
@@ -164,4 +168,5 @@ void silk_CNG( | |||
164 | } else { | 168 | } else { |
165 | silk_memset( psCNG->CNG_synth_state, 0, psDec->LPC_order * sizeof( opus_int32 ) ); | 169 | silk_memset( psCNG->CNG_synth_state, 0, psDec->LPC_order * sizeof( opus_int32 ) ); |
166 | } | 170 | } |
171 | RESTORE_STACK; | ||
167 | } | 172 | } |