diff --git a/lib_com/cldfb.c b/lib_com/cldfb.c index e3d9912f2a2f978a8c954b747d017b03d2ed22f5..9083ac14f2b782020032cf950e3d6612b639335e 100644 --- a/lib_com/cldfb.c +++ b/lib_com/cldfb.c @@ -1675,21 +1675,18 @@ ivas_error openCldfb_ivas_fx( // configureCldfb_ivas( hs, sampling_rate ); configureCldfb_ivas_fx( hs, sampling_rate ); hs->memory_flt = NULL; + hs->FilterStates = NULL; hs->memory_length = 0; move16(); IF( EQ_32( type, CLDFB_ANALYSIS ) ) { buf_len = sub( hs->p_filter_length, hs->no_channels ); - hs->FilterStates = (Word16 *) malloc( ( 9 + 16 ) * CLDFB_getNumChannels( sampling_rate ) * sizeof( Word16 ) ); - hs->FilterStates_eg = 0; } ELSE { buf_len = hs->p_filter_length; move16(); - hs->FilterStates = (Word16 *) malloc( 2 * ( 9 + 16 ) * CLDFB_getNumChannels( sampling_rate ) * sizeof( Word16 ) ); - hs->FilterStates_eg = 0; } IF( ( hs->cldfb_state_fx = (Word32 *) malloc( buf_len * sizeof( Word32 ) ) ) == NULL ) @@ -2091,6 +2088,11 @@ void deleteCldfb_ivas( { free( hs->cldfb_state_fx ); } + + IF( hs->FilterStates ) + { + free( hs->FilterStates ); + } #endif free( hs ); diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 5e79a9ffc4cdb9abfd8b9ed4bfcb3a73fe928e95..6119dde7d693c9cf41ab4aefc65f9c78ae850f58 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -3043,7 +3043,7 @@ ivas_error ivas_init_decoder_fx( FOR( i = 0; i < numCldfbAnalyses; i++ ) { - IF( NE_32( ( error = openCldfb_ivas( &( st_ivas->cldfbAnaDec[i] ), CLDFB_ANALYSIS, output_Fs, CLDFB_PROTOTYPE_5_00MS ) ), IVAS_ERR_OK ) ) + IF( NE_32( ( error = openCldfb_ivas_fx( &( st_ivas->cldfbAnaDec[i] ), CLDFB_ANALYSIS, output_Fs, CLDFB_PROTOTYPE_5_00MS ) ), IVAS_ERR_OK ) ) { return error; } @@ -3055,7 +3055,7 @@ ivas_error ivas_init_decoder_fx( FOR( i = 0; i < numCldfbSyntheses; i++ ) { - IF( NE_32( ( error = openCldfb_ivas( &( st_ivas->cldfbSynDec[i] ), CLDFB_SYNTHESIS, output_Fs, CLDFB_PROTOTYPE_5_00MS ) ), IVAS_ERR_OK ) ) + IF( NE_32( ( error = openCldfb_ivas_fx( &( st_ivas->cldfbSynDec[i] ), CLDFB_SYNTHESIS, output_Fs, CLDFB_PROTOTYPE_5_00MS ) ), IVAS_ERR_OK ) ) { return error; } diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 38df6b53ffc8bc892ff46147eddd70dea01affbb..416ac4f73a399e0d174eb5e407273d5c7e6f61ad 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -3122,6 +3122,9 @@ void ivas_spar_dec_upmixer_sf_fx( * Prepare CLDFB buffers *---------------------------------------------------------------------*/ +#ifdef MSAN_FIX + set_zero_fx( &Pcm_tmp_fx[0][0], ( MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS ) * L_FRAME48k ); +#endif // MSAN_FIX /* set-up pointers */ IF( NE_32( hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_FOA ) ) { diff --git a/lib_enc/ivas_core_pre_proc_front.c b/lib_enc/ivas_core_pre_proc_front.c index 45cce0aedeeebb762e8820099c07807120ed4791..acf6568660f7be912cc2f6a635f50133e9a1dabd 100644 --- a/lib_enc/ivas_core_pre_proc_front.c +++ b/lib_enc/ivas_core_pre_proc_front.c @@ -996,7 +996,9 @@ ivas_error pre_proc_front_ivas_fx( Word32 imagBuffer_fx[CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; Word16 sf_energySum[CLDFB_NO_CHANNELS_MAX]; +#ifndef MSAN_FIX floatToFixed_arr( old_inp_12k8, old_inp_12k8_fx, 0, 496 ); +#endif // MSAN_FIX #endif /*------------------------------------------------------------------* * Initialization @@ -1352,6 +1354,7 @@ ivas_error pre_proc_front_ivas_fx( { mvr2r( new_inp_12k8, st->buf_speech_enc_flt + L_FRAME32k, L_FRAME ); } +#ifndef MSAN_FIX /*To be enabled when updations related to new_inp_12k8_fx is enabled */ #if 1 IF( EQ_16( element_mode, IVAS_CPE_DFT ) ) { @@ -1369,6 +1372,7 @@ ivas_error pre_proc_front_ivas_fx( Scale_sig( st->buf_speech_enc + L_FRAME32k, L_FRAME, 1 ); } #endif +#endif // !MSAN_FIX /*------------------------------------------------------------------* * Perform fixed preemphasis (12.8 kHz signal) through 1 - g*z^-1 *-----------------------------------------------------------------*/ @@ -1722,6 +1726,11 @@ ivas_error pre_proc_front_ivas_fx( { st->cldfbAnaEnc->scale = (Word16) ( st->cldfbAnaEnc->scale_flt * ( 1 << 8 ) ); floatToFixed_arr( st->input, st->input_fx, 0, 480 ); +#ifdef MSAN_FIX + st->lt_mean_NB_fx = (Word16) st->lt_mean_NB * ( 1 << 11 ); + st->lt_mean_WB_fx = (Word16) st->lt_mean_WB * ( 1 << 11 ); + st->lt_mean_SWB_fx = (Word16) st->lt_mean_SWB * ( 1 << 11 ); +#endif bw_detect_fx( st, st->input_fx, NULL, enerBuffer_fx, sf_energySum, ivas_format, 0 ); diff --git a/lib_enc/ivas_front_vad.c b/lib_enc/ivas_front_vad.c index 9e7eafdcd5a4e666cc0b8bd054eb28f78ce209c6..be9a837de0b93b37cd6da928182f618b2b95568f 100644 --- a/lib_enc/ivas_front_vad.c +++ b/lib_enc/ivas_front_vad.c @@ -543,7 +543,9 @@ ivas_error front_vad_spar( // Q_bands = Q_factor_arrL( fr_bands[0], 2 * NB_BANDS ); floatToFixed_arrL( fr_bands[0], fr_bands_fx[0], Q_bands + QSCALE, 2 * NB_BANDS ); floatToFixed_arrL( hFrontVad->hNoiseEst->bckr, hFrontVad->hNoiseEst->bckr_fx, Q_bands + QSCALE, NB_BANDS ); +#ifndef MSAN_FIX floatToFixed_arrL( tmpE, tmpE_fx, Q_bands + QSCALE, NB_BANDS ); +#endif hFrontVad->hNoiseEst->totalNoise_fx = (Word16) ( hFrontVad->hNoiseEst->totalNoise * ONE_IN_Q8 ); Etot_fx[0] = (Word16) ( Etot[0] * ONE_IN_Q8 ); hFrontVad->hNoiseEst->Etot_last_fx = (Word16) ( hFrontVad->hNoiseEst->Etot_last * ONE_IN_Q8 ); @@ -626,7 +628,12 @@ ivas_error front_vad_spar( Q_inp_12k8 = Q9; // Q_factor_arr( inp_12k8-M, (3 * L_FRAME / 2)+M ); floatToFixed_arr( inp_12k8 - M, inp_12k8_fx - M, Q_inp_12k8, ( 3 * L_FRAME / 2 ) + M ); +#ifdef MSAN_FIX + floatToFixed_arr( A, A_fx, Q12, ( L_FRAME / L_SUBFR ) * ( M + 1 ) ); +#else floatToFixed_arr( A, A_fx, Q12, NB_SUBFR16k * ( M + 1 ) ); +#endif // MSAN_FIX + st->mem_wsp_fx = (Word16) floatToFixed( st->mem_wsp, Q_inp_12k8 ); // find_wsp_fx( A_fx, inp_12k8_fx, wsp_fx, &st->mem_wsp_fx, TILT_FAC_FX, L_FRAME, L_LOOK_12k8, L_SUBFR, Aw_fx, GAMMA1, NB_SUBFR ); ivas_find_wsp( L_FRAME, L_SUBFR, NB_SUBFR, A_fx, Aw_fx, inp_12k8_fx, TILT_FAC_FX, wsp_fx, &st->mem_wsp_fx, GAMMA1, L_LOOK_12k8 ); @@ -767,7 +774,11 @@ ivas_error front_vad_spar( corr_shift_fx = (Word16) floatToFixed( corr_shift, Q15 ); hFrontVad->hVAD->running_avg_fx = (Word16) floatToFixed( hFrontVad->hVAD->running_avg, Q15 ); hFrontVad->hVAD->ra_deltasum_fx = (Word16) floatToFixed( hFrontVad->hVAD->ra_deltasum, Q15 ); +#ifdef MSAN_FIX + floatToFixed_arr( A, A_fx, Q12, ( L_FRAME / L_SUBFR ) * ( M + 1 ) ); +#else floatToFixed_arr( A, A_fx, Q12, NB_SUBFR16k * ( M + 1 ) ); +#endif // MSAN_FIX floatToFixed_arr( st->voicing, st->voicing_fx, Q15, 3 ); vad_param_updt_fx( st, st->pitch[1], corr_shift_fx, corr_shift_fx, A_fx, &hFrontVad, 1 ); hFrontVad->hVAD->running_avg = fixedToFloat( hFrontVad->hVAD->running_avg_fx, Q15 ); diff --git a/lib_enc/speech_music_classif.c b/lib_enc/speech_music_classif.c index 6a5aa1c4a2507a7daa086c729b113a4bc8ad2f43..8f536dbd55c174c6c65b347a21a4ec21762621ca 100644 --- a/lib_enc/speech_music_classif.c +++ b/lib_enc/speech_music_classif.c @@ -124,6 +124,9 @@ void speech_music_clas_init( #ifdef IVAS_FLOAT_FIXED hSpMusClas->dlp_mean_ST_fx = 0; hSpMusClas->dlp_var_LT_fx = 0; +#ifdef MSAN_FIX + hSpMusClas->dlp_mean_LT_fx = 0; +#endif // MSAN_FIX #endif hSpMusClas->dlp_mean_LT = 0.0f; hSpMusClas->dlp_var_LT = 0.0f; diff --git a/lib_rend/ivas_mcmasa_ana.c b/lib_rend/ivas_mcmasa_ana.c index b0c4e82a0918a267761096addd99eebb42b31cd1..531ab686e09c3140f36d4911afeba585cf492d8a 100644 --- a/lib_rend/ivas_mcmasa_ana.c +++ b/lib_rend/ivas_mcmasa_ana.c @@ -253,7 +253,7 @@ ivas_error ivas_mcmasa_ana_open( move16(); FOR( i = 0; i < hMcMasa->num_Cldfb_instances; i++ ) { - IF( NE_32( ( error = openCldfb_ivas( &( hMcMasa->cldfbAnaEnc[i] ), CLDFB_ANALYSIS, input_Fs, CLDFB_PROTOTYPE_5_00MS ) ), IVAS_ERR_OK ) ) + IF( NE_32( ( error = openCldfb_ivas_fx( &( hMcMasa->cldfbAnaEnc[i] ), CLDFB_ANALYSIS, input_Fs, CLDFB_PROTOTYPE_5_00MS ) ), IVAS_ERR_OK ) ) { return error; } diff --git a/lib_rend/ivas_omasa_ana.c b/lib_rend/ivas_omasa_ana.c index f5aa073180e9396a61f51b0c13ea5b539f1003b2..cbf60f70f65f63adf7221e19b60b24bd70e71bbb 100644 --- a/lib_rend/ivas_omasa_ana.c +++ b/lib_rend/ivas_omasa_ana.c @@ -146,7 +146,7 @@ ivas_error ivas_omasa_ana_open( hOMasa->num_Cldfb_instances = numAnalysisChannels; FOR( i = 0; i < hOMasa->num_Cldfb_instances; i++ ) { - IF( NE_32( ( error = openCldfb_ivas( &( hOMasa->cldfbAnaEnc[i] ), CLDFB_ANALYSIS, input_Fs, CLDFB_PROTOTYPE_5_00MS ) ), IVAS_ERR_OK ) ) + IF( NE_32( ( error = openCldfb_ivas_fx( &( hOMasa->cldfbAnaEnc[i] ), CLDFB_ANALYSIS, input_Fs, CLDFB_PROTOTYPE_5_00MS ) ), IVAS_ERR_OK ) ) { return error; }