Wrong shift in ivas_spat_hSpatParamRendCom_config_fx
# Basic info <!--- Add commit SHA used to reproduce --> * Float reference: * Decoder (float): dfed311fdc7c91f7f9c4204ba4f1c9b02441888a * Fixed point: * Decoder (fixed): 496d928d46719161bc5c05600fc4de510d684e6e # Bug description For non-MASA related paths, the configuration `render_to_md_map` in `ivas_spat_hSpatParamRendCom_config_fx` is done as follows in float ```c int16_t num_slots_in_subfr; num_slots_in_subfr = dec_param_estim_flag ? CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES : 1; hSpatParamRendCom->dirac_md_buffer_length = ( MAX_PARAM_SPATIAL_SUBFRAMES + DELAY_DIRAC_PARAM_DEC_SFR ); hSpatParamRendCom->dirac_bs_md_write_idx = DELAY_DIRAC_PARAM_DEC_SFR; hSpatParamRendCom->dirac_read_idx = 0; set_s( hSpatParamRendCom->render_to_md_map, 0, MAX_JBM_SUBFRAMES_5MS * JBM_CLDFB_SLOTS_IN_SUBFRAME ); for ( map_idx = 0; map_idx < DEFAULT_JBM_SUBFRAMES_5MS * num_slots_in_subfr; map_idx++ ) { hSpatParamRendCom->render_to_md_map[map_idx] = hSpatParamRendCom->dirac_read_idx + map_idx / num_slots_in_subfr; } ``` The BASOP side has somewhat interesting implementation for this shown below ```c Word16 num_slots_in_subfr, tmp; tmp = 1; move16(); IF( dec_param_estim_flag ) num_slots_in_subfr = CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES; ELSE num_slots_in_subfr = 1; move16(); hSpatParamRendCom->dirac_md_buffer_length = MAX_PARAM_SPATIAL_SUBFRAMES + DELAY_DIRAC_PARAM_DEC_SFR; move16(); hSpatParamRendCom->dirac_bs_md_write_idx = DELAY_DIRAC_PARAM_DEC_SFR; move16(); hSpatParamRendCom->dirac_read_idx = 0; move16(); set16_fx( hSpatParamRendCom->render_to_md_map, 0, MAX_JBM_SUBFRAMES_5MS * JBM_CLDFB_SLOTS_IN_SUBFRAME ); if ( EQ_16( num_slots_in_subfr, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES ) ) { tmp = 2; move16(); } FOR( map_idx = 0; map_idx < DEFAULT_JBM_SUBFRAMES_5MS * num_slots_in_subfr; map_idx++ ) { hSpatParamRendCom->render_to_md_map[map_idx] = add( hSpatParamRendCom->dirac_read_idx, shr( map_idx, tmp ) ); move16(); } ``` The problem is that the `tmp` set in BASOP gets value 1 or 2 which is used for right shift. The float had division by 1 or 4. So this is a mismatch. It may be that the render map is set later correctly but good to fix this as well. <!--- Below are labels that will be added but are not shown in description. This is a template to help fill them. Add further information to the first row and remove and add labels as necessary. -->
issue