Commit 86c4f1ba authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

store edited values in new variables for ParamISM

parent 7c871aa7
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -1074,10 +1074,18 @@ void ivas_param_ism_dec_prepare_renderer(
    if ( !( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) )
    {
        for ( i = 0; i < st_ivas->nchan_ism; i++ )
        {
#ifdef OBJ_EDITING_PARAMISM
			if ( hParamIsmDec->has_been_edited )
			{
				efap_determine_gains(st_ivas->hEFAPdata, direct_response[i], hParamIsmDec->edited_azimuth_values[i], hParamIsmDec->edited_elevation_values[i], EFAP_MODE_EFAP);
			}
#endif
			{
				efap_determine_gains( st_ivas->hEFAPdata, direct_response[i], hParamIsmDec->azimuth_values[i], hParamIsmDec->elevation_values[i], EFAP_MODE_EFAP );
			}
		}
    }
    else
    {
        int16_t j;
+7 −0
Original line number Diff line number Diff line
@@ -422,6 +422,13 @@ typedef struct ivas_param_ism_dec_data_structure
    float elevation_values[MAX_PARAM_SPATIAL_SUBFRAMES * IVAS_MAX_NUM_BANDS];
    float power_ratios[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS][MAX_PARAM_ISM_WAVE];

#ifdef OBJ_EDITING_PARAMISM
	float edited_azimuth_values[MAX_PARAM_SPATIAL_SUBFRAMES * IVAS_MAX_NUM_BANDS];
	float edited_elevation_values[MAX_PARAM_SPATIAL_SUBFRAMES * IVAS_MAX_NUM_BANDS];
	float edited_power_ratios[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS][MAX_PARAM_ISM_WAVE];
	int16_t has_been_edited;
#endif

    /*sub-modules*/
    PARAM_ISM_CONFIG_HANDLE hParamIsm;             /* Parametric ISM common handle */
    PARAM_ISM_RENDERING_HANDLE hParamIsmRendering; /* ParamISM rendering handle */
+17 −4
Original line number Diff line number Diff line
@@ -1052,16 +1052,28 @@ ivas_error IVAS_DEC_FeedFrame_Serial(
                ISM_RENDERER_HANDLE hIsmRendererData = hIvasDec->st_ivas->hIsmRendererData;
                for ( obj = 0; obj < hIvasDec->st_ivas->nchan_ism; obj++ )
                {

                    hIsmRendererData->edited_azimuth[obj] = hIvasDec->st_ivas->hIsmMetaData[obj]->azimuth;
                    hIsmRendererData->edited_elevation[obj] = hIvasDec->st_ivas->hIsmMetaData[obj]->elevation;
                    hIsmRendererData->edited_yaw[obj] = hIvasDec->st_ivas->hIsmMetaData[obj]->yaw;
                    hIsmRendererData->edited_pitch[obj] = hIvasDec->st_ivas->hIsmMetaData[obj]->pitch;
                    hIsmRendererData->edited_radius[obj] = hIvasDec->st_ivas->hIsmMetaData[obj]->radius;
                    hIsmRendererData->edited_gains[obj] = hIvasDec->st_ivas->hIsmMetaData[obj]->gain;
                }
				hIsmRendererData->has_been_edited = 0;
            }
#ifdef OBJ_EDITING_PARAMISM
			else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_PARAM )
			{
				int16_t obj = 0;
				PARAM_ISM_DEC_HANDLE hParamIsmDec = hIvasDec->st_ivas->hParamIsmDec;
				for (obj = 0; obj < hIvasDec->st_ivas->nchan_ism; obj++)
				{
					hParamIsmDec->edited_azimuth_values[obj] = hParamIsmDec->azimuth_values[obj];
					hParamIsmDec->edited_elevation_values[obj] = hParamIsmDec->azimuth_values[obj];
				}
				hParamIsmDec->has_been_edited = 0;
			}
#endif
        }
    }
#endif
@@ -1187,9 +1199,10 @@ ivas_error IVAS_DEC_SetEditableParameters(
            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;
                hIvasDec->st_ivas->hParamIsmDec->edited_azimuth_values[obj] = hIvasEditableParameters.ism_metadata[obj].azimuth;
                hIvasDec->st_ivas->hParamIsmDec->edited_elevation_values[obj] = hIvasEditableParameters.ism_metadata[obj].elevation;
            }
			hIvasDec->st_ivas->hParamIsmDec->has_been_edited = 1;
        }
        else
        {