diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index f89e6c054f8f0b322db5fd1fd21a87df2be7d6ea..6aa3b40e24c3fd08711bd5fa073fc09abb8e728a 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -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]; diff --git a/lib_dec/igf_dec_fx.c b/lib_dec/igf_dec_fx.c index 3fc8fe0956034c22472a5c4216ec5f2829a7e06f..c90968534a1ec403d0fd97cf4c4bb0c5f5d37e43 100644 --- a/lib_dec/igf_dec_fx.c +++ b/lib_dec/igf_dec_fx.c @@ -3419,9 +3419,14 @@ void init_igf_dec( IGF_DEC_INSTANCE_HANDLE hIGFDec /* i/o: IGF decoder handle */ ) { - 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); + 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 ); hIGFDec->virtualSpec_e = 0; hIGFDec->infoIGFStopFreq = -1; move16(); @@ -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; } diff --git a/lib_dec/init_dec_fx.c b/lib_dec/init_dec_fx.c index 2b9f8ab9d56b1bfe964c26574b7e33feb2c12cbc..cfdf40c984b4c9605d319fbe94ef87017ea490d7 100644 --- a/lib_dec/init_dec_fx.c +++ b/lib_dec/init_dec_fx.c @@ -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; }