diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2022-03-02 22:51:16 -0500 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2022-09-15 14:40:43 -0400 |
commit | a5753e301603a8cb169fe8b6375ee3cca2198cee (patch) | |
tree | 72d2e3238ae6181d75777d7af15aa93a174d8999 | |
parent | 72db208f0a95f44f012887c65d301f19a2c50da7 (diff) | |
download | opus-a5753e301603a8cb169fe8b6375ee3cca2198cee.tar.gz |
update
-rw-r--r-- | silk/PLC.c | 20 |
1 files changed, 12 insertions, 8 deletions
@@ -66,10 +66,10 @@ void silk_PLC_Reset( psDec->sPLC.nb_subfr = 2; #ifdef NEURAL_PLC if( psDec->sPLC.lpcnet != NULL ) { - lpcnet_plc_init( psDec->sPLC.lpcnet ); + lpcnet_plc_init( psDec->sPLC.lpcnet, LPCNET_PLC_CODEC ); } else { /* FIXME: This is leaking memory. The right fix is for the LPCNet state to be part of the PLC struct itself. */ - psDec->sPLC.lpcnet = lpcnet_plc_create(); + psDec->sPLC.lpcnet = lpcnet_plc_create(LPCNET_PLC_CODEC); } #endif } @@ -462,12 +462,16 @@ void silk_PLC_glue_frames( slope_Q16 = silk_DIV32_16( ( (opus_int32)1 << 16 ) - gain_Q16, length ); /* Make slope 4x steeper to avoid missing onsets after DTX */ slope_Q16 = silk_LSHIFT( slope_Q16, 2 ); - - for( i = 0; i < length; i++ ) { - frame[ i ] = silk_SMULWB( gain_Q16, frame[ i ] ); - gain_Q16 += slope_Q16; - if( gain_Q16 > (opus_int32)1 << 16 ) { - break; +#ifdef NEURAL_PLC + if ( psDec->sPLC.fs_kHz != 16 ) +#endif + { + for( i = 0; i < length; i++ ) { + frame[ i ] = silk_SMULWB( gain_Q16, frame[ i ] ); + gain_Q16 += slope_Q16; + if( gain_Q16 > (opus_int32)1 << 16 ) { + break; + } } } } |