Loading lib_dec/ivas_dirac_dec_fx.c +11 −1 Original line number Diff line number Diff line Loading @@ -2808,15 +2808,25 @@ void ivas_dirac_dec_render_sf_fx( } #ifdef OMASA_OBJECT_EDITING IF( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ ) IF( EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_PARAM_ONE_OBJ ) ) { #ifdef FIX_1319_STACK_SBA_DECODER ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( st_ivas, Cldfb_RealBuffer_Binaural_fx[0], Cldfb_ImagBuffer_Binaural_fx[0], &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx ); #else ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( st_ivas, Cldfb_RealBuffer_Temp_fx, Cldfb_ImagBuffer_Temp_fx, &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx ); #endif } #else test(); IF( ( NE_16( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) && NE_16( st_ivas->ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) ) ) { #ifdef FIX_1319_STACK_SBA_DECODER ivas_omasa_preProcessStereoTransportsForMovedObjects_fx( st_ivas, Cldfb_RealBuffer_Binaural_fx[0], Cldfb_ImagBuffer_Binaural_fx[0], &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx ); #else ivas_omasa_preProcessStereoTransportsForMovedObjects_fx( st_ivas, Cldfb_RealBuffer_Temp_fx, Cldfb_ImagBuffer_Temp_fx, &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx ); #endif } #endif } FOR( slot_idx = 0; slot_idx < hSpatParamRendCom->subframe_nbslots[subframe_idx]; slot_idx++ ) Loading lib_dec/ivas_omasa_dec_fx.c +14 −2 Original line number Diff line number Diff line Loading @@ -328,26 +328,37 @@ ivas_error ivas_omasa_data_open_fx( } #ifdef OMASA_OBJECT_EDITING FOR( int16_t band_idx = 0; band_idx < MASA_FREQUENCY_BANDS; band_idx++ ) FOR( Word16 band_idx = 0; band_idx < MASA_FREQUENCY_BANDS; band_idx++ ) { FOR( ch = 0; ch < 2; ch++ ) { hMasaIsmData->ismPreprocMatrix_fx[ch][ch][band_idx] = ONE_IN_Q28; hMasaIsmData->ismPreprocMatrix_fx[1 - ch][ch][band_idx] = 0; move32(); hMasaIsmData->ismPreprocMatrix_fx[sub(1, ch)][ch][band_idx] = 0; move32(); hMasaIsmData->eneMoveIIR_fx[ch][band_idx] = 0; move32(); hMasaIsmData->eneMoveIIR_e[ch][band_idx] = 0; move16(); hMasaIsmData->enePreserveIIR_fx[ch][band_idx] = 0; move32(); hMasaIsmData->enePreserveIIR_e[ch][band_idx] = 0; move16(); } hMasaIsmData->eneOrigIIR_fx[band_idx] = 0; move32(); hMasaIsmData->eneOrigIIR_e[band_idx] = 0; move16(); hMasaIsmData->preprocEneTarget_fx[band_idx] = 0; move32(); hMasaIsmData->preprocEneRealized_fx[band_idx] = 0; move32(); } hMasaIsmData->objectsEdited_fx = 0; move32(); #else FOR( bin = 0; bin < CLDFB_NO_CHANNELS_MAX; bin++ ) { Loading Loading @@ -392,6 +403,7 @@ ivas_error ivas_omasa_data_open_fx( #ifdef OMASA_OBJECT_EDITING hMasaIsmData->masa_gain_is_edited_fx = 0; hMasaIsmData->idx_separated_ism = -1; move16(); #endif FOR( obj_idx = 0; obj_idx < MAX_NUM_OBJECTS; obj_idx++ ) Loading lib_dec/ivas_stat_dec.h +1 −1 Original line number Diff line number Diff line Loading @@ -981,7 +981,7 @@ typedef struct ivas_masa_ism_data_structure #else Word16 azimuth_ism_edited[MAX_NUM_OBJECTS]; Word16 elevation_ism_edited[MAX_NUM_OBJECTS]; UWord8 ism_is_edited[MAX_NUM_OBJECTS]; // UWord8 ism_is_edited[MAX_NUM_OBJECTS]; #endif Word16 idx_separated_ism; Loading lib_rend/ivas_dirac_dec_binaural_functions_fx.c +11 −7 Original line number Diff line number Diff line Loading @@ -5471,7 +5471,7 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( move16(); /* Bypass processing until first object is moved or gained */ IF( hMasaIsmData->objectsEdited_fx == 0 ) IF( EQ_32( hMasaIsmData->objectsEdited_fx, 0 ) ) { FOR( ismDirIndex = 0; ismDirIndex < n_ism; ismDirIndex++ ) { Loading @@ -5494,7 +5494,7 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( move16(); } IF( hMasaIsmData->objectsEdited_fx == 0 ) IF( EQ_32( hMasaIsmData->objectsEdited_fx, 0 ) ) { /* No objects have moved so far */ return; Loading Loading @@ -5570,25 +5570,26 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( { ismPreprocMtxNew[ch][ch] = ONE_IN_Q28; move32(); ismPreprocMtxNew[1 - ch][ch] = 0; ismPreprocMtxNew[sub( 1, ch )][ch] = 0; move32(); } /* Determine the highest band */ max_band = 0; move16(); test(); WHILE( sub( MAX_PARAM_ISM_NBANDS, max_band ) > 0 && sub( nBins, hParamIsmDec->hParamIsm->band_grouping[max_band] ) > 0 ) { max_band++; } /* Init out array */ FOR( Word16 k = 0; k < nSlots; k++ ) FOR( slot = 0; slot < nSlots; slot++ ) { FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { set32_fx( outSlotRe[ch][k], 0, CLDFB_NO_CHANNELS_MAX ); set32_fx( outSlotIm[ch][k], 0, CLDFB_NO_CHANNELS_MAX ); set32_fx( outSlotRe[ch][slot], 0, CLDFB_NO_CHANNELS_MAX ); set32_fx( outSlotIm[ch][slot], 0, CLDFB_NO_CHANNELS_MAX ); } } Loading Loading @@ -5695,15 +5696,18 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( ELSE { temp = 0; move32(); } IF( GT_32( ONE_IN_Q30, temp ) ) { eqVal = temp; move32(); } ELSE { eqVal = ONE_IN_Q30; // 4 in Q28 move32(); } FOR( ch = 0; ch < 2; ch++ ) Loading Loading @@ -5777,7 +5781,7 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( temp = 0; move32(); gainMasaPow2 = 0; gainMasaPow2 = ONE_IN_Q9; move16(); IF( masaGainEdited ) { Loading Loading
lib_dec/ivas_dirac_dec_fx.c +11 −1 Original line number Diff line number Diff line Loading @@ -2808,15 +2808,25 @@ void ivas_dirac_dec_render_sf_fx( } #ifdef OMASA_OBJECT_EDITING IF( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ ) IF( EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_PARAM_ONE_OBJ ) ) { #ifdef FIX_1319_STACK_SBA_DECODER ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( st_ivas, Cldfb_RealBuffer_Binaural_fx[0], Cldfb_ImagBuffer_Binaural_fx[0], &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx ); #else ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( st_ivas, Cldfb_RealBuffer_Temp_fx, Cldfb_ImagBuffer_Temp_fx, &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx ); #endif } #else test(); IF( ( NE_16( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) && NE_16( st_ivas->ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) ) ) { #ifdef FIX_1319_STACK_SBA_DECODER ivas_omasa_preProcessStereoTransportsForMovedObjects_fx( st_ivas, Cldfb_RealBuffer_Binaural_fx[0], Cldfb_ImagBuffer_Binaural_fx[0], &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx ); #else ivas_omasa_preProcessStereoTransportsForMovedObjects_fx( st_ivas, Cldfb_RealBuffer_Temp_fx, Cldfb_ImagBuffer_Temp_fx, &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx ); #endif } #endif } FOR( slot_idx = 0; slot_idx < hSpatParamRendCom->subframe_nbslots[subframe_idx]; slot_idx++ ) Loading
lib_dec/ivas_omasa_dec_fx.c +14 −2 Original line number Diff line number Diff line Loading @@ -328,26 +328,37 @@ ivas_error ivas_omasa_data_open_fx( } #ifdef OMASA_OBJECT_EDITING FOR( int16_t band_idx = 0; band_idx < MASA_FREQUENCY_BANDS; band_idx++ ) FOR( Word16 band_idx = 0; band_idx < MASA_FREQUENCY_BANDS; band_idx++ ) { FOR( ch = 0; ch < 2; ch++ ) { hMasaIsmData->ismPreprocMatrix_fx[ch][ch][band_idx] = ONE_IN_Q28; hMasaIsmData->ismPreprocMatrix_fx[1 - ch][ch][band_idx] = 0; move32(); hMasaIsmData->ismPreprocMatrix_fx[sub(1, ch)][ch][band_idx] = 0; move32(); hMasaIsmData->eneMoveIIR_fx[ch][band_idx] = 0; move32(); hMasaIsmData->eneMoveIIR_e[ch][band_idx] = 0; move16(); hMasaIsmData->enePreserveIIR_fx[ch][band_idx] = 0; move32(); hMasaIsmData->enePreserveIIR_e[ch][band_idx] = 0; move16(); } hMasaIsmData->eneOrigIIR_fx[band_idx] = 0; move32(); hMasaIsmData->eneOrigIIR_e[band_idx] = 0; move16(); hMasaIsmData->preprocEneTarget_fx[band_idx] = 0; move32(); hMasaIsmData->preprocEneRealized_fx[band_idx] = 0; move32(); } hMasaIsmData->objectsEdited_fx = 0; move32(); #else FOR( bin = 0; bin < CLDFB_NO_CHANNELS_MAX; bin++ ) { Loading Loading @@ -392,6 +403,7 @@ ivas_error ivas_omasa_data_open_fx( #ifdef OMASA_OBJECT_EDITING hMasaIsmData->masa_gain_is_edited_fx = 0; hMasaIsmData->idx_separated_ism = -1; move16(); #endif FOR( obj_idx = 0; obj_idx < MAX_NUM_OBJECTS; obj_idx++ ) Loading
lib_dec/ivas_stat_dec.h +1 −1 Original line number Diff line number Diff line Loading @@ -981,7 +981,7 @@ typedef struct ivas_masa_ism_data_structure #else Word16 azimuth_ism_edited[MAX_NUM_OBJECTS]; Word16 elevation_ism_edited[MAX_NUM_OBJECTS]; UWord8 ism_is_edited[MAX_NUM_OBJECTS]; // UWord8 ism_is_edited[MAX_NUM_OBJECTS]; #endif Word16 idx_separated_ism; Loading
lib_rend/ivas_dirac_dec_binaural_functions_fx.c +11 −7 Original line number Diff line number Diff line Loading @@ -5471,7 +5471,7 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( move16(); /* Bypass processing until first object is moved or gained */ IF( hMasaIsmData->objectsEdited_fx == 0 ) IF( EQ_32( hMasaIsmData->objectsEdited_fx, 0 ) ) { FOR( ismDirIndex = 0; ismDirIndex < n_ism; ismDirIndex++ ) { Loading @@ -5494,7 +5494,7 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( move16(); } IF( hMasaIsmData->objectsEdited_fx == 0 ) IF( EQ_32( hMasaIsmData->objectsEdited_fx, 0 ) ) { /* No objects have moved so far */ return; Loading Loading @@ -5570,25 +5570,26 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( { ismPreprocMtxNew[ch][ch] = ONE_IN_Q28; move32(); ismPreprocMtxNew[1 - ch][ch] = 0; ismPreprocMtxNew[sub( 1, ch )][ch] = 0; move32(); } /* Determine the highest band */ max_band = 0; move16(); test(); WHILE( sub( MAX_PARAM_ISM_NBANDS, max_band ) > 0 && sub( nBins, hParamIsmDec->hParamIsm->band_grouping[max_band] ) > 0 ) { max_band++; } /* Init out array */ FOR( Word16 k = 0; k < nSlots; k++ ) FOR( slot = 0; slot < nSlots; slot++ ) { FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { set32_fx( outSlotRe[ch][k], 0, CLDFB_NO_CHANNELS_MAX ); set32_fx( outSlotIm[ch][k], 0, CLDFB_NO_CHANNELS_MAX ); set32_fx( outSlotRe[ch][slot], 0, CLDFB_NO_CHANNELS_MAX ); set32_fx( outSlotIm[ch][slot], 0, CLDFB_NO_CHANNELS_MAX ); } } Loading Loading @@ -5695,15 +5696,18 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( ELSE { temp = 0; move32(); } IF( GT_32( ONE_IN_Q30, temp ) ) { eqVal = temp; move32(); } ELSE { eqVal = ONE_IN_Q30; // 4 in Q28 move32(); } FOR( ch = 0; ch < 2; ch++ ) Loading Loading @@ -5777,7 +5781,7 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( temp = 0; move32(); gainMasaPow2 = 0; gainMasaPow2 = ONE_IN_Q9; move16(); IF( masaGainEdited ) { Loading