Loading lib_com/ivas_stat_com.h +1 −1 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ typedef struct Word32 edited_yaw_fx; /* Q22 */ Word32 edited_pitch_fx; /* Q22 */ Word32 edited_gain_fx; /* Q30 */ Word32 edited_gain_fx; /* Q31 */ #endif Word16 non_diegetic_flag; /* Non-diegetic (non-headtracked) object flag */ Loading lib_dec/ivas_dirac_dec_fx.c +5 −2 Original line number Diff line number Diff line Loading @@ -3768,8 +3768,11 @@ void ivas_dirac_dec_render_sf_fx( const Word32 ele_fx = L_shl( el1_32, Q22 - Q16 ); // Q16 -> Q22 efap_determine_gains_fx( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains_fx[i], azi_fx, ele_fx, EFAP_MODE_EFAP ); #ifdef OBJ_EDITING_API // TODO: Enable gain editing feature // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30 // TODO: Align Q-values IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30 } #endif } } Loading lib_dec/ivas_ism_param_dec_fx.c +15 −5 Original line number Diff line number Diff line Loading @@ -1000,8 +1000,12 @@ void ivas_ism_dec_digest_tc_fx( move32(); st_ivas->hIsmRendererData->gains_fx[i][1] = L_shr( L_deposit_h( gains_fx[1] ), 1 ); // Q31 -> Q30 move32(); // TODO: Enable gain editing feature // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], CPE_CHANNELS ); // Q30, Q30 --> Q30 // TODO: Align Q values IF ( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], CPE_CHANNELS ); // Q30, Q30 --> Q30 } #else Word16 gains_fx[2]; ivas_ism_get_stereo_gains_fx( (Word16) L_shr( st_ivas->hIsmMetaData[i]->azimuth_fx, 22 ), (Word16) L_shr( st_ivas->hIsmMetaData[i]->elevation_fx, 22 ), &gains_fx[0], &gains_fx[1] ); Loading Loading @@ -1050,7 +1054,10 @@ void ivas_ism_dec_digest_tc_fx( efap_determine_gains_fx( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains_fx[i], azimuth_fx, elevation_fx, EFAP_MODE_EFAP ); #ifdef OBJ_EDITING_API // TODO: align Q values properly IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hEFAPdata->numSpk ); } #endif } } Loading @@ -1063,8 +1070,11 @@ void ivas_ism_dec_digest_tc_fx( Word16 ele = shr( extract_h( st_ivas->hIsmMetaData[i]->elevation_fx ), 22 - 16 ); // Q0 ivas_dirac_dec_get_response_fx( azi, ele, st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIntSetup.ambisonics_order, Q30 ); #ifdef OBJ_EDITING_API // TODO: Enable gain editing feature // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], ivas_sba_get_nchan_fx( st_ivas->hIntSetup.ambisonics_order, 0 ) ); // Q30, Q30 --> Q30 // TODO: Align Q-values IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], ivas_sba_get_nchan_fx( st_ivas->hIntSetup.ambisonics_order, 0 ) ); // Q30, Q30 --> Q30 } #endif } } Loading lib_dec/ivas_ism_renderer_fx.c +5 −2 Original line number Diff line number Diff line Loading @@ -279,8 +279,11 @@ void ivas_ism_render_sf_fx( { efap_determine_gains_fx( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains_fx[i], L_shl( azimuth, 22 ), L_shl( elevation, 22 ), EFAP_MODE_EFAP ); #ifdef OBJ_EDITING_API // TODO: Enable gain editing feature // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30 // TODO: Align Q-values IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30 } #endif } } Loading lib_rend/ivas_objectRenderer_sources_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -704,7 +704,7 @@ static void TDREND_SRC_SPATIAL_SetGain( const Word32 Gain /* i : Front-pointing vector */ ) { Src_p->SrcRend_p->SrcGain_p_fx[0] = extract_h( Gain ); // Check incoming Q-value Src_p->SrcRend_p->SrcGain_p_fx[0] = add( extract_h( L_shr( Gain, Q1 ) ), 1 ); // TODO: Check incoming Q-value and fix this } #endif Loading Loading
lib_com/ivas_stat_com.h +1 −1 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ typedef struct Word32 edited_yaw_fx; /* Q22 */ Word32 edited_pitch_fx; /* Q22 */ Word32 edited_gain_fx; /* Q30 */ Word32 edited_gain_fx; /* Q31 */ #endif Word16 non_diegetic_flag; /* Non-diegetic (non-headtracked) object flag */ Loading
lib_dec/ivas_dirac_dec_fx.c +5 −2 Original line number Diff line number Diff line Loading @@ -3768,8 +3768,11 @@ void ivas_dirac_dec_render_sf_fx( const Word32 ele_fx = L_shl( el1_32, Q22 - Q16 ); // Q16 -> Q22 efap_determine_gains_fx( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains_fx[i], azi_fx, ele_fx, EFAP_MODE_EFAP ); #ifdef OBJ_EDITING_API // TODO: Enable gain editing feature // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30 // TODO: Align Q-values IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30 } #endif } } Loading
lib_dec/ivas_ism_param_dec_fx.c +15 −5 Original line number Diff line number Diff line Loading @@ -1000,8 +1000,12 @@ void ivas_ism_dec_digest_tc_fx( move32(); st_ivas->hIsmRendererData->gains_fx[i][1] = L_shr( L_deposit_h( gains_fx[1] ), 1 ); // Q31 -> Q30 move32(); // TODO: Enable gain editing feature // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], CPE_CHANNELS ); // Q30, Q30 --> Q30 // TODO: Align Q values IF ( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], CPE_CHANNELS ); // Q30, Q30 --> Q30 } #else Word16 gains_fx[2]; ivas_ism_get_stereo_gains_fx( (Word16) L_shr( st_ivas->hIsmMetaData[i]->azimuth_fx, 22 ), (Word16) L_shr( st_ivas->hIsmMetaData[i]->elevation_fx, 22 ), &gains_fx[0], &gains_fx[1] ); Loading Loading @@ -1050,7 +1054,10 @@ void ivas_ism_dec_digest_tc_fx( efap_determine_gains_fx( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains_fx[i], azimuth_fx, elevation_fx, EFAP_MODE_EFAP ); #ifdef OBJ_EDITING_API // TODO: align Q values properly IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hEFAPdata->numSpk ); } #endif } } Loading @@ -1063,8 +1070,11 @@ void ivas_ism_dec_digest_tc_fx( Word16 ele = shr( extract_h( st_ivas->hIsmMetaData[i]->elevation_fx ), 22 - 16 ); // Q0 ivas_dirac_dec_get_response_fx( azi, ele, st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIntSetup.ambisonics_order, Q30 ); #ifdef OBJ_EDITING_API // TODO: Enable gain editing feature // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], ivas_sba_get_nchan_fx( st_ivas->hIntSetup.ambisonics_order, 0 ) ); // Q30, Q30 --> Q30 // TODO: Align Q-values IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], ivas_sba_get_nchan_fx( st_ivas->hIntSetup.ambisonics_order, 0 ) ); // Q30, Q30 --> Q30 } #endif } } Loading
lib_dec/ivas_ism_renderer_fx.c +5 −2 Original line number Diff line number Diff line Loading @@ -279,8 +279,11 @@ void ivas_ism_render_sf_fx( { efap_determine_gains_fx( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains_fx[i], L_shl( azimuth, 22 ), L_shl( elevation, 22 ), EFAP_MODE_EFAP ); #ifdef OBJ_EDITING_API // TODO: Enable gain editing feature // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30 // TODO: Align Q-values IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) ) { v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30 } #endif } } Loading
lib_rend/ivas_objectRenderer_sources_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -704,7 +704,7 @@ static void TDREND_SRC_SPATIAL_SetGain( const Word32 Gain /* i : Front-pointing vector */ ) { Src_p->SrcRend_p->SrcGain_p_fx[0] = extract_h( Gain ); // Check incoming Q-value Src_p->SrcRend_p->SrcGain_p_fx[0] = add( extract_h( L_shr( Gain, Q1 ) ), 1 ); // TODO: Check incoming Q-value and fix this } #endif Loading