Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,7 @@ #define OBJ_EDITING_API /* object editing changes related to the API */ #define OBJ_EDITING_DECODER /* object editing changes realted to the decoder functions */ #define OBJ_EDITING_EXAMPLE /* obj editing example code in decoder.c */ #define OBJ_EDITING_PARAMISM /* obj editing for ParamISM */ #endif /* ################### Start BE switches ################################# */ Loading lib_dec/ivas_jbm_dec.c +25 −21 Original line number Diff line number Diff line Loading @@ -1024,6 +1024,7 @@ void ivas_jbm_dec_prepare_renderer( else if ( st_ivas->ivas_format == ISM_FORMAT ) { /* Rendering */ #ifndef OBJ_EDITING_PARAMISM if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) Loading @@ -1038,6 +1039,9 @@ void ivas_jbm_dec_prepare_renderer( } } else /* ISM_MODE_DISC */ #else if ( st_ivas->ism_mode != ISM_MODE_PARAM ) #endif { ivas_ism_dec_digest_tc( st_ivas ); } Loading lib_dec/lib_dec.c +99 −33 Original line number Diff line number Diff line Loading @@ -1004,6 +1004,27 @@ ivas_error IVAS_DEC_FeedFrame_Serial( } } hIvasDec->hasBeenPreparedRendering = false; if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) { int16_t n_render_timeslots = hIvasDec->st_ivas->hTcBuffer->n_samples_available / hIvasDec->st_ivas->hTcBuffer->n_samples_granularity; if ( hIvasDec->st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || hIvasDec->st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || hIvasDec->st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) { ivas_dirac_dec_set_md_map( hIvasDec->st_ivas, n_render_timeslots ); ivas_param_ism_params_to_masa_param_mapping( hIvasDec->st_ivas ); } else if ( hIvasDec->st_ivas->renderer_type == RENDERER_PARAM_ISM || hIvasDec->st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ) { ivas_param_ism_dec_prepare_renderer( hIvasDec->st_ivas, n_render_timeslots ); } } #endif return IVAS_ERR_OK; Loading @@ -1029,6 +1050,10 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->num_obj = hIvasDec->st_ivas->nchan_ism; if ( hIvasDec->st_ivas->ivas_format == ISM_FORMAT || hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT ) { #ifdef OBJ_EDITING_PARAMISM if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) #endif { int16_t obj; for ( obj = 0; obj < hIvasEditableParameters->num_obj; obj++ ) Loading @@ -1042,6 +1067,27 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = hIvasDec->st_ivas->hIsmMetaData[obj]->non_diegetic_flag; } } #ifdef OBJ_EDITING_PARAMISM else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) { int16_t obj; for ( obj = 0; obj < hIvasEditableParameters->num_obj; obj++ ) { hIvasEditableParameters->ism_metadata[obj].azimuth = hIvasDec->st_ivas->hParamIsmDec->azimuth_values[obj]; hIvasEditableParameters->ism_metadata[obj].elevation = hIvasDec->st_ivas->hParamIsmDec->elevation_values[obj]; hIvasEditableParameters->ism_metadata[obj].yaw = 0; hIvasEditableParameters->ism_metadata[obj].pitch = 0; hIvasEditableParameters->ism_metadata[obj].radius = 0; hIvasEditableParameters->ism_metadata[obj].gain = 0; hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = 0; } } else { assert( 0 && "This should never happen!" ); } #endif } else if ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT ) { } Loading Loading @@ -1078,6 +1124,10 @@ ivas_error IVAS_DEC_SetEditableParameters( #endif if ( hIvasDec->st_ivas->ivas_format == ISM_FORMAT || hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT ) { #ifdef OBJ_EDITING_PARAMISM if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) #endif { int16_t obj; for ( obj = 0; obj < hIvasEditableParameters.num_obj; obj++ ) Loading @@ -1091,6 +1141,22 @@ ivas_error IVAS_DEC_SetEditableParameters( hIvasDec->st_ivas->hIsmRendererData->non_diegetic_flag[obj] = hIvasEditableParameters.ism_metadata[obj].non_diegetic_flag; } } #ifdef OBJ_EDITING_PARAMISM else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) { int16_t obj; for ( obj = 0; obj < hIvasEditableParameters.num_obj; obj++ ) { hIvasDec->st_ivas->hParamIsmDec->azimuth_values[obj] = hIvasEditableParameters.ism_metadata[obj].azimuth; hIvasDec->st_ivas->hParamIsmDec->elevation_values[obj] = hIvasEditableParameters.ism_metadata[obj].elevation; } } else { assert( 0 && "This should never happen!" ); } #endif } else if ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT ) { } Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,7 @@ #define OBJ_EDITING_API /* object editing changes related to the API */ #define OBJ_EDITING_DECODER /* object editing changes realted to the decoder functions */ #define OBJ_EDITING_EXAMPLE /* obj editing example code in decoder.c */ #define OBJ_EDITING_PARAMISM /* obj editing for ParamISM */ #endif /* ################### Start BE switches ################################# */ Loading
lib_dec/ivas_jbm_dec.c +25 −21 Original line number Diff line number Diff line Loading @@ -1024,6 +1024,7 @@ void ivas_jbm_dec_prepare_renderer( else if ( st_ivas->ivas_format == ISM_FORMAT ) { /* Rendering */ #ifndef OBJ_EDITING_PARAMISM if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) Loading @@ -1038,6 +1039,9 @@ void ivas_jbm_dec_prepare_renderer( } } else /* ISM_MODE_DISC */ #else if ( st_ivas->ism_mode != ISM_MODE_PARAM ) #endif { ivas_ism_dec_digest_tc( st_ivas ); } Loading
lib_dec/lib_dec.c +99 −33 Original line number Diff line number Diff line Loading @@ -1004,6 +1004,27 @@ ivas_error IVAS_DEC_FeedFrame_Serial( } } hIvasDec->hasBeenPreparedRendering = false; if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) { int16_t n_render_timeslots = hIvasDec->st_ivas->hTcBuffer->n_samples_available / hIvasDec->st_ivas->hTcBuffer->n_samples_granularity; if ( hIvasDec->st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || hIvasDec->st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || hIvasDec->st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) { ivas_dirac_dec_set_md_map( hIvasDec->st_ivas, n_render_timeslots ); ivas_param_ism_params_to_masa_param_mapping( hIvasDec->st_ivas ); } else if ( hIvasDec->st_ivas->renderer_type == RENDERER_PARAM_ISM || hIvasDec->st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ) { ivas_param_ism_dec_prepare_renderer( hIvasDec->st_ivas, n_render_timeslots ); } } #endif return IVAS_ERR_OK; Loading @@ -1029,6 +1050,10 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->num_obj = hIvasDec->st_ivas->nchan_ism; if ( hIvasDec->st_ivas->ivas_format == ISM_FORMAT || hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT ) { #ifdef OBJ_EDITING_PARAMISM if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) #endif { int16_t obj; for ( obj = 0; obj < hIvasEditableParameters->num_obj; obj++ ) Loading @@ -1042,6 +1067,27 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = hIvasDec->st_ivas->hIsmMetaData[obj]->non_diegetic_flag; } } #ifdef OBJ_EDITING_PARAMISM else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) { int16_t obj; for ( obj = 0; obj < hIvasEditableParameters->num_obj; obj++ ) { hIvasEditableParameters->ism_metadata[obj].azimuth = hIvasDec->st_ivas->hParamIsmDec->azimuth_values[obj]; hIvasEditableParameters->ism_metadata[obj].elevation = hIvasDec->st_ivas->hParamIsmDec->elevation_values[obj]; hIvasEditableParameters->ism_metadata[obj].yaw = 0; hIvasEditableParameters->ism_metadata[obj].pitch = 0; hIvasEditableParameters->ism_metadata[obj].radius = 0; hIvasEditableParameters->ism_metadata[obj].gain = 0; hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = 0; } } else { assert( 0 && "This should never happen!" ); } #endif } else if ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT ) { } Loading Loading @@ -1078,6 +1124,10 @@ ivas_error IVAS_DEC_SetEditableParameters( #endif if ( hIvasDec->st_ivas->ivas_format == ISM_FORMAT || hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT ) { #ifdef OBJ_EDITING_PARAMISM if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) #endif { int16_t obj; for ( obj = 0; obj < hIvasEditableParameters.num_obj; obj++ ) Loading @@ -1091,6 +1141,22 @@ ivas_error IVAS_DEC_SetEditableParameters( hIvasDec->st_ivas->hIsmRendererData->non_diegetic_flag[obj] = hIvasEditableParameters.ism_metadata[obj].non_diegetic_flag; } } #ifdef OBJ_EDITING_PARAMISM else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM ) { int16_t obj; for ( obj = 0; obj < hIvasEditableParameters.num_obj; obj++ ) { hIvasDec->st_ivas->hParamIsmDec->azimuth_values[obj] = hIvasEditableParameters.ism_metadata[obj].azimuth; hIvasDec->st_ivas->hParamIsmDec->elevation_values[obj] = hIvasEditableParameters.ism_metadata[obj].elevation; } } else { assert( 0 && "This should never happen!" ); } #endif } else if ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT ) { } Loading