Commit de951741 authored by multrus's avatar multrus
Browse files

[cleanup] accept FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS

parent 72f6a053
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -144,7 +144,6 @@
#define DISABLE_ADAP_RES_COD_TMP                        /* temporary fix for IVAS-403, disables adaptive residual coding */
/*#define ITD_WINNER_GAIN_MODIFY */                     /* ITD optimization - WORK IN PROGRESS */
/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */
#define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS              /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */
#define SBA_BR_SWITCHING_2                              /* Issue 114: Changes for sba bit rate switching with reconfigurations*/
#define SBA_BR_SWITCHING                                /* Issue 114: Changes for sba bit rate switching*/
#define FIX_ITD                                         /* Contribution 16: TD renderer ITD improvement and code cleanup */
+0 −6
Original line number Diff line number Diff line
@@ -152,11 +152,7 @@ void decoder_tcx_post(
    if ( bfi && !st->use_partial_copy )
    {
        /* run lpc gain compensation not for waveform adjustment */
#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS
        if ( !st->enablePlcWaveadjust || ( st->hPlcInfo != NULL && st->hPlcInfo->concealment_method == TCX_TONAL ) )
#else
        if ( !st->enablePlcWaveadjust || st->hPlcInfo->concealment_method == TCX_TONAL )
#endif
        {
            float gainHelperFB = hTcxDec->gainHelper;
            float stepCompensateFB = hTcxDec->stepCompensate * st->L_frame / hTcxDec->L_frameTCX;
@@ -334,12 +330,10 @@ void IMDCT(
    /* number of zero for ALDO windows*/
    nz = NS2SA( st->output_Fs, N_ZERO_MDCT_NS ) * L_frame / L_frameTCX;

#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS
    if ( st->element_mode != EVS_MONO && frame_cnt == 0 && !bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && !hTcxCfg->last_aldo )
    {
        v_multc( old_syn_overl, hTcxDec->conceal_eof_gain * st->last_concealed_gain_syn_deemph, old_syn_overl, overlap );
    }
#endif

    if ( ( L_frameTCX == hTcxDec->L_frameTCX >> 1 || st->mct_chan_mode == MCT_CHAN_MODE_LFE ) && ( st->tcxonly ) )
    {
+0 −7
Original line number Diff line number Diff line
@@ -661,11 +661,7 @@ ivas_error init_decoder(
     * Mode 2 initialization
     *-----------------------------------------------------------------*/

#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS
    if ( st->element_mode == EVS_MONO )
#else
    if ( idchan == 0 && st->element_mode != IVAS_CPE_MDCT )
#endif
    {
        if ( ( st->hPlcInfo = (T_PLCInfo_HANDLE) count_malloc( sizeof( T_PLCInfo ) ) ) == NULL )
        {
@@ -689,9 +685,6 @@ ivas_error init_decoder(
        st->hTECDec = NULL;
    }

#ifndef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS // the initialziation is done in open_decoder_LPD()
    st->enablePlcWaveadjust = 0;
#endif
    /* Init Core Decoder */
    open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, st->element_mode, 1 );

+0 −23
Original line number Diff line number Diff line
@@ -181,34 +181,11 @@ ivas_error ivas_core_dec(
            st->flagGuidedAcelp = 0;
        }

#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS
        if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->hTcxDec != NULL )
        {
            v_multc( st->hHQ_core->old_out, st->hTcxDec->conceal_eof_gain * st->last_concealed_gain_syn_deemph, st->hHQ_core->old_out, st->hTcxDec->L_frameTCX );
            v_multc( st->hHQ_core->old_outLB, st->hTcxDec->conceal_eof_gain * st->last_concealed_gain_syn_deemph, st->hHQ_core->old_outLB, st->L_frame );
        }
#else
        /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */
        if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) )
        {
            float gain;

            gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain
                                                                                                                    : 0.0f;

            if ( ( st->element_mode == IVAS_CPE_MDCT && hMCT == NULL ) || ( st->hPlcInfo != NULL ) )
            {
                v_multc( st->hHQ_core->old_out, gain, st->hHQ_core->old_out, st->hTcxDec->L_frameTCX );
                v_multc( st->hHQ_core->old_outLB, gain, st->hHQ_core->old_outLB, st->L_frame );

                if ( !st->hTcxCfg->last_aldo && st->hTcxDec != NULL )
                {
                    v_multc( st->hTcxDec->syn_OverlFB, gain, st->hTcxDec->syn_OverlFB, st->hTcxCfg->tcx_mdct_window_lengthFB );
                    v_multc( st->hTcxDec->syn_Overl, gain, st->hTcxDec->syn_Overl, st->hTcxCfg->tcx_mdct_window_length );
                }
            }
        }
#endif

        set_f( voice_factors[n], 0.f, NB_SUBFR16k );
        set_f( hb_synth[n], 0.0f, L_FRAME48k );