Commit 6072126c authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

preliminarily enable object editing for ParamISM under OBJ_EDITING_PARAMISM

parent ea37c883
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 ################################# */
+25 −21
Original line number Diff line number Diff line
@@ -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 )
@@ -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 );
        }
+99 −33
Original line number Diff line number Diff line
@@ -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;
@@ -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++ )
@@ -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 )
    {
    }
@@ -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++ )
@@ -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 )
    {
    }