Commit 2ddaef28 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

copy remaining changes from 1680_ref_port_object_editing_implementation

parent 5e520fbd
Loading
Loading
Loading
Loading
Loading
+785 −0

File changed.

Preview size limit exceeded, changes collapsed.

+14 −0
Original line number Diff line number Diff line
@@ -2853,10 +2853,17 @@ void ivas_dirac_dec_compute_directional_responses_fx(

                        FOR( dir = 0; dir < hSpatParamRendCom->numIsmDirections; dir++ )
                        {
#ifdef OMASA_OBJECT_EDITING
                            IF ( hMasaIsm->ism_dir_is_edited[dir] )
                            {
                                ivas_dirac_dec_get_response( hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], direct_response_temp_fx, hDirACRend->hOutSetup.ambisonics_order );
                            }
#else
                            IF( hMasaIsm->ism_is_edited[dir] )
                            {
                                ivas_dirac_dec_get_response_fx( hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], direct_response_temp_fx, hDirACRend->hOutSetup.ambisonics_order, Q29 );
                            }
#endif
                            ELSE
                            {
                                ivas_dirac_dec_get_response_fx( hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], direct_response_temp_fx, hDirACRend->hOutSetup.ambisonics_order, Q29 );
@@ -3104,10 +3111,17 @@ void ivas_dirac_dec_compute_directional_responses_fx(

                    FOR( dir = 0; dir < hSpatParamRendCom->numIsmDirections; dir++ )
                    {
#ifdef OMASA_OBJECT_EDITING
                        IF ( hMasaIsm->ism_dir_is_edited[dir] )
                        {
                            vbap_determine_gains( hVBAPdata, direct_response_temp_fx, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 );
                        }
#else
                        IF( hMasaIsm->ism_is_edited[dir] )
                        {
                            vbap_determine_gains_fx( hVBAPdata, direct_response_temp_fx, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 );
                        }
#endif
                        ELSE
                        {
                            vbap_determine_gains_fx( hVBAPdata, direct_response_temp_fx, hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], 1 );
+9 −0
Original line number Diff line number Diff line
@@ -649,6 +649,12 @@ ivas_error TDREND_Update_object_positions_fx(
                return error;
            }
#endif
#ifdef OBJ_EDITING_INTERFACE
            if ( ( error = TDREND_MIX_SRC_SetGain( hBinRendererTd, nS, hIsmMetaData[nS]->gain ) ) != IVAS_ERR_OK )
            {
                return error;
            }
#endif

            IF( hIsmMetaData[nS]->non_diegetic_flag )
            {
@@ -955,6 +961,9 @@ ivas_error ivas_td_binaural_renderer_ext_fx(
        move32();
        hIsmMetaData[0]->radius_fx = currentPos->radius_fx;
        move32();
#ifdef OBJ_EDITING_INTERFACE
        hIsmMetaData[0]->gain = ONE_IN_Q30; //TODO: check Q value
#endif
        hIsmMetaData[0]->non_diegetic_flag = currentPos->non_diegetic_flag;
        move16();
    }
+37 −0
Original line number Diff line number Diff line
@@ -49,6 +49,9 @@ static Word16 TDREND_SRC_SPATIAL_GetDirGain_fx( const TDREND_DirAtten_t *DirAtte
static Word16 TDREND_SRC_SPATIAL_GetDistGain_fx( const TDREND_DistAtten_t *DistAtten_p, const Word32 Dist_fx, const Word16 Dist_e );
static void TDREND_SRC_SPATIAL_SetDirAtten_fx( TDREND_SRC_SPATIAL_t *SrcSpatial_p, const TDREND_DirAtten_t *DirAtten_p );
static void TDREND_SRC_SPATIAL_SetDistAtten( TDREND_SRC_SPATIAL_t *SrcSpatial_p, const TDREND_DistAtten_t *DistAtten_p );
#ifdef OBJ_EDITING_INTERFACE
static void TDREND_SRC_SPATIAL_SetGain( const TDREND_SRC_t *Src_p, const float Gain );
#endif
static ivas_error TDREND_SRC_REND_Alloc( TDREND_SRC_REND_t **SrcRend_pp );
static void TDREND_SRC_SPATIAL_Dealloc( TDREND_SRC_SPATIAL_t *SrcSpatial_p );

@@ -129,6 +132,24 @@ ivas_error TDREND_MIX_SRC_SetDir_fx(
    return IVAS_ERR_OK;
}

#ifdef OBJ_EDITING_INTERFACE
/*-------------------------------------------------------------------*
 * TDREND_MIX_SRC_SetSourceGain()
 *
 * Set source gain
 --------------------------------------------------------------------*/

ivas_error TDREND_MIX_SRC_SetGain(
    BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle   */
    const int16_t SrcInd,                              /* i  : Source index         */
    const float Gain                                   /* i  : Gain                 */
)
{
    TDREND_SRC_SPATIAL_SetGain( hBinRendererTd->Sources[SrcInd], Gain );

    return IVAS_ERR_OK;
}
#endif

/*-------------------------------------------------------------------*
 * TDREND_MIX_SRC_SetDirAtten()
@@ -680,6 +701,22 @@ static void TDREND_SRC_SPATIAL_SetDistAtten(
    return;
}

#ifdef OBJ_EDITING_INTERFACE
/*-------------------------------------------------------------------*
 * TDREND_SRC_SPATIAL_SetGain()
 *
 * Set the object gain
 --------------------------------------------------------------------*/

static void TDREND_SRC_SPATIAL_SetGain(
    const TDREND_SRC_t *Src_p, /* i  : Directional attenuation specification */
    const float Gain           /* i  : Front-pointing vector                 */
)
{
    Src_p->SrcRend_p->SrcGain_p[0] = Gain;
}
#endif

/*-------------------------------------------------------------------*
 * TDREND_SRC_SPATIAL_GetDirGain()
 *
+8 −0
Original line number Diff line number Diff line
@@ -778,6 +778,14 @@ ivas_error TDREND_MIX_SRC_SetDir_fx(
    const Word16 Vec_p_q                                        /* i  : Direction vector q  */
);

#ifdef OBJ_EDITING_INTERFACE
ivas_error TDREND_MIX_SRC_SetGain(
	BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd,          /* i/o: TD renderer handle                      */
	const int16_t SrcInd,                                       /* i  : Source index                            */
	const float Gain                                            /* i  : Gain                                    */
);
#endif

ivas_error TDREND_MIX_SRC_SetDirAtten_fx(
    BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd,          /* i/o: TD renderer handle                      */
    const Word16 SrcInd,                                        /* i  : Source index                            */