Loading lib_com/ivas_prot.h +0 −8 Original line number Diff line number Diff line Loading @@ -4368,14 +4368,6 @@ void ivas_spar_dec_upmixer_sf( const int16_t nchan_internal /* i : number of internal channels */ ); #ifndef FIX_997_REMOVE_SPAR_DEC_UPMIXER void ivas_spar_dec_upmixer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ float *output[], /* i/o: input/output audio channels */ const int16_t nchan_internal, /* i : number of internal channels */ const int16_t output_frame /* i : output frame length */ ); #endif /* MD module */ ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc, /* i/o: SPAR MD encoder handle */ Loading lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -155,7 +155,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define SPLIT_REND_WITH_HEAD_ROT */ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ #define FIX_997_REMOVE_SPAR_DEC_UPMIXER /* VA: issue 997: remove obsolete function ivas_spar_dec_upmixer() */ #define FIX_944_REMOVE_LS_RENDERER_CALL_IN_STEREO /* VA: issue 994: remove an obsolete call of function ivas_ls_setup_conversion() in stereo */ #define FIX_1003_PARAMISM_BINAURAL_RECONFIG_USAN /* FhG: fix for #1003: fix USAN caused by ParamISM reconfig */ #define FIX_1001_ARI_HM_OVERFLOW /* FhG: fix for undef behaviour in in the harmonic TCX model arithmetic coder */ Loading lib_dec/ivas_spar_decoder.c +0 −134 Original line number Diff line number Diff line Loading @@ -1250,19 +1250,11 @@ void ivas_spar_dec_set_render_map( return; } #ifdef FIX_997_REMOVE_SPAR_DEC_UPMIXER /*-------------------------------------------------------------------* * ivas_spar_dec_set_render_params() * * IVAS SPAR set rendering parameters *-------------------------------------------------------------------*/ #else /*-------------------------------------------------------------------* * ivas_spar_dec_upmixer() * * IVAS SPAR upmixer *-------------------------------------------------------------------*/ #endif void ivas_spar_dec_set_render_params( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ Loading Loading @@ -1369,132 +1361,6 @@ void ivas_spar_dec_digest_tc( return; } #ifndef FIX_997_REMOVE_SPAR_DEC_UPMIXER /*-------------------------------------------------------------------* * ivas_spar_dec_upmixer() * * *-------------------------------------------------------------------*/ void ivas_spar_dec_upmixer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ float *output[], /* i/o: input/output audio channels */ const int16_t nchan_internal, /* i : number of internal channels */ const int16_t output_frame /* i : output frame length */ ) { SPAR_DEC_HANDLE hSpar; SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; int16_t nchan_transport, nchan_out; int16_t subframe_idx, n, i; int16_t n_samples_sf; float *output_f_local[MAX_OUTPUT_CHANNELS]; float Pcm_tmp[MAX_OUTPUT_CHANNELS][L_FRAME48k]; float *pPcm_tmp[MAX_OUTPUT_CHANNELS]; int16_t nchan_internal_total; int16_t sba_ch_offset; hSpar = st_ivas->hSpar; nchan_transport = hSpar->hMdDec->spar_md_cfg.nchan_transport; nchan_out = st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe; n_samples_sf = JBM_CLDFB_SLOTS_IN_SUBFRAME * NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS ); nchan_internal_total = nchan_internal; sba_ch_offset = 0; if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { nchan_internal_total += st_ivas->nchan_ism; sba_ch_offset = st_ivas->nchan_ism; } for ( n = 0; n < MAX_OUTPUT_CHANNELS; n++ ) { output_f_local[n] = output[n + sba_ch_offset]; } for ( n = 0; n < nchan_internal_total; n++ ) { st_ivas->hTcBuffer->tc[n] = output[n]; } /*---------------------------------------------------------------------* * TD decorrelation *---------------------------------------------------------------------*/ for ( i = 0; i < nchan_internal; i++ ) { pPcm_tmp[i] = Pcm_tmp[i]; } if ( hSpar->hMdDec->td_decorr_flag ) { if ( hSpar->hTdDecorr ) { ivas_td_decorr_process( hSpar->hTdDecorr, output_f_local, pPcm_tmp, output_frame ); if ( hSpar->hTdDecorr->num_apd_outputs >= ( nchan_internal - nchan_transport ) ) { for ( i = 0; i < nchan_internal - nchan_transport; i++ ) { mvr2r( pPcm_tmp[hSpar->hTdDecorr->num_apd_outputs - 1 - i], st_ivas->hTcBuffer->tc[nchan_internal_total - 1 - i], output_frame ); } } else { for ( i = 0; i < nchan_internal - nchan_transport; i++ ) { set_zero( st_ivas->hTcBuffer->tc[nchan_internal_total - 1 - i], output_frame ); } for ( i = 0; i < hSpar->hTdDecorr->num_apd_outputs; i++ ) { mvr2r( pPcm_tmp[hSpar->hTdDecorr->num_apd_outputs - 1 - i], st_ivas->hTcBuffer->tc[nchan_internal_total - 1 - i], output_frame ); } } } } ivas_spar_dec_set_render_params( st_ivas, DEFAULT_JBM_CLDFB_TIMESLOTS ); if ( st_ivas->hDirAC != 0 ) { ivas_dirac_dec_set_md_map( st_ivas, DEFAULT_JBM_CLDFB_TIMESLOTS ); } for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { ivas_spar_dec_upmixer_sf( st_ivas, output_f_local, nchan_internal ); for ( n = 0; n < nchan_out; n++ ) { output_f_local[n] += n_samples_sf; } /* update combined orientation access index */ ivas_combined_orientation_update_index( st_ivas->hCombinedOrientationData, n_samples_sf ); } for ( n = 0; n < nchan_internal_total; n++ ) { st_ivas->hTcBuffer->tc[n] = NULL; } if ( st_ivas->hDirAC != NULL && st_ivas->hSpatParamRendCom != NULL ) { hSpatParamRendCom = st_ivas->hSpatParamRendCom; if ( st_ivas->hDirAC->hConfig->dec_param_estim == 1 ) { hSpatParamRendCom->dirac_read_idx = ( hSpatParamRendCom->dirac_read_idx + DEFAULT_JBM_CLDFB_TIMESLOTS ) % hSpatParamRendCom->dirac_md_buffer_length; } else { hSpatParamRendCom->dirac_read_idx = ( hSpatParamRendCom->dirac_read_idx + DEFAULT_JBM_SUBFRAMES_5MS ) % hSpatParamRendCom->dirac_md_buffer_length; } } return; } #endif /*-------------------------------------------------------------------* * ivas_spar_dec_upmixer_sf() Loading Loading
lib_com/ivas_prot.h +0 −8 Original line number Diff line number Diff line Loading @@ -4368,14 +4368,6 @@ void ivas_spar_dec_upmixer_sf( const int16_t nchan_internal /* i : number of internal channels */ ); #ifndef FIX_997_REMOVE_SPAR_DEC_UPMIXER void ivas_spar_dec_upmixer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ float *output[], /* i/o: input/output audio channels */ const int16_t nchan_internal, /* i : number of internal channels */ const int16_t output_frame /* i : output frame length */ ); #endif /* MD module */ ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc, /* i/o: SPAR MD encoder handle */ Loading
lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -155,7 +155,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define SPLIT_REND_WITH_HEAD_ROT */ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ #define FIX_997_REMOVE_SPAR_DEC_UPMIXER /* VA: issue 997: remove obsolete function ivas_spar_dec_upmixer() */ #define FIX_944_REMOVE_LS_RENDERER_CALL_IN_STEREO /* VA: issue 994: remove an obsolete call of function ivas_ls_setup_conversion() in stereo */ #define FIX_1003_PARAMISM_BINAURAL_RECONFIG_USAN /* FhG: fix for #1003: fix USAN caused by ParamISM reconfig */ #define FIX_1001_ARI_HM_OVERFLOW /* FhG: fix for undef behaviour in in the harmonic TCX model arithmetic coder */ Loading
lib_dec/ivas_spar_decoder.c +0 −134 Original line number Diff line number Diff line Loading @@ -1250,19 +1250,11 @@ void ivas_spar_dec_set_render_map( return; } #ifdef FIX_997_REMOVE_SPAR_DEC_UPMIXER /*-------------------------------------------------------------------* * ivas_spar_dec_set_render_params() * * IVAS SPAR set rendering parameters *-------------------------------------------------------------------*/ #else /*-------------------------------------------------------------------* * ivas_spar_dec_upmixer() * * IVAS SPAR upmixer *-------------------------------------------------------------------*/ #endif void ivas_spar_dec_set_render_params( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ Loading Loading @@ -1369,132 +1361,6 @@ void ivas_spar_dec_digest_tc( return; } #ifndef FIX_997_REMOVE_SPAR_DEC_UPMIXER /*-------------------------------------------------------------------* * ivas_spar_dec_upmixer() * * *-------------------------------------------------------------------*/ void ivas_spar_dec_upmixer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ float *output[], /* i/o: input/output audio channels */ const int16_t nchan_internal, /* i : number of internal channels */ const int16_t output_frame /* i : output frame length */ ) { SPAR_DEC_HANDLE hSpar; SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; int16_t nchan_transport, nchan_out; int16_t subframe_idx, n, i; int16_t n_samples_sf; float *output_f_local[MAX_OUTPUT_CHANNELS]; float Pcm_tmp[MAX_OUTPUT_CHANNELS][L_FRAME48k]; float *pPcm_tmp[MAX_OUTPUT_CHANNELS]; int16_t nchan_internal_total; int16_t sba_ch_offset; hSpar = st_ivas->hSpar; nchan_transport = hSpar->hMdDec->spar_md_cfg.nchan_transport; nchan_out = st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe; n_samples_sf = JBM_CLDFB_SLOTS_IN_SUBFRAME * NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS ); nchan_internal_total = nchan_internal; sba_ch_offset = 0; if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { nchan_internal_total += st_ivas->nchan_ism; sba_ch_offset = st_ivas->nchan_ism; } for ( n = 0; n < MAX_OUTPUT_CHANNELS; n++ ) { output_f_local[n] = output[n + sba_ch_offset]; } for ( n = 0; n < nchan_internal_total; n++ ) { st_ivas->hTcBuffer->tc[n] = output[n]; } /*---------------------------------------------------------------------* * TD decorrelation *---------------------------------------------------------------------*/ for ( i = 0; i < nchan_internal; i++ ) { pPcm_tmp[i] = Pcm_tmp[i]; } if ( hSpar->hMdDec->td_decorr_flag ) { if ( hSpar->hTdDecorr ) { ivas_td_decorr_process( hSpar->hTdDecorr, output_f_local, pPcm_tmp, output_frame ); if ( hSpar->hTdDecorr->num_apd_outputs >= ( nchan_internal - nchan_transport ) ) { for ( i = 0; i < nchan_internal - nchan_transport; i++ ) { mvr2r( pPcm_tmp[hSpar->hTdDecorr->num_apd_outputs - 1 - i], st_ivas->hTcBuffer->tc[nchan_internal_total - 1 - i], output_frame ); } } else { for ( i = 0; i < nchan_internal - nchan_transport; i++ ) { set_zero( st_ivas->hTcBuffer->tc[nchan_internal_total - 1 - i], output_frame ); } for ( i = 0; i < hSpar->hTdDecorr->num_apd_outputs; i++ ) { mvr2r( pPcm_tmp[hSpar->hTdDecorr->num_apd_outputs - 1 - i], st_ivas->hTcBuffer->tc[nchan_internal_total - 1 - i], output_frame ); } } } } ivas_spar_dec_set_render_params( st_ivas, DEFAULT_JBM_CLDFB_TIMESLOTS ); if ( st_ivas->hDirAC != 0 ) { ivas_dirac_dec_set_md_map( st_ivas, DEFAULT_JBM_CLDFB_TIMESLOTS ); } for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { ivas_spar_dec_upmixer_sf( st_ivas, output_f_local, nchan_internal ); for ( n = 0; n < nchan_out; n++ ) { output_f_local[n] += n_samples_sf; } /* update combined orientation access index */ ivas_combined_orientation_update_index( st_ivas->hCombinedOrientationData, n_samples_sf ); } for ( n = 0; n < nchan_internal_total; n++ ) { st_ivas->hTcBuffer->tc[n] = NULL; } if ( st_ivas->hDirAC != NULL && st_ivas->hSpatParamRendCom != NULL ) { hSpatParamRendCom = st_ivas->hSpatParamRendCom; if ( st_ivas->hDirAC->hConfig->dec_param_estim == 1 ) { hSpatParamRendCom->dirac_read_idx = ( hSpatParamRendCom->dirac_read_idx + DEFAULT_JBM_CLDFB_TIMESLOTS ) % hSpatParamRendCom->dirac_md_buffer_length; } else { hSpatParamRendCom->dirac_read_idx = ( hSpatParamRendCom->dirac_read_idx + DEFAULT_JBM_SUBFRAMES_5MS ) % hSpatParamRendCom->dirac_md_buffer_length; } } return; } #endif /*-------------------------------------------------------------------* * ivas_spar_dec_upmixer_sf() Loading