Commit 0a4e9134 authored by vaclav's avatar vaclav
Browse files

harmonize 'hPlcInfo'

parent 1fccd069
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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" />
+0 −3
Original line number Diff line number Diff line
@@ -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>
+126 −109
Original line number Diff line number Diff line
@@ -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[],
@@ -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[],
@@ -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 */
@@ -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*/
@@ -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,
@@ -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*/
@@ -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,
+3 −5
Original line number Diff line number Diff line
@@ -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();
        }
    }
@@ -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();
@@ -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 */
+1 −1
Original line number Diff line number Diff line
@@ -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