Loading lib_rend/ivas_objectRenderer.c +16 −7 Original line number Diff line number Diff line Loading @@ -187,7 +187,11 @@ ivas_error ivas_td_binaural_open_unwrap( TDREND_MIX_SRC_SetPos( pBinRendTd, nS, Pos ); TDREND_MIX_SRC_SetDir( pBinRendTd, nS, Dir ); #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING TDREND_MIX_SRC_SetPlayState( pBinRendTd, nS, TDREND_PLAYSTATUS_SWITCHING_TO_DIEGETIC ); #else TDREND_MIX_SRC_SetPlayState( pBinRendTd, nS, TDREND_PLAYSTATUS_PLAYING ); #endif TDREND_MIX_SRC_SetDirAtten( pBinRendTd, nS, DirAtten_p ); } } Loading Loading @@ -450,9 +454,8 @@ ivas_error TDREND_GetMix( { Src_p->prevGain = 0; } #endif error = TDREND_REND_RenderSourceHRFilt( Src_p, hrf_left_delta, hrf_right_delta, intp_count, &Src_p->InputFrame_p[subframe_idx * subframe_length], output_buf, subframe_length ); error = TDREND_REND_RenderSourceHRFilt( Src_p, hrf_left_delta, hrf_right_delta, intp_count, output_buf, subframe_length ); } #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING Loading @@ -474,12 +477,12 @@ ivas_error TDREND_GetMix( } if ( SrcRend_p->PlayStatus == TDREND_PLAYSTATUS_PLAYING_NON_DIEGETIC ) { mvr2r( &Src_p->InputFrame_p[( subframe_idx + 1 ) * subframe_length - ITD_MEM_LEN], Src_p->mem_itd, ITD_MEM_LEN ); /* update memory for next frame */ mvr2r( &Src_p->InputFrame_p[subframe_length - ITD_MEM_LEN], Src_p->mem_itd, ITD_MEM_LEN ); /* update memory for next frame */ } if ( Src_p->prevPanGain[0] == pan_left ) { v_multc_acc( &Src_p->InputFrame_p[subframe_idx * subframe_length], pan_left, output_buf[0], subframe_length ); v_multc_acc( &Src_p->InputFrame_p[subframe_idx * subframe_length], pan_right, output_buf[1], subframe_length ); v_multc_acc( Src_p->InputFrame_p, pan_left, output_buf[0], subframe_length ); v_multc_acc( Src_p->InputFrame_p, pan_right, output_buf[1], subframe_length ); } else { Loading @@ -491,9 +494,9 @@ ivas_error TDREND_GetMix( { /* Apply linear gain interpolation in case of abrupt gain changes */ gain_tmp_left = gain_tmp_left + step_left; output_buf[0][j] += Src_p->InputFrame_p[subframe_idx * subframe_length + j] * gain_tmp_left; output_buf[0][j] += Src_p->InputFrame_p[j] * gain_tmp_left; gain_tmp_right = gain_tmp_right + step_right; output_buf[1][j] += Src_p->InputFrame_p[subframe_idx * subframe_length + j] * gain_tmp_right; output_buf[1][j] += Src_p->InputFrame_p[j] * gain_tmp_right; } Src_p->prevPanGain[0] = pan_left; Src_p->prevPanGain[1] = pan_right; Loading @@ -505,6 +508,12 @@ ivas_error TDREND_GetMix( v_multc_acc( &Src_p->InputFrame_p[subframe_idx * subframe_length], pan_right, output_buf[1], subframe_length ); #endif } #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING if ( ( SrcRend_p->InputAvailable == TRUE ) && ( SrcRend_p->PlayStatus != TDREND_PLAYSTATUS_INITIAL ) ) { Src_p->InputFrame_p += subframe_length; } #endif #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING if ( SrcRend_p->PlayStatus == TDREND_PLAYSTATUS_SWITCHING_TO_NON_DIEGETIC ) Loading lib_rend/ivas_objectRenderer_hrFilt.c +4 −11 Original line number Diff line number Diff line Loading @@ -63,9 +63,6 @@ ivas_error TDREND_REND_RenderSourceHRFilt( const float *hrf_left_delta, /* i : Left filter interpolation delta */ const float *hrf_right_delta, /* i : Right filter interpolation delta */ const int16_t intp_count, /* i : Interpolation count */ #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING float *intput_buf, /* o : Input buffer */ #endif float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ const int16_t subframe_length /* i : Subframe length in use */ ) Loading @@ -73,11 +70,7 @@ ivas_error TDREND_REND_RenderSourceHRFilt( float LeftOutputFrame[L_SPATIAL_SUBFR_48k]; float RightOutputFrame[L_SPATIAL_SUBFR_48k]; #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING TDREND_Apply_ITD( intput_buf, LeftOutputFrame, RightOutputFrame, &Src_p->previtd, Src_p->itd, Src_p->mem_itd, subframe_length ); #else TDREND_Apply_ITD( Src_p->InputFrame_p, LeftOutputFrame, RightOutputFrame, &Src_p->previtd, Src_p->itd, Src_p->mem_itd, subframe_length ); #endif TDREND_firfilt( LeftOutputFrame, Src_p->hrf_left_prev, hrf_left_delta, intp_count, Src_p->mem_hrf_left, subframe_length, Src_p->filterlength, Src_p->Gain, Src_p->prevGain ); TDREND_firfilt( RightOutputFrame, Src_p->hrf_right_prev, hrf_right_delta, intp_count, Src_p->mem_hrf_right, subframe_length, Src_p->filterlength, Src_p->Gain, Src_p->prevGain ); Src_p->prevGain = Src_p->Gain; Loading lib_rend/ivas_prot_rend.h +0 −3 Original line number Diff line number Diff line Loading @@ -349,9 +349,6 @@ ivas_error TDREND_REND_RenderSourceHRFilt( const float *hrf_left_delta, /* i: Left filter interpolation delta */ const float *hrf_right_delta, /* i: Right filter interpolation delta */ const int16_t intp_count, /* i: Interpolation count */ #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING float *intput_buf, /* o : Input buffer */ #endif float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ const int16_t subframe_length /* i : Subframe length in use */ ); Loading tests/renderer/constants.py +5 −8 Original line number Diff line number Diff line Loading @@ -148,17 +148,11 @@ FORMAT_TO_METADATA_FILES = { str(TESTV_DIR.joinpath("stvISM3.csv")), str(TESTV_DIR.joinpath("stvISM4.csv")), ], "NDP_ISM4": [ str(TESTV_DIR.joinpath("stvISM1.csv")), str(TESTV_DIR.joinpath("stvISM_with_non_diegetic_pan_switch.csv")), str(TESTV_DIR.joinpath("stvISM3.csv")), str(TESTV_DIR.joinpath("stvISM4.csv")), ], "MASA1": [str(TESTV_DIR.joinpath("stv1MASA1TC48c.met"))], "MASA2": [str(TESTV_DIR.joinpath("stv2MASA2TC48c.met"))], } FORMAT_TO_METADATA_WITH_NON_DIEGETIC_PAN_FILES = { FORMAT_TO_METADATA_FILES_WITH_NON_DIEGETIC_PAN = { "ISM4": [ str(TESTV_DIR.joinpath("stvISM1.csv")), str(TESTV_DIR.joinpath("stvISM_with_non_diegetic_switch.csv")), Loading @@ -167,6 +161,7 @@ FORMAT_TO_METADATA_WITH_NON_DIEGETIC_PAN_FILES = { ] } """ Input formats """ INPUT_FORMATS_AMBI = ["FOA", "HOA2", "HOA3"] INPUT_FORMATS_MC = ["MONO", "STEREO", "5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"] Loading Loading @@ -207,7 +202,9 @@ HR_TRAJECTORIES_TO_TEST = [ "rotate_yaw_pitch_roll1", ] CONFIG_FILES_TO_TEST = ["just_reverb"] CONFIG_FILES_TO_TEST = [ "just_reverb" ] """ Per-testcase xfail SNR thresholds (dB) """ pass_snr = dict() # not relevant for tests anymore, should be deprecated soon Loading tests/renderer/test_renderer.py +1 −1 Original line number Diff line number Diff line Loading @@ -463,7 +463,7 @@ def test_non_diegetic_pan_ism_static(test_info, in_fmt, out_fmt, non_diegetic_pa @pytest.mark.parametrize("in_fmt", ["ISM4"]) def test_ism_with_non_diegetic_pan_binaural_static(test_info, in_fmt, out_fmt): try: in_meta_files = FORMAT_TO_METADATA_WITH_NON_DIEGETIC_PAN_FILES[in_fmt] in_meta_files = FORMAT_TO_METADATA_FILES_WITH_NON_DIEGETIC_PAN[in_fmt] except: in_meta_files = None Loading Loading
lib_rend/ivas_objectRenderer.c +16 −7 Original line number Diff line number Diff line Loading @@ -187,7 +187,11 @@ ivas_error ivas_td_binaural_open_unwrap( TDREND_MIX_SRC_SetPos( pBinRendTd, nS, Pos ); TDREND_MIX_SRC_SetDir( pBinRendTd, nS, Dir ); #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING TDREND_MIX_SRC_SetPlayState( pBinRendTd, nS, TDREND_PLAYSTATUS_SWITCHING_TO_DIEGETIC ); #else TDREND_MIX_SRC_SetPlayState( pBinRendTd, nS, TDREND_PLAYSTATUS_PLAYING ); #endif TDREND_MIX_SRC_SetDirAtten( pBinRendTd, nS, DirAtten_p ); } } Loading Loading @@ -450,9 +454,8 @@ ivas_error TDREND_GetMix( { Src_p->prevGain = 0; } #endif error = TDREND_REND_RenderSourceHRFilt( Src_p, hrf_left_delta, hrf_right_delta, intp_count, &Src_p->InputFrame_p[subframe_idx * subframe_length], output_buf, subframe_length ); error = TDREND_REND_RenderSourceHRFilt( Src_p, hrf_left_delta, hrf_right_delta, intp_count, output_buf, subframe_length ); } #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING Loading @@ -474,12 +477,12 @@ ivas_error TDREND_GetMix( } if ( SrcRend_p->PlayStatus == TDREND_PLAYSTATUS_PLAYING_NON_DIEGETIC ) { mvr2r( &Src_p->InputFrame_p[( subframe_idx + 1 ) * subframe_length - ITD_MEM_LEN], Src_p->mem_itd, ITD_MEM_LEN ); /* update memory for next frame */ mvr2r( &Src_p->InputFrame_p[subframe_length - ITD_MEM_LEN], Src_p->mem_itd, ITD_MEM_LEN ); /* update memory for next frame */ } if ( Src_p->prevPanGain[0] == pan_left ) { v_multc_acc( &Src_p->InputFrame_p[subframe_idx * subframe_length], pan_left, output_buf[0], subframe_length ); v_multc_acc( &Src_p->InputFrame_p[subframe_idx * subframe_length], pan_right, output_buf[1], subframe_length ); v_multc_acc( Src_p->InputFrame_p, pan_left, output_buf[0], subframe_length ); v_multc_acc( Src_p->InputFrame_p, pan_right, output_buf[1], subframe_length ); } else { Loading @@ -491,9 +494,9 @@ ivas_error TDREND_GetMix( { /* Apply linear gain interpolation in case of abrupt gain changes */ gain_tmp_left = gain_tmp_left + step_left; output_buf[0][j] += Src_p->InputFrame_p[subframe_idx * subframe_length + j] * gain_tmp_left; output_buf[0][j] += Src_p->InputFrame_p[j] * gain_tmp_left; gain_tmp_right = gain_tmp_right + step_right; output_buf[1][j] += Src_p->InputFrame_p[subframe_idx * subframe_length + j] * gain_tmp_right; output_buf[1][j] += Src_p->InputFrame_p[j] * gain_tmp_right; } Src_p->prevPanGain[0] = pan_left; Src_p->prevPanGain[1] = pan_right; Loading @@ -505,6 +508,12 @@ ivas_error TDREND_GetMix( v_multc_acc( &Src_p->InputFrame_p[subframe_idx * subframe_length], pan_right, output_buf[1], subframe_length ); #endif } #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING if ( ( SrcRend_p->InputAvailable == TRUE ) && ( SrcRend_p->PlayStatus != TDREND_PLAYSTATUS_INITIAL ) ) { Src_p->InputFrame_p += subframe_length; } #endif #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING if ( SrcRend_p->PlayStatus == TDREND_PLAYSTATUS_SWITCHING_TO_NON_DIEGETIC ) Loading
lib_rend/ivas_objectRenderer_hrFilt.c +4 −11 Original line number Diff line number Diff line Loading @@ -63,9 +63,6 @@ ivas_error TDREND_REND_RenderSourceHRFilt( const float *hrf_left_delta, /* i : Left filter interpolation delta */ const float *hrf_right_delta, /* i : Right filter interpolation delta */ const int16_t intp_count, /* i : Interpolation count */ #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING float *intput_buf, /* o : Input buffer */ #endif float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ const int16_t subframe_length /* i : Subframe length in use */ ) Loading @@ -73,11 +70,7 @@ ivas_error TDREND_REND_RenderSourceHRFilt( float LeftOutputFrame[L_SPATIAL_SUBFR_48k]; float RightOutputFrame[L_SPATIAL_SUBFR_48k]; #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING TDREND_Apply_ITD( intput_buf, LeftOutputFrame, RightOutputFrame, &Src_p->previtd, Src_p->itd, Src_p->mem_itd, subframe_length ); #else TDREND_Apply_ITD( Src_p->InputFrame_p, LeftOutputFrame, RightOutputFrame, &Src_p->previtd, Src_p->itd, Src_p->mem_itd, subframe_length ); #endif TDREND_firfilt( LeftOutputFrame, Src_p->hrf_left_prev, hrf_left_delta, intp_count, Src_p->mem_hrf_left, subframe_length, Src_p->filterlength, Src_p->Gain, Src_p->prevGain ); TDREND_firfilt( RightOutputFrame, Src_p->hrf_right_prev, hrf_right_delta, intp_count, Src_p->mem_hrf_right, subframe_length, Src_p->filterlength, Src_p->Gain, Src_p->prevGain ); Src_p->prevGain = Src_p->Gain; Loading
lib_rend/ivas_prot_rend.h +0 −3 Original line number Diff line number Diff line Loading @@ -349,9 +349,6 @@ ivas_error TDREND_REND_RenderSourceHRFilt( const float *hrf_left_delta, /* i: Left filter interpolation delta */ const float *hrf_right_delta, /* i: Right filter interpolation delta */ const int16_t intp_count, /* i: Interpolation count */ #ifdef FIX_504_CLICK_NON_DIEGETIC_STATUS_SWITCHING float *intput_buf, /* o : Input buffer */ #endif float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ const int16_t subframe_length /* i : Subframe length in use */ ); Loading
tests/renderer/constants.py +5 −8 Original line number Diff line number Diff line Loading @@ -148,17 +148,11 @@ FORMAT_TO_METADATA_FILES = { str(TESTV_DIR.joinpath("stvISM3.csv")), str(TESTV_DIR.joinpath("stvISM4.csv")), ], "NDP_ISM4": [ str(TESTV_DIR.joinpath("stvISM1.csv")), str(TESTV_DIR.joinpath("stvISM_with_non_diegetic_pan_switch.csv")), str(TESTV_DIR.joinpath("stvISM3.csv")), str(TESTV_DIR.joinpath("stvISM4.csv")), ], "MASA1": [str(TESTV_DIR.joinpath("stv1MASA1TC48c.met"))], "MASA2": [str(TESTV_DIR.joinpath("stv2MASA2TC48c.met"))], } FORMAT_TO_METADATA_WITH_NON_DIEGETIC_PAN_FILES = { FORMAT_TO_METADATA_FILES_WITH_NON_DIEGETIC_PAN = { "ISM4": [ str(TESTV_DIR.joinpath("stvISM1.csv")), str(TESTV_DIR.joinpath("stvISM_with_non_diegetic_switch.csv")), Loading @@ -167,6 +161,7 @@ FORMAT_TO_METADATA_WITH_NON_DIEGETIC_PAN_FILES = { ] } """ Input formats """ INPUT_FORMATS_AMBI = ["FOA", "HOA2", "HOA3"] INPUT_FORMATS_MC = ["MONO", "STEREO", "5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"] Loading Loading @@ -207,7 +202,9 @@ HR_TRAJECTORIES_TO_TEST = [ "rotate_yaw_pitch_roll1", ] CONFIG_FILES_TO_TEST = ["just_reverb"] CONFIG_FILES_TO_TEST = [ "just_reverb" ] """ Per-testcase xfail SNR thresholds (dB) """ pass_snr = dict() # not relevant for tests anymore, should be deprecated soon Loading
tests/renderer/test_renderer.py +1 −1 Original line number Diff line number Diff line Loading @@ -463,7 +463,7 @@ def test_non_diegetic_pan_ism_static(test_info, in_fmt, out_fmt, non_diegetic_pa @pytest.mark.parametrize("in_fmt", ["ISM4"]) def test_ism_with_non_diegetic_pan_binaural_static(test_info, in_fmt, out_fmt): try: in_meta_files = FORMAT_TO_METADATA_WITH_NON_DIEGETIC_PAN_FILES[in_fmt] in_meta_files = FORMAT_TO_METADATA_FILES_WITH_NON_DIEGETIC_PAN[in_fmt] except: in_meta_files = None Loading