Commit a3f83a24 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Address crash observed with EVS decoder

Due to some initialization missed with IGF related changes, EVS crashes
were observed. This issue is fixed with this commit.
parent d4e0c65f
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1603,6 +1603,9 @@ void init_igf_dec_flt(
    hIGFDec->igfData.igfInfo.nfSeedBuf[1] = 9733;
    hIGFDec->igfData.igfInfo.nfSeed = &hIGFDec->igfData.igfInfo.nfSeedBuf[0];
    hIGFDec->igfData.pSpecFlat_float = &hIGFDec->igfData.pSpecFlatBuf[0];
#ifdef IVAS_FLOAT_FIXED
    hIGFDec->igfData.pSpecFlat = &hIGFDec->igfData.pSpecFlatBuf_fx[0];
#endif
    hIGFDec->flag_sparse = &hIGFDec->flag_sparseBuf[0];
    hIGFDec->infoTCXNoise = &hIGFDec->infoTCXNoiseBuf[0];
    hIGFDec->virtualSpec_float = &hIGFDec->virtualSpecBuf[0];
+23 −3
Original line number Diff line number Diff line
@@ -3419,6 +3419,11 @@ void init_igf_dec(
    IGF_DEC_INSTANCE_HANDLE hIGFDec /* i/o: IGF decoder handle      */
)
{
    set16_fx( (Word16 *) hIGFDec, 0, ( sizeof( IGFDEC_INSTANCE ) ) / sizeof( Word16 ) );
    hIGFDec->igfData.igfInfo.nfSeedBuf[0] = 9733;
    hIGFDec->igfData.igfInfo.nfSeedBuf[1] = 9733;
    hIGFDec->igfData.igfInfo.nfSeed = &hIGFDec->igfData.igfInfo.nfSeedBuf[0];

    set16_fx( hIGFDec->infoTCXNoise_evs, 0, IGF_START_MX );
    set16_fx( hIGFDec->flag_sparseBuf, 0, N_MAX_TCX - IGF_START_MN );
    set32_fx( hIGFDec->virtualSpec, 0, N_MAX_TCX - IGF_START_MN );
@@ -3440,6 +3445,21 @@ void init_igf_dec(
    hIGFDec->infoIGFStartLine = -1;
    move16();

    set_f( hIGFDec->igfData.pSpecFlatBuf, 0, IGF_START_MX );
#ifdef IVAS_FLOAT_FIXED
    set32_fx( hIGFDec->igfData.pSpecFlatBuf_fx, 0, IGF_START_MX );
#endif
    hIGFDec->igfData.pSpecFlat_float = &hIGFDec->igfData.pSpecFlatBuf[0];
#ifdef IVAS_FLOAT_FIXED
    hIGFDec->igfData.pSpecFlat = &hIGFDec->igfData.pSpecFlatBuf_fx[0];
#endif
    hIGFDec->flag_sparse = &hIGFDec->flag_sparseBuf[0];
    hIGFDec->infoTCXNoise = &hIGFDec->infoTCXNoiseBuf[0];
    hIGFDec->virtualSpec_float = &hIGFDec->virtualSpecBuf[0];
#ifdef IVAS_FLOAT_FIXED
    hIGFDec->virtualSpec_fx = &hIGFDec->virtualSpec[0];
#endif

    return;
}

+3 −6
Original line number Diff line number Diff line
@@ -150,13 +150,10 @@ ivas_error init_decoder_fx(
        }

        st_fx->igf = 0;
        //init_igf_dec(st_fx->hIGFDec);
        set16_fx((Word16*)st_fx->hIGFDec, 0, (sizeof(IGFDEC_INSTANCE) ) / sizeof(Word16));
        st_fx->hIGFDec->igfData.igfInfo.nfSeedBuf[0] = 9733;
        st_fx->hIGFDec->igfData.igfInfo.nfSeedBuf[1] = 9733;
        st_fx->hIGFDec->igfData.igfInfo.nfSeed = &st_fx->hIGFDec->igfData.igfInfo.nfSeedBuf[0];
        move16();
        init_igf_dec( st_fx->hIGFDec );
    }
    else
    ELSE
    {
        st_fx->hIGFDec = NULL;
    }