summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libopus/silk/decode_frame.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libopus/silk/decode_frame.c')
-rw-r--r--lib/rbcodec/codecs/libopus/silk/decode_frame.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/rbcodec/codecs/libopus/silk/decode_frame.c b/lib/rbcodec/codecs/libopus/silk/decode_frame.c
index abc00a3d54..6a7cffbbe0 100644
--- a/lib/rbcodec/codecs/libopus/silk/decode_frame.c
+++ b/lib/rbcodec/codecs/libopus/silk/decode_frame.c
@@ -47,13 +47,10 @@ opus_int silk_decode_frame(
47{ 47{
48 VARDECL( silk_decoder_control, psDecCtrl ); 48 VARDECL( silk_decoder_control, psDecCtrl );
49 opus_int L, mv_len, ret = 0; 49 opus_int L, mv_len, ret = 0;
50 VARDECL( opus_int, pulses );
51 SAVE_STACK; 50 SAVE_STACK;
52 51
53 L = psDec->frame_length; 52 L = psDec->frame_length;
54 ALLOC( psDecCtrl, 1, silk_decoder_control ); 53 ALLOC( psDecCtrl, 1, silk_decoder_control );
55 ALLOC( pulses, (L + SHELL_CODEC_FRAME_LENGTH - 1) &
56 ~(SHELL_CODEC_FRAME_LENGTH - 1), opus_int );
57 psDecCtrl->LTP_scale_Q14 = 0; 54 psDecCtrl->LTP_scale_Q14 = 0;
58 55
59 /* Safety checks */ 56 /* Safety checks */
@@ -62,6 +59,9 @@ opus_int silk_decode_frame(
62 if( lostFlag == FLAG_DECODE_NORMAL || 59 if( lostFlag == FLAG_DECODE_NORMAL ||
63 ( lostFlag == FLAG_DECODE_LBRR && psDec->LBRR_flags[ psDec->nFramesDecoded ] == 1 ) ) 60 ( lostFlag == FLAG_DECODE_LBRR && psDec->LBRR_flags[ psDec->nFramesDecoded ] == 1 ) )
64 { 61 {
62 VARDECL( opus_int16, pulses );
63 ALLOC( pulses, (L + SHELL_CODEC_FRAME_LENGTH - 1) &
64 ~(SHELL_CODEC_FRAME_LENGTH - 1), opus_int16 );
65 /*********************************************/ 65 /*********************************************/
66 /* Decode quantization indices of side info */ 66 /* Decode quantization indices of side info */
67 /*********************************************/ 67 /*********************************************/
@@ -107,16 +107,16 @@ opus_int silk_decode_frame(
107 silk_memmove( psDec->outBuf, &psDec->outBuf[ psDec->frame_length ], mv_len * sizeof(opus_int16) ); 107 silk_memmove( psDec->outBuf, &psDec->outBuf[ psDec->frame_length ], mv_len * sizeof(opus_int16) );
108 silk_memcpy( &psDec->outBuf[ mv_len ], pOut, psDec->frame_length * sizeof( opus_int16 ) ); 108 silk_memcpy( &psDec->outBuf[ mv_len ], pOut, psDec->frame_length * sizeof( opus_int16 ) );
109 109
110 /****************************************************************/
111 /* Ensure smooth connection of extrapolated and good frames */
112 /****************************************************************/
113 silk_PLC_glue_frames( psDec, pOut, L );
114
115 /************************************************/ 110 /************************************************/
116 /* Comfort noise generation / estimation */ 111 /* Comfort noise generation / estimation */
117 /************************************************/ 112 /************************************************/
118 silk_CNG( psDec, psDecCtrl, pOut, L ); 113 silk_CNG( psDec, psDecCtrl, pOut, L );
119 114
115 /****************************************************************/
116 /* Ensure smooth connection of extrapolated and good frames */
117 /****************************************************************/
118 silk_PLC_glue_frames( psDec, pOut, L );
119
120 /* Update some decoder state variables */ 120 /* Update some decoder state variables */
121 psDec->lagPrev = psDecCtrl->pitchL[ psDec->nb_subfr - 1 ]; 121 psDec->lagPrev = psDecCtrl->pitchL[ psDec->nb_subfr - 1 ];
122 122