diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 1cbac362b6fd285c87418c0635a6878aad5416f7..4502f8dd6aab5d936d01759564800c00da57030c 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4682,19 +4682,11 @@ void ivas_td_decorr_APD_iir_filter( out1_re = ( in1_re * in2_re ) - ( in1_im * in2_im ); MAC(1); MULT(1); \ out1_im = ( in1_re * in2_im ) + ( in2_re * in1_im ); MAC(1); MULT(1); -#ifdef FIX_820_DOUBLE_PREC_MACROS #define IVAS_CALCULATE_ABS( re, im, out ) \ out = sqrtf( ( re * re ) + ( im * im ) ); MAC(1); MULT(1); SQRT(1); #define IVAS_CALCULATE_RABS( re, out ) \ out = sqrtf( re * re ); MULT(1); SQRT(1); -#else -#define IVAS_CALCULATE_ABS( re, im, out ) \ - out = (float) sqrt( ( re * re ) + ( im * im ) ); MAC(1); MULT(1); SQRT(1); - -#define IVAS_CALCULATE_RABS( re, out ) \ - out = (float) sqrt( re * re ); MULT(1); SQRT(1); -#endif #define IVAS_CALCULATE_SQ_ABS( re, im, out ) \ out = (float) ( ( re * re ) + ( im * im ) ); MAC(1); MULT(1); @@ -5357,15 +5349,10 @@ void ivas_ism2sba_sf( const int16_t sba_order /* i : Ambisonic (SBA) order */ ); -#ifndef FIX_866_MOVE_VBAP -/*----------------------------------------------------------------------------------* - * Amplitude Panning tool prototypes - *----------------------------------------------------------------------------------*/ -#else + /*----------------------------------------------------------------------------------* * Amplitude Panning VBAP prototypes *----------------------------------------------------------------------------------*/ -#endif void panning_wrap_angles( const float azi_deg, /* i : azimuth in degrees for panning direction (positive left) */ @@ -5373,27 +5360,6 @@ void panning_wrap_angles( float *azi_wrapped, /* o : wrapped azimuth component */ float *ele_wrapped /* o : wrapped elevation component */ ); -#ifndef FIX_866_MOVE_VBAP -ivas_error vbap_init_data( - VBAP_HANDLE *hVBAPdata, /* i/o: handle for VBAP data structure that will be initialized */ - const float *speaker_node_azi_deg, /* i : vector of speaker node azimuths (positive left) */ - const float *speaker_node_ele_deg, /* i : vector of speaker node elevations (positive up) */ - const int16_t num_speaker_nodes, /* i : number of speaker nodes in the set */ - const IVAS_FORMAT ivas_format /* i : IVAS format */ -); - -void vbap_free_data( - VBAP_HANDLE *hVBAPdata /* i/o: VBAP handle to be freed */ -); - -void vbap_determine_gains( - const VBAP_HANDLE hVBAPdata, /* i : VBAP structure */ - float *gains, /* o : gain vector for speaker nodes for given direction */ - const int16_t azi_deg, /* i : azimuth in degrees for panning direction (positive left) */ - const int16_t ele_deg, /* i : elevation in degrees for panning direction (positive up) */ - const int16_t use_object_mode /* i : select between object mode panning and spatial mode panning */ -); -#endif void v_sort_ind( float *x, /* i/o: Vector to be sorted */ @@ -5401,6 +5367,7 @@ void v_sort_ind( const int16_t len /* i : vector length */ ); + /*----------------------------------------------------------------------------------* * LS Renderer prototypes *----------------------------------------------------------------------------------*/ diff --git a/lib_com/options.h b/lib_com/options.h index b922b13398721893423a50f7f58ca0ffb4a20375..20d8ccce146423c3171ea7cf62a3a80bbebf8df6 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -150,10 +150,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_820_DOUBLE_PREC_MACROS /* VA: issue 820: Double precision arithmetic in IVAS_CALCULATE_ABS() */ -#define FIX_814_DOUBLE_PREC_IN_REVERB /* Philips: Issue 814: Replace double precision arithmetic in reverb */ -#define FIX_866_MOVE_VBAP /* Nokia: Issue 866: Move VBAP to lib_rend */ -#define FIX_863_REMOVE_REDUNDANCIES_OMASA /* Nokia/VA: Issue 863: Remove redundancies in stereo_classifier for OMASA */ #define FIX_879_USAN_ERROR_IN_MASA_DECODING /* FhG: Issue 879 : avoid arithmetic with NULL pointer in the DirAC decoder to fix USAN error */ /* #################### End BE switches ################################## */ @@ -165,10 +161,6 @@ #define NONBE_FIX_856_TCX_LTP_SYNTH_FILTER /* FhG: issue 856: correct filtering length for tcx-ltp synth filtering*/ #define NONBE_UNIFIED_DECODING_PATHS /* FhG: unify decoding paths */ -#define NONBE_FIX_861_MASA_CRASH_STEREO_SWITCHING /* VA: issue 861: fix MASA 2TC crash when switching from MDCT stereo to TD/DFT stereo */ -#define BE_FIX_867_PARAMC_RECONFIG /* FhG: issue #867: fix ParamMC CLDFB buffer dealloc when reconfiguring */ -#define NONBE_FIX_850_MASA_HBR_META_RATIO_DECODING /* Nokia: issue #850: Fixes rare non-valid diffuseness and energy ratio values in 2dir MASA. */ -#define NONBE_FIX_MDCT_STEREO_DTX_MONO_OUT /* FhG: fix clicks in DTX -> active transition frames in MDCT-Stereo with mono output */ #define NONBE_FIX_836_PARAMUPMIX_HEADROT /* Dlb: issue #836: Resolve "ParamUpmix MC to SBA conversion done on the already binaurlized output" */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index 05c81f91edab3f57a22002da3eb6f34d0cbf588b..ae8ea8cd8c394837c77ed73b67c2795d4f428377 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -184,7 +184,6 @@ static ivas_error ivas_binRenderer_convModuleOpen( { hBinRenConvModule->numTapsArray[bandIdx] = hBinRenConvModule->numTaps; } -#ifdef FIX_814_DOUBLE_PREC_IN_REVERB for ( ; bandIdx < 10; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.6f * hBinRenConvModule->numTaps ); @@ -201,24 +200,6 @@ static ivas_error ivas_binRenderer_convModuleOpen( { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.3f * hBinRenConvModule->numTaps ); } -#else - for ( ; bandIdx < 10; bandIdx++ ) - { - hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceil( 0.6f * hBinRenConvModule->numTaps ); - } - for ( ; bandIdx < 20; bandIdx++ ) - { - hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceil( 0.5f * hBinRenConvModule->numTaps ); - } - for ( ; bandIdx < 30; bandIdx++ ) - { - hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceil( 0.4f * hBinRenConvModule->numTaps ); - } - for ( ; bandIdx < hBinRenderer->conv_band; bandIdx++ ) - { - hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceil( 0.3f * hBinRenConvModule->numTaps ); - } -#endif } else { diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 815422a18278aad4aa2f44aeceddf8d2a52363ab..fb8ab22a050e38ddef801b3f99d5adfc063fbb28 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -1260,14 +1260,12 @@ void ivas_qmetadata_to_dirac( hSpatParamRendCom->energy_ratio2[meta_write_index][b] = q_direction->band_data[band].energy_ratio[block]; hSpatParamRendCom->diffuseness_vector[meta_write_index][b] -= q_direction->band_data[band].energy_ratio[block]; -#ifdef NONBE_FIX_850_MASA_HBR_META_RATIO_DECODING /* Sanitize diffuseness for rare cases where floating point inaccuracy could result in negative diffuseness. */ if ( hSpatParamRendCom->diffuseness_vector[meta_write_index][b] < 0.0f ) { hSpatParamRendCom->diffuseness_vector[meta_write_index][b] = 0.0f; } -#endif if ( q_direction->coherence_band_data != NULL ) { hSpatParamRendCom->spreadCoherence2[meta_write_index][b] = q_direction->coherence_band_data[band].spread_coherence[block] / 255.0f; diff --git a/lib_dec/ivas_mc_param_dec.c b/lib_dec/ivas_mc_param_dec.c index d11e846a84b62ecb5c865ea5bdf8483e0652c747..3352a79781cd11b2eec741dabdc85a972b751d19 100644 --- a/lib_dec/ivas_mc_param_dec.c +++ b/lib_dec/ivas_mc_param_dec.c @@ -982,26 +982,16 @@ ivas_error ivas_param_mc_dec_reconfig( { int16_t n_cldfb_slots; - if ( hParamMC->Cldfb_RealBuffer_tc != NULL ) { free( hParamMC->Cldfb_RealBuffer_tc ); hParamMC->Cldfb_RealBuffer_tc = NULL; } - -#ifdef BE_FIX_867_PARAMC_RECONFIG if ( hParamMC->Cldfb_ImagBuffer_tc != NULL ) { free( hParamMC->Cldfb_ImagBuffer_tc ); hParamMC->Cldfb_ImagBuffer_tc = NULL; } -#else - if ( hParamMC->Cldfb_RealBuffer_tc != NULL ) - { - free( hParamMC->Cldfb_RealBuffer_tc ); - hParamMC->Cldfb_RealBuffer_tc = NULL; - } -#endif n_cldfb_slots = DEFAULT_JBM_CLDFB_TIMESLOTS; if ( st_ivas->hDecoderConfig->Opt_tsm ) @@ -1027,19 +1017,11 @@ ivas_error ivas_param_mc_dec_reconfig( free( hParamMC->Cldfb_RealBuffer_tc ); hParamMC->Cldfb_RealBuffer_tc = NULL; } -#ifdef BE_FIX_867_PARAMC_RECONFIG if ( hParamMC->Cldfb_ImagBuffer_tc != NULL ) { free( hParamMC->Cldfb_ImagBuffer_tc ); hParamMC->Cldfb_ImagBuffer_tc = NULL; } -#else - if ( hParamMC->Cldfb_RealBuffer_tc != NULL ) - { - free( hParamMC->Cldfb_RealBuffer_tc ); - hParamMC->Cldfb_RealBuffer_tc = NULL; - } -#endif } } #endif diff --git a/lib_dec/ivas_qmetadata_dec.c b/lib_dec/ivas_qmetadata_dec.c index 47d3d29fb14618ecee643ee2a5a5d536943fd1cb..c3134fa8a1f31e3680111e25a61a2c03271cee7a 100644 --- a/lib_dec/ivas_qmetadata_dec.c +++ b/lib_dec/ivas_qmetadata_dec.c @@ -1104,7 +1104,6 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( } } -#ifdef NONBE_FIX_850_MASA_HBR_META_RATIO_DECODING /* Scale energy ratios that sum to over one */ for ( b = 0; b < hQMetaData->q_direction[0].cfg.nbands; b++ ) { @@ -1123,10 +1122,8 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( } } } -#endif } - #ifdef DEBUG_MODE_QMETADATA for ( d = 0; d < hQMetaData->no_directions; d++ ) { diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index e98adfd60b9a6e49a7da21e499c59d736a6eee50..d311d7b419eecee299313c9adeabb52f138f60e1 100644 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -1302,12 +1302,10 @@ void synchro_synthesis( } } -#ifdef NONBE_FIX_MDCT_STEREO_DTX_MONO_OUT if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->nchan_out == 1 && !is_DTXrate( hCPE->element_brate ) && is_DTXrate( hCPE->last_element_brate ) ) { mvr2r( sts[0]->prev_synth_buffer, sts[1]->prev_synth_buffer, delay_comp_TD ); } -#endif nChannels = ( hCPE->element_mode == IVAS_CPE_MDCT ) ? 2 : hCPE->nchan_out; for ( n = 0; n < nChannels; n++ ) diff --git a/lib_enc/ivas_masa_enc.c b/lib_enc/ivas_masa_enc.c index feff99a7d2fa3973c397dc4406175519c8e74b50..6019ee03cccf5a706ca89db9d1a332801f0d7b39 100644 --- a/lib_enc/ivas_masa_enc.c +++ b/lib_enc/ivas_masa_enc.c @@ -1983,11 +1983,8 @@ void ivas_masa_enc_reconfigure( copy_encoder_config( st_ivas, st_ivas->hCPE[cpe_id]->hCoreCoder[n], 0 ); st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ } -#ifdef FIX_863_REMOVE_REDUNDANCIES_OMASA + if ( ivas_total_brate - ism_total_brate < MIN_BRATE_MDCT_STEREO ) -#else - if ( ivas_total_brate - ism_total_brate < MASA_STEREO_MIN_BITRATE || ivas_total_brate - ism_total_brate < MIN_BRATE_MDCT_STEREO ) -#endif { st_ivas->hCPE[cpe_id]->element_mode = IVAS_CPE_DFT; } diff --git a/lib_enc/ivas_stereo_classifier.c b/lib_enc/ivas_stereo_classifier.c index 5f77e70cbda1f17cd8c0dec7a5253f0869b2f509..4735aaa5829fdc8de811f4a8cf1b6d8b81b3df4f 100644 --- a/lib_enc/ivas_stereo_classifier.c +++ b/lib_enc/ivas_stereo_classifier.c @@ -112,11 +112,7 @@ int16_t select_stereo_mode( stereo_switching_flag = 1; -#ifdef NONBE_FIX_861_MASA_CRASH_STEREO_SWITCHING if ( hCPE->element_brate >= MIN_BRATE_MDCT_STEREO || ( ( ivas_format == MASA_FORMAT || ivas_format == MASA_ISM_FORMAT ) && ivas_total_brate < MASA_STEREO_MIN_BITRATE ) -#else - if ( hCPE->element_brate >= MIN_BRATE_MDCT_STEREO || ( ivas_format >= MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE ) -#endif #ifdef DEBUGGING || ( hCPE->stereo_mode_cmdl == IVAS_CPE_DFT || hCPE->stereo_mode_cmdl == IVAS_CPE_TD ) #endif @@ -124,11 +120,8 @@ int16_t select_stereo_mode( { stereo_switching_flag = 0; } -#ifdef FIX_863_REMOVE_REDUNDANCIES_OMASA + if ( hCPE->element_brate >= MIN_BRATE_MDCT_STEREO ) -#else - if ( hCPE->element_brate >= MIN_BRATE_MDCT_STEREO && !( hCPE->element_brate == IVAS_48k && ivas_total_brate == IVAS_32k ) ) /* the second condition for PARAM mode OMASA */ -#endif { hStereoClassif->prev_lrtd_mode = 0; hStereoClassif->lrtd_mode = 0; @@ -139,12 +132,7 @@ int16_t select_stereo_mode( hStereoClassif->lrtd_mode = 0; element_mode = IVAS_CPE_DFT; - -#ifdef NONBE_FIX_861_MASA_CRASH_STEREO_SWITCHING if ( stereo_switching_flag == 1 && hCPE->element_brate > IVAS_13k2 && hCPE->hCoreCoder[0]->hSpMusClas->past_dlp[0] < 1.0f && hCPE->hCoreCoder[0]->hSpMusClas->wdlp_xtalk < -0.01f && hCPE->hCoreCoder[0]->vad_flag == 1 && ( hCPE->hStereoMdct->sw_uncorr || hStereoClassif->xtalk_decision ) ) -#else - if ( hCPE->element_brate > IVAS_13k2 && hCPE->hCoreCoder[0]->hSpMusClas->past_dlp[0] < 1.0f && hCPE->hCoreCoder[0]->hSpMusClas->wdlp_xtalk < -0.01f && hCPE->hCoreCoder[0]->vad_flag == 1 && ( hCPE->hStereoMdct->sw_uncorr || hStereoClassif->xtalk_decision ) ) -#endif { hStereoClassif->lrtd_mode = 1; element_mode = IVAS_CPE_TD; diff --git a/lib_rend/ivas_prot_rend.h b/lib_rend/ivas_prot_rend.h index 4f2044ad50955f28ca401a74304231da02d9d202..5abd6b000d0191ad95f17486653795f2b5c0063a 100644 --- a/lib_rend/ivas_prot_rend.h +++ b/lib_rend/ivas_prot_rend.h @@ -133,7 +133,7 @@ void efap_determine_gains( const float ele_deg, /* i : elevation in degrees for panning direction (positive up) */ const int16_t efap_mode /* i : indicates whether EFAP or EFIP is used */ ); -#ifdef FIX_866_MOVE_VBAP + /*----------------------------------------------------------------------------------* * Amplitude Panning VBAP prototypes @@ -158,7 +158,7 @@ void vbap_determine_gains( const int16_t ele_deg, /* i : elevation in degrees for panning direction (positive up) */ const int16_t use_object_mode /* i : select between object mode panning and spatial mode panning */ ); -#endif + /*----------------------------------------------------------------------------------* * DirAC/MASA rendering diff --git a/lib_rend/ivas_reverb.c b/lib_rend/ivas_reverb.c index 8c962c11eb045ed16164cad7533f152f3ccf3de5..537ecde2c294e90f1f6f071000ad4f6fc24cb1c1 100644 --- a/lib_rend/ivas_reverb.c +++ b/lib_rend/ivas_reverb.c @@ -1201,13 +1201,8 @@ ivas_error ivas_reverb_open( /* Defining appropriate windowing parameters for FFT filters to prevent aliasing */ fft_hist_size = pState->fft_size - pState->fft_subblock_size; -#ifdef FIX_814_DOUBLE_PREC_IN_REVERB transition_start = (int16_t) roundf( FFT_FILTER_WND_FLAT_REGION * fft_hist_size ); transition_length = (int16_t) roundf( FFT_FILTER_WND_TRANS_REGION * fft_hist_size ); -#else - transition_start = (int16_t) round( FFT_FILTER_WND_FLAT_REGION * fft_hist_size ); - transition_length = (int16_t) round( FFT_FILTER_WND_TRANS_REGION * fft_hist_size ); -#endif /* Compute the window used for FFT filters */ ivas_reverb_define_window_fft( pTime_window, transition_start, transition_length, nr_fc_fft_filter ); diff --git a/lib_rend/ivas_reverb_filter_design.c b/lib_rend/ivas_reverb_filter_design.c index 256b0772a012c2aca7ccd92f869d512b0267ddfc..2c4dc75303e0aba1873da883eee29d81a0132307 100644 --- a/lib_rend/ivas_reverb_filter_design.c +++ b/lib_rend/ivas_reverb_filter_design.c @@ -587,11 +587,7 @@ void ivas_reverb_calc_color_levels( /* Limiting the frequency response gradients Find frequency band closest to chosen pivot frequency. */ -#ifdef FIX_814_DOUBLE_PREC_IN_REVERB idx_pivot = (int16_t) roundf( STEP_LIMIT_PIVOT_FREQ / freq_step ); -#else - idx_pivot = (int16_t) round( STEP_LIMIT_PIVOT_FREQ / freq_step ); -#endif /* Perform step limiting */ response_step_limit( pTarget_color_L, freq_count, RESPONSE_STEP_LIMIT_LF, RESPONSE_STEP_LIMIT_HF, idx_pivot ); @@ -727,11 +723,7 @@ void ivas_reverb_get_hrtf_set_properties( } else { -#ifdef FIX_814_DOUBLE_PREC_IN_REVERB base_idx = (int16_t) floorf( tbl_index ); -#else - base_idx = (int16_t) floor( tbl_index ); -#endif relative_pos = tbl_index - base_idx; if ( base_idx > ( in_freq_count - 2 ) ) /* In case of extrapolation (above last bin), choose nearest */ {