Commit 6c830ca2 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

MSAN fixes for issues in multichannel and masa formats cases.

parent a8cda446
Loading
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -662,8 +662,13 @@ static void ivas_mc_paramupmix_dec_sf(
    int16_t noparamupmix_delay, n_samples_rendered;
    MC_PARAMUPMIX_DEC_HANDLE hMCParamUpmix;
    int16_t subframeIdx, idx_in, maxBand;
#ifdef MSAN_FIX
    Word32 Cldfb_RealBuffer_subfr_fx[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX] = { 0 };
    Word32 Cldfb_ImagBuffer_subfr_fx[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX] = { 0 };
#else
    Word32 Cldfb_RealBuffer_subfr_fx[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
    Word32 Cldfb_ImagBuffer_subfr_fx[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
#endif // MSAN_FIX
    Word32 Cldfb_RealBuffer_Binaural_fx[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
    Word32 Cldfb_ImagBuffer_Binaural_fx[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];

+9 −0
Original line number Diff line number Diff line
@@ -936,6 +936,10 @@ void ivas_mdct_core_invQ_fx(
    {
        spectralData_tmp[k] = malloc( N_MAX * sizeof( Word32 ) );
    }
#ifdef MSAN_FIX
    set32_fx( spectralData_tmp[0], 0, L_FRAME_MAX );
    set32_fx( spectralData_tmp[1], 0, L_FRAME_MAX );
#endif // MSAN_FIX

    push_wmops( "mdct_core_invQ" );
    sts = hCPE->hCoreCoder;
@@ -976,8 +980,13 @@ void ivas_mdct_core_invQ_fx(

        common_exp = s_max( sts[0]->hTonalMDCTConc->lastBlockData.spectralData_exp, sts[1]->hTonalMDCTConc->lastBlockData.spectralData_exp );

#ifdef MSAN_FIX
        Copy_Scale_sig_16_32( sts[0]->hTonalMDCTConc->lastBlockData.spectralData, spectralData_tmp[0], L_frameTCX[0], 15 - ( common_exp - sts[0]->hTonalMDCTConc->lastBlockData.spectralData_exp ) ); // 30 - spectral_exp1
        Copy_Scale_sig_16_32( sts[1]->hTonalMDCTConc->lastBlockData.spectralData, spectralData_tmp[1], L_frameTCX[1], 15 - ( common_exp - sts[1]->hTonalMDCTConc->lastBlockData.spectralData_exp ) ); // 30 - spectral_exp2
#else
        Copy_Scale_sig_16_32( sts[0]->hTonalMDCTConc->lastBlockData.spectralData, spectralData_tmp[0], L_FRAME_MAX, 15 - ( common_exp - sts[0]->hTonalMDCTConc->lastBlockData.spectralData_exp ) ); // 30 - spectral_exp1
        Copy_Scale_sig_16_32( sts[1]->hTonalMDCTConc->lastBlockData.spectralData, spectralData_tmp[1], L_FRAME_MAX, 15 - ( common_exp - sts[1]->hTonalMDCTConc->lastBlockData.spectralData_exp ) ); // 30 - spectral_exp2
#endif // MSAN_FIX

        sts[0]->hTonalMDCTConc->lastBlockData.spectralData_exp = sts[1]->hTonalMDCTConc->lastBlockData.spectralData_exp = common_exp;
        move16();
+3 −0
Original line number Diff line number Diff line
@@ -399,6 +399,9 @@ ivas_error stereo_dft_dec_create_fx(
    {
        return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for TCX-LTP handle\n" ) );
    }
#ifdef MSAN_FIX
    set_zero_fx( hStereoDft_loc->hb_nrg_subr_fx, STEREO_DFT_NBDIV );/*Setting hb_nrg_subr_fx to zero*/
#endif // MSAN_FIX

    hStereoDft_loc->hConfig->force_mono_transmission = 0;
    move16();
+6 −0
Original line number Diff line number Diff line
@@ -770,14 +770,20 @@ void stereo_tcx_core_dec_fx(
    st->last_is_cng = 0;

    /* Postfiltering */
#ifndef MSAN_FIX
    IF( st->p_bpf_noise_buf_32 )
    {
        Copy_Scale_sig_32_16( st->p_bpf_noise_buf_32, st->p_bpf_noise_buf, st->L_frame, negate( Q11 ) );
    }
#endif

    post_decoder( st, synth_buf_fx, pit_gain_fx, pitch, signal_out_fx, st->p_bpf_noise_buf );

#ifdef MSAN_FIX
    IF( st->p_bpf_noise_buf_32 && st->tcxonly == 0)
#else
    IF( st->p_bpf_noise_buf_32 )
#endif // MSAN_FIX
    {
        Copy_Scale_sig_16_32_no_sat( st->p_bpf_noise_buf, st->p_bpf_noise_buf_32, st->L_frame, Q11 );
    }
+4 −0
Original line number Diff line number Diff line
@@ -721,7 +721,11 @@ static void ivas_CalcPowerSpecAndDetectTonalComponents_fx(
    Word16 nSamples;
    Word16 i;
    Word16 floorPowerSpectrum; /* Minimum significant value of a spectral line in the power spectrum */
#ifdef MSAN_FIX
    Word32 powerSpectrum[L_FRAME_MAX] = { 0 };
#else
    Word32 powerSpectrum[L_FRAME_MAX];
#endif
    Word16 invScaleFactors[FDNS_NPTS];
    Word16 invScaleFactors_exp[FDNS_NPTS];
    Word16 powerSpectrum_exp, tmp_exp, old_exp;