Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,8 @@ #define FIX_1111_TDM_LSP_BUFFER /* VA: issue 1111: remove unused buffer `tdm_lspQ_PCh[]' */ #define NONBE_1325_TD_STEREO_QUANT_LSF_SEC /* Nokia: issue 1325: fix for usage of active_cnt variable in TD stereo LSFQ */ #define NONBE_1329_FIX_OSBA_CRASH /* FhG: issue 1329: prevent assert when bit budget is low*/ /* #################### End BASOP porting switches ############################ */ Loading lib_enc/ivas_stereo_mdct_stereo_enc_fx.c +23 −8 Original line number Diff line number Diff line Loading @@ -472,6 +472,19 @@ void stereo_coder_tcx_fx( nAvailBitsMS[k] = idiv1616( nAvailBitsMS[k], nSubframes ); /* Q0 */ move16(); #ifdef NONBE_1329_FIX_OSBA_CRASH test(); IF( mct_on && LE_16( nAvailBitsMS[k], 0 ) ) /*Force M/S when bit-budget is low for MCT*/ { hStereoMdct->mdct_stereo_mode[k] = 1; move16(); hStereoMdct->IGFStereoMode[k] = 1; move16(); set16_fx( ms_mask[k], 1, sfbConf->sfbCnt ); } ELSE { #endif MsStereoDecision_fx( sfbConf, sts[0]->hTcxEnc->spectrum_fx[k], sts[1]->hTcxEnc->spectrum_fx[k], inv_spectrum_fx[0][k], inv_spectrum_fx[1][k], sub( Q31, exp_spec ), &hStereoMdct->mdct_stereo_mode[k], &ms_mask[k][0], nAvailBitsMS[k] ); IF( sts[0]->igf ) Loading @@ -484,7 +497,9 @@ void stereo_coder_tcx_fx( hStereoMdct->IGFStereoMode[k] = hStereoMdct->mdct_stereo_mode[k]; move16(); } #ifdef NONBE_1329_FIX_OSBA_CRASH } #endif IF( NE_16( hStereoMdct->mdct_stereo_mode[k], SMDCT_DUAL_MONO ) || NE_16( hStereoMdct->IGFStereoMode[k], SMDCT_DUAL_MONO ) ) { Loading Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,8 @@ #define FIX_1111_TDM_LSP_BUFFER /* VA: issue 1111: remove unused buffer `tdm_lspQ_PCh[]' */ #define NONBE_1325_TD_STEREO_QUANT_LSF_SEC /* Nokia: issue 1325: fix for usage of active_cnt variable in TD stereo LSFQ */ #define NONBE_1329_FIX_OSBA_CRASH /* FhG: issue 1329: prevent assert when bit budget is low*/ /* #################### End BASOP porting switches ############################ */ Loading
lib_enc/ivas_stereo_mdct_stereo_enc_fx.c +23 −8 Original line number Diff line number Diff line Loading @@ -472,6 +472,19 @@ void stereo_coder_tcx_fx( nAvailBitsMS[k] = idiv1616( nAvailBitsMS[k], nSubframes ); /* Q0 */ move16(); #ifdef NONBE_1329_FIX_OSBA_CRASH test(); IF( mct_on && LE_16( nAvailBitsMS[k], 0 ) ) /*Force M/S when bit-budget is low for MCT*/ { hStereoMdct->mdct_stereo_mode[k] = 1; move16(); hStereoMdct->IGFStereoMode[k] = 1; move16(); set16_fx( ms_mask[k], 1, sfbConf->sfbCnt ); } ELSE { #endif MsStereoDecision_fx( sfbConf, sts[0]->hTcxEnc->spectrum_fx[k], sts[1]->hTcxEnc->spectrum_fx[k], inv_spectrum_fx[0][k], inv_spectrum_fx[1][k], sub( Q31, exp_spec ), &hStereoMdct->mdct_stereo_mode[k], &ms_mask[k][0], nAvailBitsMS[k] ); IF( sts[0]->igf ) Loading @@ -484,7 +497,9 @@ void stereo_coder_tcx_fx( hStereoMdct->IGFStereoMode[k] = hStereoMdct->mdct_stereo_mode[k]; move16(); } #ifdef NONBE_1329_FIX_OSBA_CRASH } #endif IF( NE_16( hStereoMdct->mdct_stereo_mode[k], SMDCT_DUAL_MONO ) || NE_16( hStereoMdct->IGFStereoMode[k], SMDCT_DUAL_MONO ) ) { Loading