| Index: silk/NSQ.c
|
| diff --git a/silk/NSQ.c b/silk/NSQ.c
|
| index b49cdf58aff8582657056e3fa23fdbc43a5dabbf..4f2b7fe53efde6d24816ca0a0688638bce7ec352 100644
|
| --- a/silk/NSQ.c
|
| +++ b/silk/NSQ.c
|
| @@ -8,11 +8,11 @@ this list of conditions and the following disclaimer.
|
| - Redistributions in binary form must reproduce the above copyright
|
| notice, this list of conditions and the following disclaimer in the
|
| documentation and/or other materials provided with the distribution.
|
| -- Neither the name of Internet Society, IETF or IETF Trust, nor the
|
| +- Neither the name of Internet Society, IETF or IETF Trust, nor the
|
| names of specific contributors, may be used to endorse or promote
|
| products derived from this software without specific prior written
|
| permission.
|
| -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”
|
| +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
| @@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
| #endif
|
|
|
| #include "main.h"
|
| +#include "stack_alloc.h"
|
|
|
| static inline void silk_nsq_scale_states(
|
| const silk_encoder_state *psEncC, /* I Encoder State */
|
| @@ -88,11 +89,12 @@ void silk_NSQ(
|
| opus_int k, lag, start_idx, LSF_interpolation_flag;
|
| const opus_int16 *A_Q12, *B_Q14, *AR_shp_Q13;
|
| opus_int16 *pxq;
|
| - opus_int32 sLTP_Q15[ 2 * MAX_FRAME_LENGTH ];
|
| - opus_int16 sLTP[ 2 * MAX_FRAME_LENGTH ];
|
| + VARDECL( opus_int32, sLTP_Q15 );
|
| + VARDECL( opus_int16, sLTP );
|
| opus_int32 HarmShapeFIRPacked_Q14;
|
| opus_int offset_Q10;
|
| - opus_int32 x_sc_Q10[ MAX_SUB_FRAME_LENGTH ];
|
| + VARDECL( opus_int32, x_sc_Q10 );
|
| + SAVE_STACK;
|
|
|
| NSQ->rand_seed = psIndices->Seed;
|
|
|
| @@ -109,6 +111,10 @@ void silk_NSQ(
|
| LSF_interpolation_flag = 1;
|
| }
|
|
|
| + ALLOC( sLTP_Q15,
|
| + psEncC->ltp_mem_length + psEncC->frame_length, opus_int32 );
|
| + ALLOC( sLTP, psEncC->ltp_mem_length + psEncC->frame_length, opus_int16 );
|
| + ALLOC( x_sc_Q10, psEncC->subfr_length, opus_int32 );
|
| /* Set up pointers to start of sub frame */
|
| NSQ->sLTP_shp_buf_idx = psEncC->ltp_mem_length;
|
| NSQ->sLTP_buf_idx = psEncC->ltp_mem_length;
|
| @@ -160,6 +166,7 @@ void silk_NSQ(
|
| /* DEBUG_STORE_DATA( enc.pcm, &NSQ->xq[ psEncC->ltp_mem_length ], psEncC->frame_length * sizeof( opus_int16 ) ) */
|
| silk_memmove( NSQ->xq, &NSQ->xq[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int16 ) );
|
| silk_memmove( NSQ->sLTP_shp_Q14, &NSQ->sLTP_shp_Q14[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int32 ) );
|
| + RESTORE_STACK;
|
| }
|
|
|
| /***********************************/
|
|
|