diff --git a/src_FLP/SKP_Silk_encode_frame_FLP.c b/src_FLP/SKP_Silk_encode_frame_FLP.c index 8a6d3b4eb42921e8a0bbbc9175c97e9044465b78..c80bcbeb4c9948f4a08f983aee12a0a4d0253025 100644 --- a/src_FLP/SKP_Silk_encode_frame_FLP.c +++ b/src_FLP/SKP_Silk_encode_frame_FLP.c @@ -47,24 +47,6 @@ SKP_int SKP_Silk_encode_frame_FLP( TIC(ENCODE_FRAME) - if( psEnc->sCmn.nFramesAnalyzed == 0 && !psEnc->sCmn.prefillFlag && !( psEnc->sCmn.useDTX && psEnc->sCmn.inDTX ) ) { - /* Create space at start of payload for VAD and FEC flags */ - SKP_uint8 iCDF[ 2 ] = { 0, 0 }; - iCDF[ 0 ] = 256 - SKP_RSHIFT( 256, psEnc->sCmn.nFramesPerPacket + 1 ); - ec_enc_icdf( psRangeEnc, 0, iCDF, 8 ); - - /* Encode any LBRR data from previous packet */ - SKP_Silk_LBRR_embed( &psEnc->sCmn, psRangeEnc ); - - /* Reduce coding SNR depending on how many bits used by LBRR */ - nBits = ec_tell( psRangeEnc ); - psEnc->inBandFEC_SNR_comp = ( 6.0f * nBits ) / - ( psEnc->sCmn.nFramesPerPacket * psEnc->sCmn.frame_length ); - - /* Reset LBRR flags */ - SKP_memset( psEnc->sCmn.LBRR_flags, 0, sizeof( psEnc->sCmn.LBRR_flags ) ); - } - psEnc->sCmn.indices.Seed = psEnc->sCmn.frameCounter++ & 3; /**************************************************************/ @@ -102,6 +84,25 @@ TOC(VAD) psEnc->sCmn.VAD_flags[ psEnc->sCmn.nFramesAnalyzed ] = 1; } + if( psEnc->sCmn.nFramesAnalyzed == 0 && !psEnc->sCmn.prefillFlag && !( psEnc->sCmn.useDTX && psEnc->sCmn.inDTX ) ) { + /* Create space at start of payload for VAD and FEC flags */ + SKP_uint8 iCDF[ 2 ] = { 0, 0 }; + iCDF[ 0 ] = 256 - SKP_RSHIFT( 256, psEnc->sCmn.nFramesPerPacket + 1 ); + ec_enc_icdf( psRangeEnc, 0, iCDF, 8 ); + + /* Encode any LBRR data from previous packet */ + SKP_Silk_LBRR_embed( &psEnc->sCmn, psRangeEnc ); + + /* Reduce coding SNR depending on how many bits used by LBRR */ + nBits = ec_tell( psRangeEnc ); + psEnc->inBandFEC_SNR_comp = ( 6.0f * nBits ) / + ( psEnc->sCmn.nFramesPerPacket * psEnc->sCmn.frame_length ); + + /* Reset LBRR flags */ + SKP_memset( psEnc->sCmn.LBRR_flags, 0, sizeof( psEnc->sCmn.LBRR_flags ) ); + } + + /*******************************************/ /* High-pass filtering of the input signal */ /*******************************************/