Loading Workspace_msvc/lib_com.vcxproj +0 −1 Original line number Diff line number Diff line Loading @@ -315,7 +315,6 @@ <ClInclude Include="..\lib_com\ivas_cnst.h" /> <ClInclude Include="..\lib_com\ivas_error.h" /> <ClInclude Include="..\lib_com\ivas_error_utils.h" /> <ClInclude Include="..\lib_com\ivas_prot.h" /> <ClInclude Include="..\lib_com\ivas_prot_fx.h" /> <ClInclude Include="..\lib_com\ivas_rom_com.h" /> <ClInclude Include="..\lib_com\ivas_stat_com.h" /> Loading Workspace_msvc/lib_com.vcxproj.filters +0 −3 Original line number Diff line number Diff line Loading @@ -570,9 +570,6 @@ <ClInclude Include="..\lib_com\ivas_error_utils.h"> <Filter>common_h</Filter> </ClInclude> <ClInclude Include="..\lib_com\ivas_prot.h"> <Filter>common_h</Filter> </ClInclude> <ClInclude Include="..\lib_com\ivas_rom_com.h"> <Filter>common_h</Filter> </ClInclude> Loading lib_com/prot_fx.h +126 −109 Original line number Diff line number Diff line Loading @@ -6340,77 +6340,135 @@ void td_cng_dec_init_ivas_fx( ); // wavadjust_fec_dec_fx.c void set_state( Word16 *state, Word16 num, Word16 N ); void concealment_init_x( Word16 N, void *_plcInfo ); void set_state( Word16 *state, Word16 num, Word16 N ); void concealment_init_x( Word16 N, void *_plcInfo ); void concealment_init_ivas_fx( const Word16 L_frameTCX, T_PLCInfo_HANDLE hPlcInfo ); void concealment_update_x( Word16 bfi, Word16 curr_mode, Word16 harmonic, Word32 *invkoef, Word16 *invkoef_scale, void *_plcInfo ); Word16 Sqrt_x_fast( Word32 value ); Word32 dot_w32_accuracy_x( Word16 *s1, Word16 *s2, Word16 nbits, Word16 N ); Word16 int_div_s_x( Word16 a, Word16 b ); Word16 GetW32Norm_x( Word32 *s, Word16 N ); Word16 harmo_x( Word32 *X, Word16 Framesize, Word16 pitch ); void LpFilter2_x( Word16 *x, Word16 *y, Word16 N ); void sig_tilt_x( Word16 *s, Word16 FrameSize, Word32 *enr1, Word32 *enr2 ); void get_maxConv_and_pitch_x( Word16 *s_LP, Word16 s, Word16 e, Word16 N, Word32 *maxConv, Word16 *maxConv_bits, Word16 *pitch ); Word16 get_voicing_x( Word16 *s_LP, Word16 pitch, Word32 covMax, Word16 maxConv_bits, Word16 Framesize ); void pitch_modify_x( Word16 *s_LP, Word16 *voicing, Word16 *pitch, Word16 FrameSize ); void concealment_update_x( Word16 bfi, Word16 curr_mode, Word16 harmonic, Word32 *invkoef, Word16 *invkoef_scale, void *_plcInfo ); Word16 Sqrt_x_fast( Word32 value ); Word32 dot_w32_accuracy_x( Word16 *s1, Word16 *s2, Word16 nbits, Word16 N ); Word16 int_div_s_x( Word16 a, Word16 b ); Word16 Is_Periodic_x( Word32 *mdct_data, Word16 cov_max, Word16 zp, Word32 ener, Word32 ener_mean, Word16 pitch, Word16 Framesize ); Word16 GetW32Norm_x( Word32 *s, Word16 N ); Word16 get_conv_relation_x( Word16 *s_LP, Word16 shift, Word16 N ); Word16 harmo_x( Word32 *X, Word16 Framesize, Word16 pitch ); void LpFilter2_x( Word16 *x, Word16 *y, Word16 N ); void sig_tilt_x( Word16 *s, Word16 FrameSize, Word32 *enr1, Word32 *enr2 ); void get_maxConv_and_pitch_x( Word16 *s_LP, Word16 s, Word16 e, Word16 N, Word32 *maxConv, Word16 *maxConv_bits, Word16 *pitch ); void concealment_decode_fix( Word16 curr_mode, Word32 *invkoef, Word16 *invkoef_scale, void *_plcInfo ); Word16 get_voicing_x( Word16 *s_LP, Word16 pitch, Word32 covMax, Word16 maxConv_bits, Word16 Framesize ); void pitch_modify_x( Word16 *s_LP, Word16 *voicing, Word16 *pitch, Word16 FrameSize ); Word16 Is_Periodic_x( Word32 *mdct_data, Word16 cov_max, Word16 zp, Word32 ener, Word32 ener_mean, Word16 pitch, Word16 Framesize ); Word32 Spl_Energy_x( const Word16 *vector, const Word16 vector_length, Word16 *scale_factor ); Word16 get_conv_relation_x( Word16 *s_LP, Word16 shift, Word16 N ); void Log10OfEnergy_x( const Word16 *s, Word32 *enerlogval, const Word16 len ); void concealment_decode_fix( Word16 curr_mode, Word32 *invkoef, Word16 *invkoef_scale, void *_plcInfo ); Word32 Spl_Energy_x( const Word16 *vector, const Word16 vector_length, Word16 *scale_factor ); void Log10OfEnergy_x( const Word16 *s, Word32 *enerlogval, const Word16 len ); void concealment_update2_x( const Word16 *outx_new, void *_plcInfo, const Word16 FrameSize ); void concealment_update2_x( const Word16 *outx_new, void *_plcInfo, const Word16 FrameSize ); Word16 ffr_getSfWord16( Word16 *vector, /*!< Pointer to i vector */ Word16 ffr_getSfWord16( Word16 *vector, /*!< Pointer to i vector */ Word16 len ); void waveform_adj2_fix( Word16 *overlapbuf, void waveform_adj2_fix( T_PLCInfo_HANDLE hPlcInfo, Word16 *overlapbuf, Word16 *outx_new, Word16 *data_noise, Word16 *outx_new_n1, Word16 *nsapp_gain, Word16 *nsapp_gain_n, Word16 *recovery_gain, Word16 step_concealgain, Word16 pitch, Word16 Framesize, Word16 delay, Word16 bfi_cnt, Word16 bfi ); const Word16 delay, const Word16 bfi_cnt, const Word16 bfi ); void concealment_signal_tuning_fx( Decoder_State *st, const Word16 bfi, Word16 *outx_new_fx /*Qoutx_new_fx*/, const Word16 past_core ); void concealment_signal_tuning_fx( Word16 bfi, Word16 curr_mode, Word16 *outx_new_fx, void *_plcInfo, Word16 nbLostCmpt, Word16 pre_bfi, Word16 *OverlapBuf_fx, Word16 past_core_mode, Word16 *outdata2_fx, Decoder_State *st ); // TonalComponentDetect.c /* Detect tonal components in the lastMDCTSpectrum, use * secondLastPowerSpectrum for the precise location of the peaks and * store them in indexOfTonalPeak. Updates lowerIndex, upperIndex, * pNumIndexes accordingly. */ void DetectTonalComponents( Word16 indexOfTonalPeak[], Word16 lowerIndex[], Loading @@ -6434,12 +6492,6 @@ void DetectTonalComponents( #endif ); /* When called, the tonal components are already stored in * indexOfTonalPeak. Detect tonal components in the lastMDCTSpectrum, * use secondLastPowerSpectrum for the precise location of the peaks and * then keep in indexOfTonalPeak only the tonal components that are * again detected Updates indexOfTonalPeak, lowerIndex, upperIndex, * phaseDiff, phases, pNumIndexes accordingly. */ void RefineTonalComponents( Word16 indexOfTonalPeak[], Word16 lowerIndex[], Loading Loading @@ -6537,26 +6589,13 @@ void TonalMDCTConceal_SaveFreqSignal_ivas_fx( const Word16 gain_tcx_exp, const Word16 infoIGFStartLine ); /* The call to TonalMDCTConceal_UpdateState() should be called after TonalMDCTConceal_Apply. */ TONALMDCTCONCEAL_ERROR TonalMDCTConceal_UpdateState( TonalMDCTConcealPtr self, TONALMDCTCONCEAL_ERROR TonalMDCTConceal_UpdateState( TonalMDCTConcealPtr self, Word16 nNewSamples, Word32 pitchLag, Word16 badBlock, Word8 tonalConcealmentActive ); /* The call to TonalMDCTConceal_SaveTimeSignal() should be at the * place where the TD signal corresponds to the FD signal stored with TonalMDCTConceal_SaveFreqSignal. */ void TonalMDCTConceal_SaveTimeSignal( TonalMDCTConcealPtr hTonalMDCTConc, Word16 *timeSignal, Word16 nNewSamples ); /* Calculates MDST, power spectrum and performs peak detection. * Uses the TD signal in pastTimeSignal; if pastTimeSignal is NULL, uses the * TD signal stored using TonalMDCTConceal_SaveTimeSignal. If the * second last frame was also lost, it is expected that pastTimeSignal * could hold a signal somewhat different from the one stored in * TonalMDCTConceal_SaveTimeSignal (e.g. including fade-out).*/ void TonalMDCTConceal_Detect( const TonalMDCTConcealPtr self, /*IN */ const Word32 pitchLag, /*IN */ Loading @@ -6568,9 +6607,6 @@ void TonalMDCTConceal_Detect( #endif ); /* Conceals the lost frame using the FD signal previously stored using * TonalMDCTConceal_SaveFreqSignal. Stores the concealed harmonic part of * the signal in mdctSpectrum, the rest of the spectrum is unchanged. */ void TonalMDCTConceal_Apply( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32* mdctSpectrum, /*IN/OUT*/ Loading @@ -6586,9 +6622,6 @@ void TonalMDCTConceal_Apply_ivas_fx( Word16 mdctSpectrum_exp[L_FRAME48k], /*IN */ const PsychoacousticParameters *psychParamsCurrent ); /* Conceals the lost frame using the FD signal previously stored using * TonalMDCTConceal_SaveFreqSignal. Stores the concealed noise part of * the signal in mdctSpectrum, the rest of the spectrum is unchanged. */ void TonalMDCTConceal_InsertNoise_ivas_fx( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, Loading @@ -6603,10 +6636,6 @@ void TonalMDCTConceal_InsertNoise_ivas_fx( const Word16 cngLevelBackgroundTrace_e, const Word16 crossOverFreq ); /* Conceals the lost frame using the FD signal previously stored using * TonalMDCTConceal_SaveFreqSignal. Stores the concealed noise part of * the signal in mdctSpectrum, the rest of the spectrum is unchanged. */ void TonalMDCTConceal_InsertNoise( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, /*OUT*/ Loading @@ -6619,24 +6648,12 @@ void TonalMDCTConceal_InsertNoise( const Word16concealment_noise[L_FRAME48k], #endif const Word16 crossOverFreq ); /* Conceals the lost frame using the FD signal previously stored using * TonalMDCTConceal_SaveFreqSignal. Stores the concealed harmonic part of * the signal in mdctSpectrum, the rest of the spectrum is unchanged. */ void TonalMDCTConceal_Apply( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32* mdctSpectrum, /*IN/OUT*/ Word16* mdctSpectrum_exp /*IN */ #ifdef IVAS_CODE_MDCT_GSHAPE , const PsychoacousticParameters* psychParamsCurrent) #endif ); /* The call to TonalMDCTConceal_SaveTimeSignal() should be at the * place where the TD signal corresponds to the FD signal stored with TonalMDCTConceal_SaveFreqSignal. */ void TonalMDCTConceal_SaveTimeSignal( TonalMDCTConcealPtr hTonalMDCTConc, Word16 *timeSignal, Word16 nNewSamples ); void TonalMDCTConceal_SaveTimeSignal_ivas_fx( TonalMDCTConcealPtr hTonalMDCTConc, Word16 *timeSignal, Loading lib_dec/amr_wb_dec_fx.c +3 −5 Original line number Diff line number Diff line Loading @@ -218,7 +218,7 @@ ivas_error amr_wb_dec_fx( /* st_fx->old_out_fx, st_fx->L_frameTCX); */ FOR( i = 0; i < hTcxDec->L_frameTCX; i++ ) { hHQ_core->old_out_fx[i] = shl( mult_r( hHQ_core->old_out_fx[i], st_fx->plcInfo.recovery_gain ), 1 ); hHQ_core->old_out_fx[i] = shl( mult_r( hHQ_core->old_out_fx[i], st_fx->hPlcInfo->recovery_gain ), 1 ); move16(); } } Loading Loading @@ -963,7 +963,7 @@ ivas_error amr_wb_dec_fx( test(); test(); IF( !st_fx->bfi && st_fx->prev_bfi && GE_32( st_fx->last_total_brate, HQ_48k ) && EQ_16( st_fx->last_codec_mode, MODE2 ) && ( EQ_16( st_fx->last_core_bfi, TCX_20_CORE ) || EQ_16( st_fx->last_core_bfi, TCX_10_CORE ) ) && EQ_16( st_fx->plcInfo.concealment_method, TCX_NONTONAL ) && LT_32( st_fx->plcInfo.nbLostCmpt, 4 ) ) IF( !st_fx->bfi && st_fx->prev_bfi && GE_32( st_fx->last_total_brate, HQ_48k ) && EQ_16( st_fx->last_codec_mode, MODE2 ) && ( EQ_16( st_fx->last_core_bfi, TCX_20_CORE ) || EQ_16( st_fx->last_core_bfi, TCX_10_CORE ) ) && EQ_16( st_fx->hPlcInfo->concealment_method, TCX_NONTONAL ) && LT_32( st_fx->hPlcInfo->nbLostCmpt, 4 ) ) { waveadj_rec = 1; move16(); Loading Loading @@ -1075,9 +1075,7 @@ ivas_error amr_wb_dec_fx( move16(); } waveform_adj2_fix( st_fx->tonalMDCTconceal.secondLastPcmOut, synth_out_fx + tmps, st_fx->plcInfo.data_noise, &st_fx->plcInfo.outx_new_n1_fx, &st_fx->plcInfo.nsapp_gain_fx, &st_fx->plcInfo.nsapp_gain_n_fx, &st_fx->plcInfo.recovery_gain, st_fx->plcInfo.step_concealgain_fx, st_fx->plcInfo.Pitch_fx, st_fx->plcInfo.FrameSize, tmps, add( extract_l( st_fx->plcInfo.nbLostCmpt ), 1 ), st_fx->bfi ); waveform_adj2_fix( st_fx->hPlcInfo, st_fx->tonalMDCTconceal.secondLastPcmOut, synth_out_fx + tmps, tmps, add( extract_l( st_fx->hPlcInfo->nbLostCmpt ), 1 ), st_fx->bfi ); } /* HP filter */ Loading lib_dec/core_dec_init_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -1029,7 +1029,7 @@ void open_decoder_LPD_fx( test(); IF( EQ_16( st->ini_frame, 0 ) || LT_32( st->last_total_brate, HQ_48k ) || EQ_16( st->last_codec_mode, MODE1 ) || st->force_lpd_reset ) { concealment_init_x( hTcxDec->L_frameTCX, &st->plcInfo ); concealment_init_x( hTcxDec->L_frameTCX, &st->hPlcInfo ); } } Loading Loading
Workspace_msvc/lib_com.vcxproj +0 −1 Original line number Diff line number Diff line Loading @@ -315,7 +315,6 @@ <ClInclude Include="..\lib_com\ivas_cnst.h" /> <ClInclude Include="..\lib_com\ivas_error.h" /> <ClInclude Include="..\lib_com\ivas_error_utils.h" /> <ClInclude Include="..\lib_com\ivas_prot.h" /> <ClInclude Include="..\lib_com\ivas_prot_fx.h" /> <ClInclude Include="..\lib_com\ivas_rom_com.h" /> <ClInclude Include="..\lib_com\ivas_stat_com.h" /> Loading
Workspace_msvc/lib_com.vcxproj.filters +0 −3 Original line number Diff line number Diff line Loading @@ -570,9 +570,6 @@ <ClInclude Include="..\lib_com\ivas_error_utils.h"> <Filter>common_h</Filter> </ClInclude> <ClInclude Include="..\lib_com\ivas_prot.h"> <Filter>common_h</Filter> </ClInclude> <ClInclude Include="..\lib_com\ivas_rom_com.h"> <Filter>common_h</Filter> </ClInclude> Loading
lib_com/prot_fx.h +126 −109 Original line number Diff line number Diff line Loading @@ -6340,77 +6340,135 @@ void td_cng_dec_init_ivas_fx( ); // wavadjust_fec_dec_fx.c void set_state( Word16 *state, Word16 num, Word16 N ); void concealment_init_x( Word16 N, void *_plcInfo ); void set_state( Word16 *state, Word16 num, Word16 N ); void concealment_init_x( Word16 N, void *_plcInfo ); void concealment_init_ivas_fx( const Word16 L_frameTCX, T_PLCInfo_HANDLE hPlcInfo ); void concealment_update_x( Word16 bfi, Word16 curr_mode, Word16 harmonic, Word32 *invkoef, Word16 *invkoef_scale, void *_plcInfo ); Word16 Sqrt_x_fast( Word32 value ); Word32 dot_w32_accuracy_x( Word16 *s1, Word16 *s2, Word16 nbits, Word16 N ); Word16 int_div_s_x( Word16 a, Word16 b ); Word16 GetW32Norm_x( Word32 *s, Word16 N ); Word16 harmo_x( Word32 *X, Word16 Framesize, Word16 pitch ); void LpFilter2_x( Word16 *x, Word16 *y, Word16 N ); void sig_tilt_x( Word16 *s, Word16 FrameSize, Word32 *enr1, Word32 *enr2 ); void get_maxConv_and_pitch_x( Word16 *s_LP, Word16 s, Word16 e, Word16 N, Word32 *maxConv, Word16 *maxConv_bits, Word16 *pitch ); Word16 get_voicing_x( Word16 *s_LP, Word16 pitch, Word32 covMax, Word16 maxConv_bits, Word16 Framesize ); void pitch_modify_x( Word16 *s_LP, Word16 *voicing, Word16 *pitch, Word16 FrameSize ); void concealment_update_x( Word16 bfi, Word16 curr_mode, Word16 harmonic, Word32 *invkoef, Word16 *invkoef_scale, void *_plcInfo ); Word16 Sqrt_x_fast( Word32 value ); Word32 dot_w32_accuracy_x( Word16 *s1, Word16 *s2, Word16 nbits, Word16 N ); Word16 int_div_s_x( Word16 a, Word16 b ); Word16 Is_Periodic_x( Word32 *mdct_data, Word16 cov_max, Word16 zp, Word32 ener, Word32 ener_mean, Word16 pitch, Word16 Framesize ); Word16 GetW32Norm_x( Word32 *s, Word16 N ); Word16 get_conv_relation_x( Word16 *s_LP, Word16 shift, Word16 N ); Word16 harmo_x( Word32 *X, Word16 Framesize, Word16 pitch ); void LpFilter2_x( Word16 *x, Word16 *y, Word16 N ); void sig_tilt_x( Word16 *s, Word16 FrameSize, Word32 *enr1, Word32 *enr2 ); void get_maxConv_and_pitch_x( Word16 *s_LP, Word16 s, Word16 e, Word16 N, Word32 *maxConv, Word16 *maxConv_bits, Word16 *pitch ); void concealment_decode_fix( Word16 curr_mode, Word32 *invkoef, Word16 *invkoef_scale, void *_plcInfo ); Word16 get_voicing_x( Word16 *s_LP, Word16 pitch, Word32 covMax, Word16 maxConv_bits, Word16 Framesize ); void pitch_modify_x( Word16 *s_LP, Word16 *voicing, Word16 *pitch, Word16 FrameSize ); Word16 Is_Periodic_x( Word32 *mdct_data, Word16 cov_max, Word16 zp, Word32 ener, Word32 ener_mean, Word16 pitch, Word16 Framesize ); Word32 Spl_Energy_x( const Word16 *vector, const Word16 vector_length, Word16 *scale_factor ); Word16 get_conv_relation_x( Word16 *s_LP, Word16 shift, Word16 N ); void Log10OfEnergy_x( const Word16 *s, Word32 *enerlogval, const Word16 len ); void concealment_decode_fix( Word16 curr_mode, Word32 *invkoef, Word16 *invkoef_scale, void *_plcInfo ); Word32 Spl_Energy_x( const Word16 *vector, const Word16 vector_length, Word16 *scale_factor ); void Log10OfEnergy_x( const Word16 *s, Word32 *enerlogval, const Word16 len ); void concealment_update2_x( const Word16 *outx_new, void *_plcInfo, const Word16 FrameSize ); void concealment_update2_x( const Word16 *outx_new, void *_plcInfo, const Word16 FrameSize ); Word16 ffr_getSfWord16( Word16 *vector, /*!< Pointer to i vector */ Word16 ffr_getSfWord16( Word16 *vector, /*!< Pointer to i vector */ Word16 len ); void waveform_adj2_fix( Word16 *overlapbuf, void waveform_adj2_fix( T_PLCInfo_HANDLE hPlcInfo, Word16 *overlapbuf, Word16 *outx_new, Word16 *data_noise, Word16 *outx_new_n1, Word16 *nsapp_gain, Word16 *nsapp_gain_n, Word16 *recovery_gain, Word16 step_concealgain, Word16 pitch, Word16 Framesize, Word16 delay, Word16 bfi_cnt, Word16 bfi ); const Word16 delay, const Word16 bfi_cnt, const Word16 bfi ); void concealment_signal_tuning_fx( Decoder_State *st, const Word16 bfi, Word16 *outx_new_fx /*Qoutx_new_fx*/, const Word16 past_core ); void concealment_signal_tuning_fx( Word16 bfi, Word16 curr_mode, Word16 *outx_new_fx, void *_plcInfo, Word16 nbLostCmpt, Word16 pre_bfi, Word16 *OverlapBuf_fx, Word16 past_core_mode, Word16 *outdata2_fx, Decoder_State *st ); // TonalComponentDetect.c /* Detect tonal components in the lastMDCTSpectrum, use * secondLastPowerSpectrum for the precise location of the peaks and * store them in indexOfTonalPeak. Updates lowerIndex, upperIndex, * pNumIndexes accordingly. */ void DetectTonalComponents( Word16 indexOfTonalPeak[], Word16 lowerIndex[], Loading @@ -6434,12 +6492,6 @@ void DetectTonalComponents( #endif ); /* When called, the tonal components are already stored in * indexOfTonalPeak. Detect tonal components in the lastMDCTSpectrum, * use secondLastPowerSpectrum for the precise location of the peaks and * then keep in indexOfTonalPeak only the tonal components that are * again detected Updates indexOfTonalPeak, lowerIndex, upperIndex, * phaseDiff, phases, pNumIndexes accordingly. */ void RefineTonalComponents( Word16 indexOfTonalPeak[], Word16 lowerIndex[], Loading Loading @@ -6537,26 +6589,13 @@ void TonalMDCTConceal_SaveFreqSignal_ivas_fx( const Word16 gain_tcx_exp, const Word16 infoIGFStartLine ); /* The call to TonalMDCTConceal_UpdateState() should be called after TonalMDCTConceal_Apply. */ TONALMDCTCONCEAL_ERROR TonalMDCTConceal_UpdateState( TonalMDCTConcealPtr self, TONALMDCTCONCEAL_ERROR TonalMDCTConceal_UpdateState( TonalMDCTConcealPtr self, Word16 nNewSamples, Word32 pitchLag, Word16 badBlock, Word8 tonalConcealmentActive ); /* The call to TonalMDCTConceal_SaveTimeSignal() should be at the * place where the TD signal corresponds to the FD signal stored with TonalMDCTConceal_SaveFreqSignal. */ void TonalMDCTConceal_SaveTimeSignal( TonalMDCTConcealPtr hTonalMDCTConc, Word16 *timeSignal, Word16 nNewSamples ); /* Calculates MDST, power spectrum and performs peak detection. * Uses the TD signal in pastTimeSignal; if pastTimeSignal is NULL, uses the * TD signal stored using TonalMDCTConceal_SaveTimeSignal. If the * second last frame was also lost, it is expected that pastTimeSignal * could hold a signal somewhat different from the one stored in * TonalMDCTConceal_SaveTimeSignal (e.g. including fade-out).*/ void TonalMDCTConceal_Detect( const TonalMDCTConcealPtr self, /*IN */ const Word32 pitchLag, /*IN */ Loading @@ -6568,9 +6607,6 @@ void TonalMDCTConceal_Detect( #endif ); /* Conceals the lost frame using the FD signal previously stored using * TonalMDCTConceal_SaveFreqSignal. Stores the concealed harmonic part of * the signal in mdctSpectrum, the rest of the spectrum is unchanged. */ void TonalMDCTConceal_Apply( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32* mdctSpectrum, /*IN/OUT*/ Loading @@ -6586,9 +6622,6 @@ void TonalMDCTConceal_Apply_ivas_fx( Word16 mdctSpectrum_exp[L_FRAME48k], /*IN */ const PsychoacousticParameters *psychParamsCurrent ); /* Conceals the lost frame using the FD signal previously stored using * TonalMDCTConceal_SaveFreqSignal. Stores the concealed noise part of * the signal in mdctSpectrum, the rest of the spectrum is unchanged. */ void TonalMDCTConceal_InsertNoise_ivas_fx( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, Loading @@ -6603,10 +6636,6 @@ void TonalMDCTConceal_InsertNoise_ivas_fx( const Word16 cngLevelBackgroundTrace_e, const Word16 crossOverFreq ); /* Conceals the lost frame using the FD signal previously stored using * TonalMDCTConceal_SaveFreqSignal. Stores the concealed noise part of * the signal in mdctSpectrum, the rest of the spectrum is unchanged. */ void TonalMDCTConceal_InsertNoise( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, /*OUT*/ Loading @@ -6619,24 +6648,12 @@ void TonalMDCTConceal_InsertNoise( const Word16concealment_noise[L_FRAME48k], #endif const Word16 crossOverFreq ); /* Conceals the lost frame using the FD signal previously stored using * TonalMDCTConceal_SaveFreqSignal. Stores the concealed harmonic part of * the signal in mdctSpectrum, the rest of the spectrum is unchanged. */ void TonalMDCTConceal_Apply( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32* mdctSpectrum, /*IN/OUT*/ Word16* mdctSpectrum_exp /*IN */ #ifdef IVAS_CODE_MDCT_GSHAPE , const PsychoacousticParameters* psychParamsCurrent) #endif ); /* The call to TonalMDCTConceal_SaveTimeSignal() should be at the * place where the TD signal corresponds to the FD signal stored with TonalMDCTConceal_SaveFreqSignal. */ void TonalMDCTConceal_SaveTimeSignal( TonalMDCTConcealPtr hTonalMDCTConc, Word16 *timeSignal, Word16 nNewSamples ); void TonalMDCTConceal_SaveTimeSignal_ivas_fx( TonalMDCTConcealPtr hTonalMDCTConc, Word16 *timeSignal, Loading
lib_dec/amr_wb_dec_fx.c +3 −5 Original line number Diff line number Diff line Loading @@ -218,7 +218,7 @@ ivas_error amr_wb_dec_fx( /* st_fx->old_out_fx, st_fx->L_frameTCX); */ FOR( i = 0; i < hTcxDec->L_frameTCX; i++ ) { hHQ_core->old_out_fx[i] = shl( mult_r( hHQ_core->old_out_fx[i], st_fx->plcInfo.recovery_gain ), 1 ); hHQ_core->old_out_fx[i] = shl( mult_r( hHQ_core->old_out_fx[i], st_fx->hPlcInfo->recovery_gain ), 1 ); move16(); } } Loading Loading @@ -963,7 +963,7 @@ ivas_error amr_wb_dec_fx( test(); test(); IF( !st_fx->bfi && st_fx->prev_bfi && GE_32( st_fx->last_total_brate, HQ_48k ) && EQ_16( st_fx->last_codec_mode, MODE2 ) && ( EQ_16( st_fx->last_core_bfi, TCX_20_CORE ) || EQ_16( st_fx->last_core_bfi, TCX_10_CORE ) ) && EQ_16( st_fx->plcInfo.concealment_method, TCX_NONTONAL ) && LT_32( st_fx->plcInfo.nbLostCmpt, 4 ) ) IF( !st_fx->bfi && st_fx->prev_bfi && GE_32( st_fx->last_total_brate, HQ_48k ) && EQ_16( st_fx->last_codec_mode, MODE2 ) && ( EQ_16( st_fx->last_core_bfi, TCX_20_CORE ) || EQ_16( st_fx->last_core_bfi, TCX_10_CORE ) ) && EQ_16( st_fx->hPlcInfo->concealment_method, TCX_NONTONAL ) && LT_32( st_fx->hPlcInfo->nbLostCmpt, 4 ) ) { waveadj_rec = 1; move16(); Loading Loading @@ -1075,9 +1075,7 @@ ivas_error amr_wb_dec_fx( move16(); } waveform_adj2_fix( st_fx->tonalMDCTconceal.secondLastPcmOut, synth_out_fx + tmps, st_fx->plcInfo.data_noise, &st_fx->plcInfo.outx_new_n1_fx, &st_fx->plcInfo.nsapp_gain_fx, &st_fx->plcInfo.nsapp_gain_n_fx, &st_fx->plcInfo.recovery_gain, st_fx->plcInfo.step_concealgain_fx, st_fx->plcInfo.Pitch_fx, st_fx->plcInfo.FrameSize, tmps, add( extract_l( st_fx->plcInfo.nbLostCmpt ), 1 ), st_fx->bfi ); waveform_adj2_fix( st_fx->hPlcInfo, st_fx->tonalMDCTconceal.secondLastPcmOut, synth_out_fx + tmps, tmps, add( extract_l( st_fx->hPlcInfo->nbLostCmpt ), 1 ), st_fx->bfi ); } /* HP filter */ Loading
lib_dec/core_dec_init_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -1029,7 +1029,7 @@ void open_decoder_LPD_fx( test(); IF( EQ_16( st->ini_frame, 0 ) || LT_32( st->last_total_brate, HQ_48k ) || EQ_16( st->last_codec_mode, MODE1 ) || st->force_lpd_reset ) { concealment_init_x( hTcxDec->L_frameTCX, &st->plcInfo ); concealment_init_x( hTcxDec->L_frameTCX, &st->hPlcInfo ); } } Loading