Loading lib_com/delay_comp.c +19 −4 Original line number Diff line number Diff line Loading @@ -50,13 +50,18 @@ *--------------------------------------------------------------------------*/ /*! r: delay value in ns */ int32_t get_delay( const int16_t enc_dec, /* i : encoder/decoder flag */ const int32_t io_fs, /* i : input/output sampling frequency */ const IVAS_FORMAT ivas_format, /* i : IVAS format */ HANDLE_CLDFB_FILTER_BANK hCldfb, /* i : Handle of Cldfb analysis */ #ifndef FIX_I59_LFE_TD_DELAY RENDERER_TYPE renderer_type, /* i : IVAS rendering type */ const int32_t binaural_latency_ns /* i : binaural renderer HRTF delay in ns */ #else const int32_t binaural_latency_ns /* i : binauralization delay in ns */ #endif ) { int32_t delay = 0; Loading Loading @@ -94,7 +99,16 @@ int32_t get_delay( else /* IVAS */ { delay = IVAS_DEC_DELAY_NS; #ifdef FIX_I59_LFE_TD_DELAY if ( hCldfb != NULL ) { /* compensate for filterbank delay */ delay += IVAS_FB_DEC_DELAY_NS; } /* compensate for binauralization delay */ delay += binaural_latency_ns; #else if ( hCldfb != NULL || renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) { delay += IVAS_FB_DEC_DELAY_NS; Loading @@ -104,6 +118,7 @@ int32_t get_delay( { delay += binaural_latency_ns; } #endif } } Loading lib_com/ivas_prot.h +21 −2 Original line number Diff line number Diff line Loading @@ -222,8 +222,14 @@ ivas_error pre_proc_front_ivas( const int16_t flag_16k_smc, /* i : flag to indicate if the OL SMC is run at 16 kHz */ const int16_t front_vad_flag, /* i : front-VAD flag to overwrite VAD decision */ const int16_t force_front_vad, /* i : flag to force VAD decision */ #ifdef LOW_RATE_TRANS const int16_t front_vad_dtx_flag, /* i : front-VAD DTX flag to overwrite VAD decision*/ const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t ivas_format /* i : IVAS format */ #else const int16_t front_vad_dtx_flag /* i : front-VAD DTX flag to overwrite VAD decision*/ ,const int32_t ivas_total_brate /* i : IVAS total bitrate */ #endif ); ivas_error pre_proc_ivas( Loading Loading @@ -638,6 +644,14 @@ void set_transient_stereo( float currFlatness[] /* i/o: current flatness */ ); #ifdef LOW_RATE_TRANS int16_t transient_analysis( TRAN_DET_HANDLE hTranDet, /* i : handle transient detection */ const float cor_map_LT[], /* i : LT correlation map */ const float multi_harm_limit /* i : multi harminic threshold */ ); #endif void ivas_post_proc( SCE_DEC_HANDLE hSCE, /* i/o: SCE decoder structure */ CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ Loading Loading @@ -3125,10 +3139,11 @@ int16_t ivas_sba_get_analysis_order( const int16_t sba_order /* i : Ambisonic (SBA) order */ ); #ifndef SBA_DIRAC_RENDERER_TYPE_CLEANUP int16_t ivas_sba_get_order_transport( const int16_t nchan_transport /* i : Number of transport channels */ ); #endif /*! r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ Loading Loading @@ -4978,7 +4993,11 @@ void ivas_lfe_enc( ivas_error ivas_create_lfe_dec( LFE_DEC_HANDLE *hLFE_out, /* o : IVAS LFE decoder structure */ const int32_t output_Fs, /* i : output sampling rate */ #ifdef FIX_I59_LFE_TD_DELAY const int32_t binauralization_delay_ns /* i : additional LFE delay to sync with binaural renderer */ #else const float add_delay_s /* i : additional LFE delay to sync with binaural filter */ #endif ); void ivas_lfe_dec_close( Loading lib_com/ivas_sba_config.c +2 −2 Original line number Diff line number Diff line Loading @@ -246,7 +246,7 @@ int16_t ivas_sba_get_analysis_order( return sba_analysis_order; } #ifndef SBA_DIRAC_RENDERER_TYPE_CLEANUP /*-------------------------------------------------------------------* * ivas_sba_get_order_transport() * Loading @@ -272,7 +272,7 @@ int16_t ivas_sba_get_order_transport( return ( sba_order ); } #endif /*-------------------------------------------------------------------* * ivas_sba_get_nchan() Loading lib_com/options.h +7 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,13 @@ #define BRATE_SWITCHING_RENDERING /* Bitrate switching changes related to the renderers */ #define FIX_150 /* Issue 150: Crash in EVS mono, HQ_HARMONIC mode, related to BASOP_NOGLOB */ #define FIX_VBR_COMPLEXITY /* Issue 234: fix extremely high complexity numbers for IVAS EVS mode */ #define SBA_DIRAC_RENDERER_TYPE_CLEANUP /* Remove leftovers in renderer_type logic in SBA DirAC decoder */ #define FIX_I59_LFE_TD_DELAY /* Issue 59: correcting delay of LFE for TD renderer */ #define FIX_I59_LFE_CLDFB /* Issue 59: correcting LFE handling for fastconv binaural rendering */ #define FIX_I59_DELAY_ROUNDING /* Issue 59: rounding in sample domain instead of nanosec for IVAS_ENC_GetDelay() and IVAS_DEC_GetDelay() */ #define FIX_FIX_I59 /* Issue 59: small fix concerning LFE delay rounding */ #define FIX_I59_CREND /* Issue 59: Fixes for gcc compiler warnings in ivas_crend_utest_utils.c */ #define LOW_RATE_TRANS /* Eri: Contribution 20: low rate encoding of transients */ Loading lib_com/prot.h 100644 → 100755 +9 −5 Original line number Diff line number Diff line Loading @@ -717,8 +717,12 @@ int32_t get_delay( const int32_t io_fs, /* i : input/output sampling frequency */ const IVAS_FORMAT ivas_format, /* i : IVAS format */ HANDLE_CLDFB_FILTER_BANK hCldfb, /* i : Handle of Cldfb analysis */ #ifndef FIX_I59_LFE_TD_DELAY RENDERER_TYPE renderer_type, /* i : IVAS rendering type */ const int32_t binaural_latency_ns /* i : binaural renderer HRTF delay in ns */ #else const int32_t binaural_latency_ns /* i : binauralization delay in ns */ #endif ); void decision_matrix_enc( Loading Loading
lib_com/delay_comp.c +19 −4 Original line number Diff line number Diff line Loading @@ -50,13 +50,18 @@ *--------------------------------------------------------------------------*/ /*! r: delay value in ns */ int32_t get_delay( const int16_t enc_dec, /* i : encoder/decoder flag */ const int32_t io_fs, /* i : input/output sampling frequency */ const IVAS_FORMAT ivas_format, /* i : IVAS format */ HANDLE_CLDFB_FILTER_BANK hCldfb, /* i : Handle of Cldfb analysis */ #ifndef FIX_I59_LFE_TD_DELAY RENDERER_TYPE renderer_type, /* i : IVAS rendering type */ const int32_t binaural_latency_ns /* i : binaural renderer HRTF delay in ns */ #else const int32_t binaural_latency_ns /* i : binauralization delay in ns */ #endif ) { int32_t delay = 0; Loading Loading @@ -94,7 +99,16 @@ int32_t get_delay( else /* IVAS */ { delay = IVAS_DEC_DELAY_NS; #ifdef FIX_I59_LFE_TD_DELAY if ( hCldfb != NULL ) { /* compensate for filterbank delay */ delay += IVAS_FB_DEC_DELAY_NS; } /* compensate for binauralization delay */ delay += binaural_latency_ns; #else if ( hCldfb != NULL || renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) { delay += IVAS_FB_DEC_DELAY_NS; Loading @@ -104,6 +118,7 @@ int32_t get_delay( { delay += binaural_latency_ns; } #endif } } Loading
lib_com/ivas_prot.h +21 −2 Original line number Diff line number Diff line Loading @@ -222,8 +222,14 @@ ivas_error pre_proc_front_ivas( const int16_t flag_16k_smc, /* i : flag to indicate if the OL SMC is run at 16 kHz */ const int16_t front_vad_flag, /* i : front-VAD flag to overwrite VAD decision */ const int16_t force_front_vad, /* i : flag to force VAD decision */ #ifdef LOW_RATE_TRANS const int16_t front_vad_dtx_flag, /* i : front-VAD DTX flag to overwrite VAD decision*/ const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t ivas_format /* i : IVAS format */ #else const int16_t front_vad_dtx_flag /* i : front-VAD DTX flag to overwrite VAD decision*/ ,const int32_t ivas_total_brate /* i : IVAS total bitrate */ #endif ); ivas_error pre_proc_ivas( Loading Loading @@ -638,6 +644,14 @@ void set_transient_stereo( float currFlatness[] /* i/o: current flatness */ ); #ifdef LOW_RATE_TRANS int16_t transient_analysis( TRAN_DET_HANDLE hTranDet, /* i : handle transient detection */ const float cor_map_LT[], /* i : LT correlation map */ const float multi_harm_limit /* i : multi harminic threshold */ ); #endif void ivas_post_proc( SCE_DEC_HANDLE hSCE, /* i/o: SCE decoder structure */ CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ Loading Loading @@ -3125,10 +3139,11 @@ int16_t ivas_sba_get_analysis_order( const int16_t sba_order /* i : Ambisonic (SBA) order */ ); #ifndef SBA_DIRAC_RENDERER_TYPE_CLEANUP int16_t ivas_sba_get_order_transport( const int16_t nchan_transport /* i : Number of transport channels */ ); #endif /*! r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ Loading Loading @@ -4978,7 +4993,11 @@ void ivas_lfe_enc( ivas_error ivas_create_lfe_dec( LFE_DEC_HANDLE *hLFE_out, /* o : IVAS LFE decoder structure */ const int32_t output_Fs, /* i : output sampling rate */ #ifdef FIX_I59_LFE_TD_DELAY const int32_t binauralization_delay_ns /* i : additional LFE delay to sync with binaural renderer */ #else const float add_delay_s /* i : additional LFE delay to sync with binaural filter */ #endif ); void ivas_lfe_dec_close( Loading
lib_com/ivas_sba_config.c +2 −2 Original line number Diff line number Diff line Loading @@ -246,7 +246,7 @@ int16_t ivas_sba_get_analysis_order( return sba_analysis_order; } #ifndef SBA_DIRAC_RENDERER_TYPE_CLEANUP /*-------------------------------------------------------------------* * ivas_sba_get_order_transport() * Loading @@ -272,7 +272,7 @@ int16_t ivas_sba_get_order_transport( return ( sba_order ); } #endif /*-------------------------------------------------------------------* * ivas_sba_get_nchan() Loading
lib_com/options.h +7 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,13 @@ #define BRATE_SWITCHING_RENDERING /* Bitrate switching changes related to the renderers */ #define FIX_150 /* Issue 150: Crash in EVS mono, HQ_HARMONIC mode, related to BASOP_NOGLOB */ #define FIX_VBR_COMPLEXITY /* Issue 234: fix extremely high complexity numbers for IVAS EVS mode */ #define SBA_DIRAC_RENDERER_TYPE_CLEANUP /* Remove leftovers in renderer_type logic in SBA DirAC decoder */ #define FIX_I59_LFE_TD_DELAY /* Issue 59: correcting delay of LFE for TD renderer */ #define FIX_I59_LFE_CLDFB /* Issue 59: correcting LFE handling for fastconv binaural rendering */ #define FIX_I59_DELAY_ROUNDING /* Issue 59: rounding in sample domain instead of nanosec for IVAS_ENC_GetDelay() and IVAS_DEC_GetDelay() */ #define FIX_FIX_I59 /* Issue 59: small fix concerning LFE delay rounding */ #define FIX_I59_CREND /* Issue 59: Fixes for gcc compiler warnings in ivas_crend_utest_utils.c */ #define LOW_RATE_TRANS /* Eri: Contribution 20: low rate encoding of transients */ Loading
lib_com/prot.h 100644 → 100755 +9 −5 Original line number Diff line number Diff line Loading @@ -717,8 +717,12 @@ int32_t get_delay( const int32_t io_fs, /* i : input/output sampling frequency */ const IVAS_FORMAT ivas_format, /* i : IVAS format */ HANDLE_CLDFB_FILTER_BANK hCldfb, /* i : Handle of Cldfb analysis */ #ifndef FIX_I59_LFE_TD_DELAY RENDERER_TYPE renderer_type, /* i : IVAS rendering type */ const int32_t binaural_latency_ns /* i : binaural renderer HRTF delay in ns */ #else const int32_t binaural_latency_ns /* i : binauralization delay in ns */ #endif ); void decision_matrix_enc( Loading