Commit b611af1b authored by Markus's avatar Markus
Browse files

fixed application of IGF in case of tonal MDCT concealment

parent 6f1fdf53
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -8921,7 +8921,8 @@ void IGFDecApplyStereo(
    const Word16 *coreMsMask,
    const Word16 restrict_hopsize,
    const Word16 bfi, /* i  : frame loss == 1, frame good == 0                     */
    const Word16 bfi_apply_damping );
    const Word16 bfi_apply_damping,
    const Word16 tonalMDCTConcealment_flag);
void IGFDecSetMode(
    const IGF_DEC_INSTANCE_HANDLE hIGFDec, /* o  : instance handle of IGF Decoder      */
+3 −2
Original line number Diff line number Diff line
@@ -3643,6 +3643,7 @@ void decoder_tcx_IGF_stereo_fx(
    Word16 coreMsMask[N_MAX];
    STEREO_MDCT_BAND_PARAMETERS *sfbConf;
    Word16 core, sfb, igfGridIdx, restrict_hopsize;
    Word16 tonalMDCTConcealment_flag = (sts[0]->hTonalMDCTConc != NULL);

    core = sts[0]->core;
    move16();
@@ -3750,7 +3751,7 @@ void decoder_tcx_IGF_stereo_fx(
            move16();
        }

        IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x_fx[0][k], &x_e[0][k], x_fx[1][k], &x_e[1][k], igfGridIdx, coreMsMask, restrict_hopsize, bfi, MCT_flag );
        IGFDecApplyStereo(sts[0]->hIGFDec, sts[1]->hIGFDec, x_fx[0][k], &x_e[0][k], x_fx[1][k], &x_e[1][k], igfGridIdx, coreMsMask, restrict_hopsize, bfi, MCT_flag, tonalMDCTConcealment_flag);

        x_len[0][k] = sts[0]->hIGFDec->igfData.igfInfo.grid[igfGridIdx].stopLine;
        move16();
+5 −3
Original line number Diff line number Diff line
@@ -3694,7 +3694,8 @@ void IGFDecApplyStereo(
    const Word16 *coreMsMask,
    const Word16 restrict_hopsize,
    const Word16 bfi, /* i  : frame loss == 1, frame good == 0                     */
    const Word16 bfi_apply_damping )
    const Word16 bfi_apply_damping,
    const Word16 tonalMDCTConcealment_flag)
{
    IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR;
    H_IGF_GRID hGrid;
@@ -3793,9 +3794,10 @@ void IGFDecApplyStereo(
        move16();
    }

    /* skip IGF processing if all IGF levels are zero */
    /* skip IGF processing if all IGF levels are zero or tonal MDCT concealment is active*/
    test();
    IF( !hIGFDecL->infoIGFAllZero || !hIGFDecR->infoIGFAllZero )

    IF(!(tonalMDCTConcealment_flag & bfi) && (!hIGFDecL->infoIGFAllZero || !hIGFDecR->infoIGFAllZero))
    {
        FOR( i = 0; i < hGrid->nTiles; i++ )
        {