diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index d7f4f563139b88672e45ed189f5ad204aa9f4f5f..202ccf3dd9237dc534cf3a0aceda5901f6e9e738 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -982,20 +982,14 @@ ivas_error ivas_ism_metadata_enc_create( ivas_error ivas_ism_metadata_dec_create( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE const int16_t n_ISms, /* i : number of separately coded objects */ -#else - const int16_t n_ISms, /* i : number of objects */ -#endif int32_t element_brate_tmp[] /* o : element bitrate per object */ ); -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE void ivas_ism_reset_metadata_handle_dec( ISM_METADATA_HANDLE hIsmMeta /* i/o: ISM metadata handle */ ); -#endif ivas_error ivas_ism_enc( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ float *data[], /* i : input signal [channels][samples] */ diff --git a/lib_com/options.h b/lib_com/options.h index eabcfa0239963ba95d4ed63a945787e41e7a4ddb..43cb02520ede8f5b965f04b2be7cd46f3c0afd4d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -159,7 +159,6 @@ #define FIX_NUM_SUBFRAME_UPDATE #define FIX_1053_REVERB_RECONFIGURATION /* Philips: issue 1053: fix for dynamic switching of acoustic environment */ -#define FIX_1060_USAN_ARRAY_BOUNDS /* FhG: issue 1060: USAN array-bounds errors */ /* #################### End BE switches ################################## */ @@ -168,9 +167,6 @@ /* any switch which is non-be wrt selection floating point code */ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ -#define NONBE_FIX_1067_QUATERNIONSLERP_INACCURACIES /* Philips: issue 1067: QuaternionSlerp inaccuracies in corner cases */ -#define NONBE_FIX_1065_ISM_MD_HANDLE /* VA: issue 1065: Allocate only the necessary number of ISM MD decoder handles. */ #define NONBE_FIX_1028_1DB_TCX_LEVEL_DROP /* VA: Harmonize the logic setting LP weighting factor between TCX encoder and TCX decoder */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 842bac31c5327277e0d5489c8c2d127a43c1d2ba..29d8cdb855f2eafbba4f51c8c8b4563b91dc21d0 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -2317,13 +2317,8 @@ void ivas_dirac_dec_render_sf( for ( l = 0; l < hSpatParamRendCom->num_freq_bands; l++ ) { -#ifdef FIX_1060_USAN_ARRAY_BOUNDS Cldfb_RealBuffer[j2][k][l] += g * *( tc_re++ ); Cldfb_ImagBuffer[j2][k][l] += g * *( tc_im++ ); -#else - Cldfb_RealBuffer[j2][0][k * hSpatParamRendCom->num_freq_bands + l] += g * *( tc_re++ ); - Cldfb_ImagBuffer[j2][0][k * hSpatParamRendCom->num_freq_bands + l] += g * *( tc_im++ ); -#endif } w1 += hSpatParamRendCom->num_freq_bands; } diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index db95801840d2b3637edd9c373557a5997613035a..34e876b22a3b2d780831d0edf6b8ca22da6e876d 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -1327,11 +1327,7 @@ ivas_error ivas_init_decoder( } } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, element_brate_tmp ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nSCE, element_brate_tmp ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -1665,7 +1661,6 @@ ivas_error ivas_init_decoder( reset_indices_dec( st_ivas->hSCE[0]->hCoreCoder[0] ); -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE if ( hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) { if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) @@ -1675,14 +1670,11 @@ ivas_error ivas_init_decoder( } else { -#endif if ( ( error = ivas_ism_metadata_dec_create( st_ivas, 1, NULL ) ) != IVAS_ERR_OK ) { return error; } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE } -#endif } else if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) { diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index ef13d2463db77908b7b861b266ccc3e96dd50ffd..df5dd6744e672dc83cf34b2a005f09bb99b18e3f 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -270,25 +270,12 @@ static ivas_error ivas_ism_bitrate_switching_dec( } /* Close the TD Binaural renderer */ -#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close( &st_ivas->hBinRendererTd ); if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { ivas_reverb_close( &st_ivas->hReverb ); } -#else - if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) - { - ivas_td_binaural_close( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; - - if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) - { - ivas_reverb_close( &st_ivas->hReverb ); - } - } -#endif } else { diff --git a/lib_dec/ivas_ism_metadata_dec.c b/lib_dec/ivas_ism_metadata_dec.c index bd7a906e20dcc178586abbb3933b3b787616224d..4525b21e106dc7f73d76df7ebe196a1f39e66897 100644 --- a/lib_dec/ivas_ism_metadata_dec.c +++ b/lib_dec/ivas_ism_metadata_dec.c @@ -642,7 +642,6 @@ ivas_error ivas_ism_metadata_dec( return IVAS_ERR_OK; } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE /*-------------------------------------------------------------------* * ivas_ism_reset_metadata_handle_dec() @@ -675,7 +674,6 @@ void ivas_ism_reset_metadata_handle_dec( return; } -#endif /*------------------------------------------------------------------------- * ivas_ism_metadata_dec_create() @@ -684,61 +682,28 @@ void ivas_ism_reset_metadata_handle_dec( *-------------------------------------------------------------------------*/ ivas_error ivas_ism_metadata_dec_create( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE - const int16_t n_ISms, /* i : number of separately coded objects */ -#else - const int16_t n_ISms, /* i : number of objects */ -#endif + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t n_ISms, /* i : number of separately coded objects */ int32_t element_brate_tmp[] /* o : element bitrate per object */ ) { int16_t ch; ivas_error error; -/* allocate ISM metadata handles */ -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE + /* allocate ISM metadata handles */ for ( ch = 0; ch < n_ISms; ch++ ) -#else - for ( ch = 0; ch < MAX_NUM_OBJECTS; ch++ ) -#endif { -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE if ( st_ivas->hIsmMetaData[ch] == NULL ) /* note: the handle can be allocated in OMASA bitrate switching from ISM_MASA_MODE_xxx_ONE_OBJ to ISM_MASA_MODE_DISC mode for 'ch==0' */ { -#endif if ( ( st_ivas->hIsmMetaData[ch] = (ISM_METADATA_HANDLE) malloc( sizeof( ISM_METADATA_FRAME ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for ISM MetaData\n" ) ); } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE } -#endif -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE ivas_ism_reset_metadata_handle_dec( st_ivas->hIsmMetaData[ch] ); -#else - st_ivas->hIsmMetaData[ch]->last_ism_metadata_flag = 0; - st_ivas->hIsmMetaData[ch]->position_angle.last_angle1_idx = 0; - st_ivas->hIsmMetaData[ch]->position_angle.last_angle2_idx = 1 << ( ISM_ELEVATION_NBITS - 1 ); - st_ivas->hIsmMetaData[ch]->orientation_angle.last_angle1_idx = 0; - st_ivas->hIsmMetaData[ch]->orientation_angle.last_angle2_idx = 1 << ( ISM_ELEVATION_NBITS - 1 ); - st_ivas->hIsmMetaData[ch]->last_radius_idx = 8; /* Init to radius 1.0 */ - - st_ivas->hIsmMetaData[ch]->last_true_azimuth = 0; - st_ivas->hIsmMetaData[ch]->last_true_elevation = 0; - st_ivas->hIsmMetaData[ch]->last_azimuth = 0; - st_ivas->hIsmMetaData[ch]->last_elevation = 0; - - st_ivas->hIsmMetaData[ch]->ism_imp = -1; - st_ivas->hIsmMetaData[ch]->ism_md_null_flag = 0; - st_ivas->hIsmMetaData[ch]->ism_md_lowrate_flag = 0; - - ivas_ism_reset_metadata( st_ivas->hIsmMetaData[ch] ); -#endif } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE /* sanity freeing - it can happen only in reconfiguration when a smaller number of handles than before is requested */ for ( ; ch < MAX_NUM_OBJECTS; ch++ ) { @@ -748,7 +713,6 @@ ivas_error ivas_ism_metadata_dec_create( st_ivas->hIsmMetaData[ch] = NULL; } } -#endif if ( element_brate_tmp != NULL ) { diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 368f6e76b73251af322a48132a5a3ed6dca9ad0f..b49069a6b36a56d27fbd880c8bc158c30e9ca6a3 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1210,15 +1210,7 @@ static ivas_error ivas_mc_dec_reconfig( if ( st_ivas->hBinRendererTd != NULL && ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) ) { -#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#else - if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) - { - ivas_td_binaural_close( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; - } -#endif } #ifdef SPLIT_REND_WITH_HEAD_ROT diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 2c636cd58cd7b3584784ff1dc580c5c908539dc6..6e66eeaa9ac769e2c2376237cbdd67794857b2a8 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -300,7 +300,6 @@ ivas_error ivas_omasa_dec_config( if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) { /* the full number of hIsmMetaData are needed for EXT output */ -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE if ( st_ivas->hIsmMetaData[0] == NULL ) { if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) @@ -315,17 +314,6 @@ ivas_error ivas_omasa_dec_config( ivas_ism_reset_metadata_handle_dec( st_ivas->hIsmMetaData[k] ); } } -#else - n_MD = st_ivas->nchan_ism; - ivas_ism_metadata_close( st_ivas->hIsmMetaData, 0 ); - - if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) - { - return error; - } - - ivas_ism_metadata_close( st_ivas->hIsmMetaData, n_MD ); -#endif } else { @@ -340,20 +328,15 @@ ivas_error ivas_omasa_dec_config( return error; } } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE else { ivas_ism_reset_metadata_handle_dec( st_ivas->hIsmMetaData[0] ); } -#endif } else if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) { n_MD = st_ivas->nchan_ism; -#ifndef NONBE_FIX_1065_ISM_MD_HANDLE - ivas_ism_metadata_close( st_ivas->hIsmMetaData, 0 ); -#endif if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) { return error; @@ -426,20 +409,11 @@ ivas_error ivas_omasa_dec_config( } else { -#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING if ( st_ivas->hBinRendererTd != NULL ) { /* TD renderer handle */ ivas_td_binaural_close( &st_ivas->hBinRendererTd ); } -#else - if ( st_ivas->hBinRendererTd != NULL && st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) - { - /* TD renderer handle */ - ivas_td_binaural_close( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; - } -#endif /* ISM renderer handle + ISM data handle */ ivas_omasa_separate_object_renderer_close( st_ivas ); } diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 1b676b2a1ba4e09426ee207a308d2da3b16150c5..d8a13a53c6d43c271a51e67a476dcf8769ec3d5f 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -531,15 +531,7 @@ ivas_error ivas_sba_dec_reconfigure( /* Time Domain binaural renderer handle */ if ( st_ivas->hBinRendererTd != NULL ) { -#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#else - if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) - { - ivas_td_binaural_close( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; - } -#endif } nchan_transport_old += st_ivas->nchan_ism; st_ivas->ism_mode = ISM_MODE_NONE; diff --git a/lib_rend/ivas_orient_trk.c b/lib_rend/ivas_orient_trk.c index 0e2525adb7dab662df9fb96a63b00ad1caca824b..7a92a1a5fcae43f677e5703ae63237bfab07eed4 100644 --- a/lib_rend/ivas_orient_trk.c +++ b/lib_rend/ivas_orient_trk.c @@ -48,10 +48,8 @@ * Local constants *------------------------------------------------------------------------------------------*/ -#define OTR_UPDATE_RATE (float) FRAMES_PER_SEC /* rate of the Process() calls [Hz]; 1x per IVAS frame */ -#ifdef NONBE_FIX_1067_QUATERNIONSLERP_INACCURACIES +#define OTR_UPDATE_RATE (float) FRAMES_PER_SEC /* rate of the Process() calls [Hz]; 1x per IVAS frame */ #define COS_ONE_TENTH_DEGREE ( 0.999998476913288f ) -#endif /*------------------------------------------------------------------------------------------* * Local functions @@ -159,7 +157,6 @@ void QuaternionSlerp( const float t, IVAS_QUATERNION *const r ) { -#ifdef NONBE_FIX_1067_QUATERNIONSLERP_INACCURACIES IVAS_QUATERNION r1, r2; float phi, sinPhi, cosPhi, s1, s2; @@ -198,29 +195,6 @@ void QuaternionSlerp( r->y = ( s1 * r1.y + s2 * r2.y ) / sinPhi; r->z = ( s1 * r1.z + s2 * r2.z ) / sinPhi; } -#else - float angle, denom, s, s2; - - s = QuaternionDotProduct( q1, q2 ); - - if ( fabsf( s ) >= 1.0f ) - { - - *r = q2; - return; - } - - angle = acosf( s ); - denom = sinf( angle ); - - s = sinf( ( 1 - t ) * angle ); - s2 = sinf( t * angle ); - r->x = ( q1.x * s + q2.x * s2 ) / denom; - r->y = ( q1.y * s + q2.y * s2 ) / denom; - r->z = ( q1.z * s + q2.z * s2 ) / denom; - r->w = ( q1.w * s + q2.w * s2 ) / denom; - -#endif QuaternionNormalize( *r, r ); return;