Loading apps/renderer.c +3 −0 Original line number Diff line number Diff line Loading @@ -1308,6 +1308,9 @@ int main( { masaIds[i] = 0u; } #ifdef NONBE_1377_REND_DIRATT_CONF IVAS_REND_SetObjectIDs( hIvasRend ); #endif for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) { Loading lib_com/common_api_types.h +0 −1 Original line number Diff line number Diff line Loading @@ -363,7 +363,6 @@ typedef struct _IVAS_RENDER_CONFIG Word16 directivity_fx[IVAS_MAX_NUM_OBJECTS * 3]; // has the following q-factor pattern: {6, 6, 15, 6, 6, 15, 6, 6, 15, 6, 6, 15} float distAtt[3]; Word32 distAtt_fx[3]; /* {Q27, Q30, Q30} */ } IVAS_RENDER_CONFIG_DATA, *IVAS_RENDER_CONFIG_HANDLE; typedef struct Loading lib_com/options.h +3 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ #define FIX_1995_REVERB_INIT /* VA/Nokia: issue 1995: Fix use-of-uninitialized-value in ivas_binaural_reverb_init() */ #define FIX_1996_MASKING_NOISE /* Dlb: Heavy precision loss in ola buffers causing discontinuity*/ #define FIX1998_APA_EXEC_SCALING /* FhG: fix scaling of apa_exec_ivas_fx(); avoid continuously worse scaling with previous data */ #define FIX2007_BASSPSFILTER_OVERFLOW /* FhG: use saturing operator, to avoid overflow in bass_psfilter_fx() */ /* #################### Start BASOP porting switches ############################ */ Loading @@ -114,6 +115,8 @@ // #define USE_PARAMBIN_16BIT_ROM // #define USE_TDREND_16BIT_ROM #endif #define NONBE_1377_REND_DIRATT_CONF /* Eri: Issue 1377: Error in directivity attenuation configuration for both IVAS_dec and IVAS_rend */ /* #################### End BASOP porting switches ############################ */ #endif lib_dec/bass_psfilter_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -555,7 +555,11 @@ void bass_psfilter_fx( FOR( i = 0; i < subfr_len; i++ ) { /* err[i] = syn_fx[i] - gain*syn2_fx[i] */ #ifdef FIX2007_BASSPSFILTER_OVERFLOW err[i] = msu_r( L_shr_sat( L_mult0( gain, syn2_fx[i] ), exp2 ), syn_fx[i], 16384 ); /* Q15 */ #else err[i] = msu_r( L_shr( L_mult0( gain, syn2_fx[i] ), exp2 ), syn_fx[i], 16384 ); /* Q15 */ #endif move16(); /* the sign is inverted but it is not important because we calculate energy with 'err[i]' x 'err[i]' Loading lib_rend/ivas_objectRenderer_fx.c +13 −2 Original line number Diff line number Diff line Loading @@ -604,13 +604,16 @@ ivas_error TDREND_Update_object_positions_fx( const ISM_METADATA_HANDLE *hIsmMetaData /* i : Input metadata for ISM objects */ ) { #ifndef NONBE_1377_REND_DIRATT_CONF TDREND_DirAtten_t *DirAtten_p; #endif Word16 nS; Word32 Pos_fx[3]; // Q25 Word32 Dir_fx[3]; // Q30 ivas_error error; #ifndef NONBE_1377_REND_DIRATT_CONF DirAtten_p = hBinRendererTd->DirAtten_p; #endif /* For each source, write the frame data to the source object*/ FOR( nS = 0; nS < num_src; nS++ ) Loading @@ -635,11 +638,12 @@ ivas_error TDREND_Update_object_positions_fx( { return error; } #ifndef NONBE_1377_REND_DIRATT_CONF IF( NE_32( ( error = TDREND_MIX_SRC_SetDirAtten_fx( hBinRendererTd, nS, DirAtten_p ) ), IVAS_ERR_OK ) ) { return error; } #endif IF( hIsmMetaData[nS]->non_diegetic_flag ) { Loading Loading @@ -790,6 +794,9 @@ ivas_error ivas_td_binaural_open_ext_fx( RENDER_CONFIG_DATA *hRendCfg, /* i : Renderer configuration */ LSSETUP_CUSTOM_STRUCT *customLsInput, const Word32 outFs, #ifdef NONBE_1377_REND_DIRATT_CONF const Word16 object_id, /* i: Object ID */ #endif Word16 *SrcInd, Word16 *num_src ) { Loading Loading @@ -839,7 +846,11 @@ ivas_error ivas_td_binaural_open_ext_fx( if ( NULL != hRendCfg ) { #ifdef NONBE_1377_REND_DIRATT_CONF directivity_fx = hRendCfg->directivity_fx + 3 * object_id; /* Address calculation -- no BASOPs */ #else directivity_fx = hRendCfg->directivity_fx; #endif distAtt_fx = hRendCfg->distAtt_fx; } Loading Loading
apps/renderer.c +3 −0 Original line number Diff line number Diff line Loading @@ -1308,6 +1308,9 @@ int main( { masaIds[i] = 0u; } #ifdef NONBE_1377_REND_DIRATT_CONF IVAS_REND_SetObjectIDs( hIvasRend ); #endif for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) { Loading
lib_com/common_api_types.h +0 −1 Original line number Diff line number Diff line Loading @@ -363,7 +363,6 @@ typedef struct _IVAS_RENDER_CONFIG Word16 directivity_fx[IVAS_MAX_NUM_OBJECTS * 3]; // has the following q-factor pattern: {6, 6, 15, 6, 6, 15, 6, 6, 15, 6, 6, 15} float distAtt[3]; Word32 distAtt_fx[3]; /* {Q27, Q30, Q30} */ } IVAS_RENDER_CONFIG_DATA, *IVAS_RENDER_CONFIG_HANDLE; typedef struct Loading
lib_com/options.h +3 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ #define FIX_1995_REVERB_INIT /* VA/Nokia: issue 1995: Fix use-of-uninitialized-value in ivas_binaural_reverb_init() */ #define FIX_1996_MASKING_NOISE /* Dlb: Heavy precision loss in ola buffers causing discontinuity*/ #define FIX1998_APA_EXEC_SCALING /* FhG: fix scaling of apa_exec_ivas_fx(); avoid continuously worse scaling with previous data */ #define FIX2007_BASSPSFILTER_OVERFLOW /* FhG: use saturing operator, to avoid overflow in bass_psfilter_fx() */ /* #################### Start BASOP porting switches ############################ */ Loading @@ -114,6 +115,8 @@ // #define USE_PARAMBIN_16BIT_ROM // #define USE_TDREND_16BIT_ROM #endif #define NONBE_1377_REND_DIRATT_CONF /* Eri: Issue 1377: Error in directivity attenuation configuration for both IVAS_dec and IVAS_rend */ /* #################### End BASOP porting switches ############################ */ #endif
lib_dec/bass_psfilter_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -555,7 +555,11 @@ void bass_psfilter_fx( FOR( i = 0; i < subfr_len; i++ ) { /* err[i] = syn_fx[i] - gain*syn2_fx[i] */ #ifdef FIX2007_BASSPSFILTER_OVERFLOW err[i] = msu_r( L_shr_sat( L_mult0( gain, syn2_fx[i] ), exp2 ), syn_fx[i], 16384 ); /* Q15 */ #else err[i] = msu_r( L_shr( L_mult0( gain, syn2_fx[i] ), exp2 ), syn_fx[i], 16384 ); /* Q15 */ #endif move16(); /* the sign is inverted but it is not important because we calculate energy with 'err[i]' x 'err[i]' Loading
lib_rend/ivas_objectRenderer_fx.c +13 −2 Original line number Diff line number Diff line Loading @@ -604,13 +604,16 @@ ivas_error TDREND_Update_object_positions_fx( const ISM_METADATA_HANDLE *hIsmMetaData /* i : Input metadata for ISM objects */ ) { #ifndef NONBE_1377_REND_DIRATT_CONF TDREND_DirAtten_t *DirAtten_p; #endif Word16 nS; Word32 Pos_fx[3]; // Q25 Word32 Dir_fx[3]; // Q30 ivas_error error; #ifndef NONBE_1377_REND_DIRATT_CONF DirAtten_p = hBinRendererTd->DirAtten_p; #endif /* For each source, write the frame data to the source object*/ FOR( nS = 0; nS < num_src; nS++ ) Loading @@ -635,11 +638,12 @@ ivas_error TDREND_Update_object_positions_fx( { return error; } #ifndef NONBE_1377_REND_DIRATT_CONF IF( NE_32( ( error = TDREND_MIX_SRC_SetDirAtten_fx( hBinRendererTd, nS, DirAtten_p ) ), IVAS_ERR_OK ) ) { return error; } #endif IF( hIsmMetaData[nS]->non_diegetic_flag ) { Loading Loading @@ -790,6 +794,9 @@ ivas_error ivas_td_binaural_open_ext_fx( RENDER_CONFIG_DATA *hRendCfg, /* i : Renderer configuration */ LSSETUP_CUSTOM_STRUCT *customLsInput, const Word32 outFs, #ifdef NONBE_1377_REND_DIRATT_CONF const Word16 object_id, /* i: Object ID */ #endif Word16 *SrcInd, Word16 *num_src ) { Loading Loading @@ -839,7 +846,11 @@ ivas_error ivas_td_binaural_open_ext_fx( if ( NULL != hRendCfg ) { #ifdef NONBE_1377_REND_DIRATT_CONF directivity_fx = hRendCfg->directivity_fx + 3 * object_id; /* Address calculation -- no BASOPs */ #else directivity_fx = hRendCfg->directivity_fx; #endif distAtt_fx = hRendCfg->distAtt_fx; } Loading