Loading lib_com/common_api_types.h +1 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ typedef struct _IVAS_EDITABLE_PARAMETERS { int16_t num_obj; IVAS_ISM_METADATA ism_metadata[IVAS_MAX_NUM_OBJECTS]; float gain_bed; } IVAS_EDITABLE_PARAMETERS; #endif Loading lib_dec/ivas_sba_dec.c +19 −0 Original line number Diff line number Diff line Loading @@ -824,6 +824,25 @@ ivas_error ivas_sba_dec_render( } } #ifdef OBJ_EDITING_API if ( st_ivas->ivas_format == SBA_ISM_FORMAT || st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { int16_t n; float gain = st_ivas->hSbaIsmData->gain_bed; if ( gain != 1.0f ) { for ( n = 0; n < nchan_out; n++ ) { int16_t i; for ( i = 0; i < L_FRAME48k; i++ ) { output_f_local[st_ivas->nchan_ism][i] *= gain; } } } } #endif *nSamplesAvailableNext = ( hSpar->num_slots - hSpar->slots_rendered ) * slot_size; return IVAS_ERR_OK; Loading lib_dec/ivas_stat_dec.h +3 −0 Original line number Diff line number Diff line Loading @@ -680,6 +680,9 @@ typedef struct ivas_osba_data float **delayBuffer; int16_t delayBuffer_size; int16_t delayBuffer_nchan; #ifdef OBJ_EDITING_API float gain_bed; #endif } SBA_ISM_DATA, *SBA_ISM_DATA_HANDLE; Loading lib_dec/lib_dec.c +9 −0 Original line number Diff line number Diff line Loading @@ -1116,6 +1116,7 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->ism_metadata[obj].radius = hIvasDec->st_ivas->hIsmMetaData[obj]->radius; hIvasEditableParameters->ism_metadata[obj].gain = hIvasDec->st_ivas->hIsmMetaData[obj]->edited_gain; hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = hIvasDec->st_ivas->hIsmMetaData[obj]->non_diegetic_flag; hIvasEditableParameters->gain_bed = 1.0f; } } #ifdef OBJ_EDITING_API Loading @@ -1131,6 +1132,7 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->ism_metadata[obj].radius = 0.0f; hIvasEditableParameters->ism_metadata[obj].gain = 1.0f; hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = 0; hIvasEditableParameters->gain_bed = 1.0f; } } else Loading Loading @@ -1194,6 +1196,13 @@ ivas_error IVAS_DEC_SetEditableParameters( hIvasDec->st_ivas->hIsmMetaData[obj]->non_diegetic_flag = hIvasEditableParameters.ism_metadata[obj].non_diegetic_flag; } #ifdef OBJ_EDITING_API if ( hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { hIvasDec->st_ivas->hSbaIsmData->gain_bed = hIvasEditableParameters.gain_bed; } #endif } #ifdef OBJ_EDITING_API else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) Loading Loading
lib_com/common_api_types.h +1 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ typedef struct _IVAS_EDITABLE_PARAMETERS { int16_t num_obj; IVAS_ISM_METADATA ism_metadata[IVAS_MAX_NUM_OBJECTS]; float gain_bed; } IVAS_EDITABLE_PARAMETERS; #endif Loading
lib_dec/ivas_sba_dec.c +19 −0 Original line number Diff line number Diff line Loading @@ -824,6 +824,25 @@ ivas_error ivas_sba_dec_render( } } #ifdef OBJ_EDITING_API if ( st_ivas->ivas_format == SBA_ISM_FORMAT || st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { int16_t n; float gain = st_ivas->hSbaIsmData->gain_bed; if ( gain != 1.0f ) { for ( n = 0; n < nchan_out; n++ ) { int16_t i; for ( i = 0; i < L_FRAME48k; i++ ) { output_f_local[st_ivas->nchan_ism][i] *= gain; } } } } #endif *nSamplesAvailableNext = ( hSpar->num_slots - hSpar->slots_rendered ) * slot_size; return IVAS_ERR_OK; Loading
lib_dec/ivas_stat_dec.h +3 −0 Original line number Diff line number Diff line Loading @@ -680,6 +680,9 @@ typedef struct ivas_osba_data float **delayBuffer; int16_t delayBuffer_size; int16_t delayBuffer_nchan; #ifdef OBJ_EDITING_API float gain_bed; #endif } SBA_ISM_DATA, *SBA_ISM_DATA_HANDLE; Loading
lib_dec/lib_dec.c +9 −0 Original line number Diff line number Diff line Loading @@ -1116,6 +1116,7 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->ism_metadata[obj].radius = hIvasDec->st_ivas->hIsmMetaData[obj]->radius; hIvasEditableParameters->ism_metadata[obj].gain = hIvasDec->st_ivas->hIsmMetaData[obj]->edited_gain; hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = hIvasDec->st_ivas->hIsmMetaData[obj]->non_diegetic_flag; hIvasEditableParameters->gain_bed = 1.0f; } } #ifdef OBJ_EDITING_API Loading @@ -1131,6 +1132,7 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->ism_metadata[obj].radius = 0.0f; hIvasEditableParameters->ism_metadata[obj].gain = 1.0f; hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = 0; hIvasEditableParameters->gain_bed = 1.0f; } } else Loading Loading @@ -1194,6 +1196,13 @@ ivas_error IVAS_DEC_SetEditableParameters( hIvasDec->st_ivas->hIsmMetaData[obj]->non_diegetic_flag = hIvasEditableParameters.ism_metadata[obj].non_diegetic_flag; } #ifdef OBJ_EDITING_API if ( hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { hIvasDec->st_ivas->hSbaIsmData->gain_bed = hIvasEditableParameters.gain_bed; } #endif } #ifdef OBJ_EDITING_API else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) Loading