| Index: third_party/opus/src/silk/PLC.c
|
| diff --git a/third_party/opus/src/silk/PLC.c b/third_party/opus/src/silk/PLC.c
|
| index fb6ea887b7ee254b1b858a6a52bc5845e0d5738d..a3e55ea765ef4f4b071901555d33d03c0633eae2 100644
|
| --- a/third_party/opus/src/silk/PLC.c
|
| +++ b/third_party/opus/src/silk/PLC.c
|
| @@ -275,7 +275,7 @@ static OPUS_INLINE void silk_PLC_conceal(
|
| /* Reduce random noise for unvoiced frames with high LPC gain */
|
| opus_int32 invGain_Q30, down_scale_Q30;
|
|
|
| - invGain_Q30 = silk_LPC_inverse_pred_gain( psPLC->prevLPC_Q12, psDec->LPC_order );
|
| + invGain_Q30 = silk_LPC_inverse_pred_gain( psPLC->prevLPC_Q12, psDec->LPC_order, arch );
|
|
|
| down_scale_Q30 = silk_min_32( silk_RSHIFT( (opus_int32)1 << 30, LOG2_INV_LPC_GAIN_HIGH_THRES ), invGain_Q30 );
|
| down_scale_Q30 = silk_max_32( silk_RSHIFT( (opus_int32)1 << 30, LOG2_INV_LPC_GAIN_LOW_THRES ), down_scale_Q30 );
|
| @@ -328,8 +328,10 @@ static OPUS_INLINE void silk_PLC_conceal(
|
| for( j = 0; j < LTP_ORDER; j++ ) {
|
| B_Q14[ j ] = silk_RSHIFT( silk_SMULBB( harm_Gain_Q15, B_Q14[ j ] ), 15 );
|
| }
|
| - /* Gradually reduce excitation gain */
|
| - rand_scale_Q14 = silk_RSHIFT( silk_SMULBB( rand_scale_Q14, rand_Gain_Q15 ), 15 );
|
| + if ( psDec->indices.signalType != TYPE_NO_VOICE_ACTIVITY ) {
|
| + /* Gradually reduce excitation gain */
|
| + rand_scale_Q14 = silk_RSHIFT( silk_SMULBB( rand_scale_Q14, rand_Gain_Q15 ), 15 );
|
| + }
|
|
|
| /* Slowly increase pitch lag */
|
| psPLC->pitchL_Q8 = silk_SMLAWB( psPLC->pitchL_Q8, psPLC->pitchL_Q8, PITCH_DRIFT_FAC_Q16 );
|
|
|