Loading lib_dec/ivas_objectRenderer_internal_fx.c +7 −0 Original line number Diff line number Diff line Loading @@ -219,12 +219,19 @@ ivas_error ivas_td_binaural_renderer_sf_fx( FOR( nS = 0; nS < nchan_ism; nS++ ) { ismMetaData[nS].azimuth_fx = st_ivas->hIsmMetaData[nS]->edited_azimuth_fx; move32(); ismMetaData[nS].elevation_fx = st_ivas->hIsmMetaData[nS]->edited_elevation_fx; move32(); ismMetaData[nS].radius_fx = st_ivas->hIsmMetaData[nS]->edited_radius_fx; move16(); ismMetaData[nS].yaw_fx = st_ivas->hIsmMetaData[nS]->edited_yaw_fx; move32(); ismMetaData[nS].pitch_fx = st_ivas->hIsmMetaData[nS]->edited_pitch_fx; move32(); ismMetaData[nS].non_diegetic_flag = st_ivas->hIsmMetaData[nS]->non_diegetic_flag; move16(); ismMetaData[nS].gain_fx = st_ivas->hIsmMetaData[nS]->edited_gain_fx; move32(); hIsmMetaData[nS] = &ismMetaData[nS]; } Loading lib_dec/ivas_stat_dec.h +2 −2 Original line number Diff line number Diff line Loading @@ -964,8 +964,8 @@ typedef struct ivas_masa_ism_data_structure Word16 elevation_ism_edited[MAX_NUM_OBJECTS]; UWord8 ism_is_edited[MAX_NUM_OBJECTS]; #ifdef OBJ_EDITING_API float gain_ism[MAX_NUM_OBJECTS]; float gain_masa; Word32 gain_ism[MAX_NUM_OBJECTS]; Word32 gain_masa; #endif Word16 idx_separated_ism; Loading lib_dec/lib_dec_fx.c +35 −4 Original line number Diff line number Diff line Loading @@ -648,6 +648,11 @@ ivas_error IVAS_DEC_Configure( #ifdef OBJ_EDITING_API /* init flush buffer if necessary (only needed for binaural)*/ test(); test(); test(); test(); test(); if ( tsmEnabled && ( outputConfig == IVAS_AUDIO_CONFIG_BINAURAL || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { hIvasDec->flushbuffer = (void *) malloc( CPE_CHANNELS * hIvasDec->nSamplesFrame / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES * sizeof( Word16 ) ); Loading Loading @@ -2289,7 +2294,7 @@ ivas_error IVAS_DEC_GetObjectMetadata( metadata->yaw_fx = hIsmMeta->edited_yaw_fx; metadata->pitch_fx = hIsmMeta->edited_pitch_fx; metadata->spread = 0; metadata->spread_fx = 0; metadata->gainFactor_fx = hIsmMeta->edited_gain_fx; metadata->non_diegetic_flag = hIsmMeta->non_diegetic_flag; Loading Loading @@ -3932,6 +3937,11 @@ ivas_error IVAS_DEC_GetEditableParameters( { ivas_error error; test(); test(); test(); test(); test(); if ( !( hIvasDec->st_ivas->ivas_format == ISM_FORMAT || ( hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT && hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) || ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT && ( hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) ) ) Loading @@ -3939,45 +3949,66 @@ ivas_error IVAS_DEC_GetEditableParameters( return IVAS_ERROR( IVAS_ERR_WRONG_MODE, "Object editing no supported in this operation mode." ); } test(); test(); if ( hIvasEditableParameters == NULL || hIvasDec == NULL || hIvasDec->st_ivas == NULL ) { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } hIvasEditableParameters->gain_bed_fx = ONE_IN_Q30; move32(); hIvasEditableParameters->num_obj = hIvasDec->st_ivas->nchan_ism; move16(); test(); test(); if ( hIvasDec->st_ivas->ivas_format == ISM_FORMAT || hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT ) { if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { int16_t obj; Word16 obj; for ( obj = 0; obj < hIvasEditableParameters->num_obj; obj++ ) { hIvasEditableParameters->ism_metadata[obj].azimuth_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->azimuth_fx; move32(); hIvasEditableParameters->ism_metadata[obj].elevation_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->elevation_fx; move32(); hIvasEditableParameters->ism_metadata[obj].yaw_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->yaw_fx; move32(); hIvasEditableParameters->ism_metadata[obj].pitch_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->pitch_fx; move32(); hIvasEditableParameters->ism_metadata[obj].radius_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->radius_fx; move16(); hIvasEditableParameters->ism_metadata[obj].gain_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->edited_gain_fx; move32(); hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = hIvasDec->st_ivas->hIsmMetaData[obj]->non_diegetic_flag; move16(); } if ( hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { hIvasEditableParameters->gain_bed_fx = ONE_IN_Q30; move32(); } } else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) { int16_t obj; Word16 obj; for ( obj = 0; obj < hIvasEditableParameters->num_obj; obj++ ) { hIvasEditableParameters->ism_metadata[obj].azimuth_fx = hIvasDec->st_ivas->hParamIsmDec->azimuth_values_fx[obj]; move32(); hIvasEditableParameters->ism_metadata[obj].elevation_fx = hIvasDec->st_ivas->hParamIsmDec->elevation_values_fx[obj]; hIvasEditableParameters->ism_metadata[obj].yaw = 0.0f; move32(); hIvasEditableParameters->ism_metadata[obj].yaw_fx = 0; move32(); hIvasEditableParameters->ism_metadata[obj].pitch_fx = 0; move32(); hIvasEditableParameters->ism_metadata[obj].radius_fx = 0; move16(); hIvasEditableParameters->ism_metadata[obj].gain_fx = ONE_IN_Q31; move32(); hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = 0; move16(); } } else Loading Loading
lib_dec/ivas_objectRenderer_internal_fx.c +7 −0 Original line number Diff line number Diff line Loading @@ -219,12 +219,19 @@ ivas_error ivas_td_binaural_renderer_sf_fx( FOR( nS = 0; nS < nchan_ism; nS++ ) { ismMetaData[nS].azimuth_fx = st_ivas->hIsmMetaData[nS]->edited_azimuth_fx; move32(); ismMetaData[nS].elevation_fx = st_ivas->hIsmMetaData[nS]->edited_elevation_fx; move32(); ismMetaData[nS].radius_fx = st_ivas->hIsmMetaData[nS]->edited_radius_fx; move16(); ismMetaData[nS].yaw_fx = st_ivas->hIsmMetaData[nS]->edited_yaw_fx; move32(); ismMetaData[nS].pitch_fx = st_ivas->hIsmMetaData[nS]->edited_pitch_fx; move32(); ismMetaData[nS].non_diegetic_flag = st_ivas->hIsmMetaData[nS]->non_diegetic_flag; move16(); ismMetaData[nS].gain_fx = st_ivas->hIsmMetaData[nS]->edited_gain_fx; move32(); hIsmMetaData[nS] = &ismMetaData[nS]; } Loading
lib_dec/ivas_stat_dec.h +2 −2 Original line number Diff line number Diff line Loading @@ -964,8 +964,8 @@ typedef struct ivas_masa_ism_data_structure Word16 elevation_ism_edited[MAX_NUM_OBJECTS]; UWord8 ism_is_edited[MAX_NUM_OBJECTS]; #ifdef OBJ_EDITING_API float gain_ism[MAX_NUM_OBJECTS]; float gain_masa; Word32 gain_ism[MAX_NUM_OBJECTS]; Word32 gain_masa; #endif Word16 idx_separated_ism; Loading
lib_dec/lib_dec_fx.c +35 −4 Original line number Diff line number Diff line Loading @@ -648,6 +648,11 @@ ivas_error IVAS_DEC_Configure( #ifdef OBJ_EDITING_API /* init flush buffer if necessary (only needed for binaural)*/ test(); test(); test(); test(); test(); if ( tsmEnabled && ( outputConfig == IVAS_AUDIO_CONFIG_BINAURAL || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { hIvasDec->flushbuffer = (void *) malloc( CPE_CHANNELS * hIvasDec->nSamplesFrame / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES * sizeof( Word16 ) ); Loading Loading @@ -2289,7 +2294,7 @@ ivas_error IVAS_DEC_GetObjectMetadata( metadata->yaw_fx = hIsmMeta->edited_yaw_fx; metadata->pitch_fx = hIsmMeta->edited_pitch_fx; metadata->spread = 0; metadata->spread_fx = 0; metadata->gainFactor_fx = hIsmMeta->edited_gain_fx; metadata->non_diegetic_flag = hIsmMeta->non_diegetic_flag; Loading Loading @@ -3932,6 +3937,11 @@ ivas_error IVAS_DEC_GetEditableParameters( { ivas_error error; test(); test(); test(); test(); test(); if ( !( hIvasDec->st_ivas->ivas_format == ISM_FORMAT || ( hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT && hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) || ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT && ( hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) ) ) Loading @@ -3939,45 +3949,66 @@ ivas_error IVAS_DEC_GetEditableParameters( return IVAS_ERROR( IVAS_ERR_WRONG_MODE, "Object editing no supported in this operation mode." ); } test(); test(); if ( hIvasEditableParameters == NULL || hIvasDec == NULL || hIvasDec->st_ivas == NULL ) { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } hIvasEditableParameters->gain_bed_fx = ONE_IN_Q30; move32(); hIvasEditableParameters->num_obj = hIvasDec->st_ivas->nchan_ism; move16(); test(); test(); if ( hIvasDec->st_ivas->ivas_format == ISM_FORMAT || hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT ) { if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { int16_t obj; Word16 obj; for ( obj = 0; obj < hIvasEditableParameters->num_obj; obj++ ) { hIvasEditableParameters->ism_metadata[obj].azimuth_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->azimuth_fx; move32(); hIvasEditableParameters->ism_metadata[obj].elevation_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->elevation_fx; move32(); hIvasEditableParameters->ism_metadata[obj].yaw_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->yaw_fx; move32(); hIvasEditableParameters->ism_metadata[obj].pitch_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->pitch_fx; move32(); hIvasEditableParameters->ism_metadata[obj].radius_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->radius_fx; move16(); hIvasEditableParameters->ism_metadata[obj].gain_fx = hIvasDec->st_ivas->hIsmMetaData[obj]->edited_gain_fx; move32(); hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = hIvasDec->st_ivas->hIsmMetaData[obj]->non_diegetic_flag; move16(); } if ( hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { hIvasEditableParameters->gain_bed_fx = ONE_IN_Q30; move32(); } } else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) { int16_t obj; Word16 obj; for ( obj = 0; obj < hIvasEditableParameters->num_obj; obj++ ) { hIvasEditableParameters->ism_metadata[obj].azimuth_fx = hIvasDec->st_ivas->hParamIsmDec->azimuth_values_fx[obj]; move32(); hIvasEditableParameters->ism_metadata[obj].elevation_fx = hIvasDec->st_ivas->hParamIsmDec->elevation_values_fx[obj]; hIvasEditableParameters->ism_metadata[obj].yaw = 0.0f; move32(); hIvasEditableParameters->ism_metadata[obj].yaw_fx = 0; move32(); hIvasEditableParameters->ism_metadata[obj].pitch_fx = 0; move32(); hIvasEditableParameters->ism_metadata[obj].radius_fx = 0; move16(); hIvasEditableParameters->ism_metadata[obj].gain_fx = ONE_IN_Q31; move32(); hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = 0; move16(); } } else Loading