Commit f562a8b1 authored by Jan Kiene's avatar Jan Kiene
Browse files

still apply IGF gain fading for MCT modes

parent 9269bd50
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -2051,7 +2051,12 @@ void decoder_tcx_IGF_stereo(
    const int16_t L_frame,                                      /* i  : frame length                            */
    const int16_t left_rect,                                    /* i  : left part is rectangular                */
    const int16_t k,                                            /* i  : Subframe index                          */
#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE
    const int16_t bfi,                                          /* i  : bad frame indicator                     */
    const int16_t is_mct                                        /* i  : flag to signal MCT or SMDCT                         */
#else
    const int16_t bfi                                           /* i  : bad frame indicator                     */
#endif
);

void ms_processing(
@@ -2086,7 +2091,7 @@ void IGFDecApplyStereo(
    const int16_t restrict_hopsize,
#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE
    const int16_t bfi,                                          /* i  : frame loss == 1, frame good == 0        */
    const int16_t element_mode                                  /* i  : decoder element mode                    */
    const int16_t apply_damping_bfi                                  /* i  : decoder element mode                    */
#else
    const int16_t bfi                                           /* i  : frame loss == 1, frame good == 0        */
#endif
+7 −2
Original line number Diff line number Diff line
@@ -1927,7 +1927,12 @@ void decoder_tcx_IGF_stereo(
    const int16_t L_frame,                   /* i  : frame length                */
    const int16_t left_rect,                 /* i  : left part is rectangular    */
    const int16_t k,                         /* i  : Subframe index              */
    const int16_t bfi                        /* i  : bad frame indicator         */
#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE
    const int16_t bfi,                       /* i  : bad frame indicator         */
    const int16_t is_mct                     /* i  : flag to signal MCT or SMDCT */
#else
    const int16_t bfi,                       /* i  : bad frame indicator         */
#endif
)
{
    int16_t coreMsMask[N_MAX];
@@ -1981,7 +1986,7 @@ void decoder_tcx_IGF_stereo(
        }

#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE
        IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, sts[0]->element_mode );
        IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, is_mct );
#else
        IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi );
#endif
+3 −3
Original line number Diff line number Diff line
@@ -1253,7 +1253,7 @@ void IGFDecApplyStereo(
    const int16_t restrict_hopsize,
#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE
    const int16_t bfi, /* i  : frame loss == 1, frame good == 0                     */
    const int16_t element_mode
    const int16_t apply_damping_bfi
#else
    const int16_t bfi /* i  : frame loss == 1, frame good == 0                     */
#endif
@@ -1354,8 +1354,8 @@ void IGFDecApplyStereo(
        IGF_calc( hPrivateDataL, igfGridIdx, spectrumL, igf_specL );
        IGF_calc( hPrivateDataR, igfGridIdx, spectrumR, igf_specR );
#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE
        IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, element_mode != IVAS_CPE_MDCT );
        IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, element_mode != IVAS_CPE_MDCT );
        IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, apply_damping_bfi );
        IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, apply_damping_bfi );
#else
        IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse );
        IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse );
+4 −0
Original line number Diff line number Diff line
@@ -283,7 +283,11 @@ void mctStereoIGF_dec(
                /* stereo IGF decoding */
                assert( ( sts[0]->core == sts[1]->core ) || ( hMCT->hBlockData[b]->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) );

#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE
                decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi, 1 /* <- is_mct */ );
#else
                decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi );
#endif
            }
            else
            {
+4 −0
Original line number Diff line number Diff line
@@ -299,7 +299,11 @@ void stereo_mdct_core_dec(
                    assert( ( sts[0]->core == sts[1]->core ) || ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) );

                    /* stereo IGF decoding */
#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE
                    decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi, 0 /* <- is_mct */ );
#else
                    decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi );
#endif
                }
                else
                {