Commit bceb0b76 authored by Markus's avatar Markus
Browse files

As in fade out, set spectrum from last block to zero above the crossover...

As in fade out, set spectrum from last block to zero above the crossover frequency in first concealed frame
parent b611af1b
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -8921,8 +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 tonalMDCTConcealment_flag);
    const Word16 bfi_apply_damping);
void IGFDecSetMode(
    const IGF_DEC_INSTANCE_HANDLE hIGFDec, /* o  : instance handle of IGF Decoder      */
+1 −2
Original line number Diff line number Diff line
@@ -3643,7 +3643,6 @@ 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();
@@ -3751,7 +3750,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, tonalMDCTConcealment_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);

        x_len[0][k] = sts[0]->hIGFDec->igfData.igfInfo.grid[igfGridIdx].stopLine;
        move16();
+3 −4
Original line number Diff line number Diff line
@@ -3694,8 +3694,7 @@ 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 tonalMDCTConcealment_flag)
    const Word16 bfi_apply_damping)
{
    IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR;
    H_IGF_GRID hGrid;
@@ -3794,10 +3793,10 @@ void IGFDecApplyStereo(
        move16();
    }

    /* skip IGF processing if all IGF levels are zero or tonal MDCT concealment is active*/
    /* skip IGF processing if all IGF levels are zero */
    test();

    IF(!(tonalMDCTConcealment_flag & bfi) && (!hIGFDecL->infoIGFAllZero || !hIGFDecR->infoIGFAllZero))
    IF(!hIGFDecL->infoIGFAllZero || !hIGFDecR->infoIGFAllZero)
    {
        FOR( i = 0; i < hGrid->nTiles; i++ )
        {
+1 −1
Original line number Diff line number Diff line
@@ -1486,7 +1486,7 @@ void TonalMDCTConceal_InsertNoise_ivas_fx(

                FOR( l = crossOverFreq; l < hTonalMDCTConc->lastBlockData.nSamples; l++ )
                {
                    mdctSpectrum[l] = L_shl( L_deposit_l( hTonalMDCTConc->lastBlockData.spectralData[l] ), 16 ); // Q31-spectralData_exp
                    mdctSpectrum[i] = 0;
                    move32();
                }