From f364f9c108c69cd5aaec31943c7cfa026eba8f33 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 19:40:48 +0200 Subject: [PATCH 01/12] [cleanup] accept FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI --- lib_com/options.h | 1 - lib_dec/dec_LPD_fx.c | 8 -------- lib_dec/dec_tcx_fx.c | 17 ----------------- 3 files changed, 26 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 3dc3b085b..13b79b4ca 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -107,7 +107,6 @@ #define FIX_1831_REVERB_REGRESSION /* Philips: fixes reverb regression issues */ #define FIX_1835_REVERB_ACTIVATION /* FhG: Modified reverberation activation logic and corrected factEQ calculation */ #define NON_BE_FIX_EVS_USAN_ERR_IN_WAVEADJUST /* FhG: address issue 1037 */ -#define FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI /* FhG: move setting of pointers for parameter decoding so they are skipped in lost frames when they are not needed */ #define NONBE_FIX_1056_ISM_RATE_SWITCH /* FhG: Fix #1056: fix TC buffer udpate on a ISM rate switch */ #define NONBE_FIX_1075 /* FhG: fix segfault for bitrate switching + BINAURAL_ROOM_REVERB output in MC */ #define NON_BE_FIX_1041_USE_OLD_CNG_LSPS_IF_NONSTAB /* FhG: fix bug in TD MDCT-Stereo concealment */ diff --git a/lib_dec/dec_LPD_fx.c b/lib_dec/dec_LPD_fx.c index 03cc8b3ce..5549cc809 100644 --- a/lib_dec/dec_LPD_fx.c +++ b/lib_dec/dec_LPD_fx.c @@ -718,20 +718,12 @@ void decoder_LPD_fx( FOR( k = 0; k < 2; k++ ) { -#ifndef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI - /* Set pointer to parameters */ - prm = param + ( k * DEC_NPRM_DIV ); - - /* Stability Factor */ -#endif IF( bfi == 0 ) { -#ifdef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI /* Set pointer to parameters */ prm = param + ( k * DEC_NPRM_DIV ); /* Stability Factor */ -#endif st->stab_fac_fx = lsf_stab_fx( &lsf[( ( k + 1 ) ) * M], &lsf[k * M], 0, L_FRAME ); move16(); } diff --git a/lib_dec/dec_tcx_fx.c b/lib_dec/dec_tcx_fx.c index 80eacd386..c0a099b87 100644 --- a/lib_dec/dec_tcx_fx.c +++ b/lib_dec/dec_tcx_fx.c @@ -4401,15 +4401,11 @@ void decoder_tcx_invQ_fx( tnsSize = 0; move16(); -#ifndef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI - prm_target = NULL; /* just to suppress MSVC warnigs */ -#else /* just to suppress MSVC warnigs */ prm_target = NULL; prm_ltp = NULL; prm_tns = NULL; prm_sqQ = NULL; -#endif /*-----------------------------------------------------------------* * Initializations @@ -4433,10 +4429,6 @@ void decoder_tcx_invQ_fx( move16(); } -#ifndef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI - prm_ltp = &prm[1 + NOISE_FILL_RANGES]; - prm_tns = prm_ltp + LTPSIZE; -#endif gainCompensate = ONE_IN_Q14; move16(); @@ -4452,10 +4444,8 @@ void decoder_tcx_invQ_fx( IF( !bfi ) { -#ifdef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI prm_ltp = &prm[1 + NOISE_FILL_RANGES]; prm_tns = prm_ltp + LTPSIZE; -#endif index = prm[0]; move16(); @@ -4477,11 +4467,6 @@ void decoder_tcx_invQ_fx( move16(); } -#ifndef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI - prm_hm = prm_tns + tnsSize; - prm_sqQ = prm_hm + NPRM_CTX_HM; - *prm_sqQ1 = prm_sqQ; -#endif /*-----------------------------------------------------------* * Spectrum data * @@ -4489,11 +4474,9 @@ void decoder_tcx_invQ_fx( IF( !bfi ) { -#ifdef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI prm_hm = prm_tns + tnsSize; prm_sqQ = prm_hm + NPRM_CTX_HM; *prm_sqQ1 = prm_sqQ; -#endif /*-----------------------------------------------------------* * Context HM * *-----------------------------------------------------------*/ -- GitLab From d1190eae719bd2d39de82c613c1378c0c0d01c93 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 19:44:04 +0200 Subject: [PATCH 02/12] [cleanup] accept FIX_1044_ISM_REND_MEMORY --- lib_com/options.h | 1 - lib_dec/ivas_stat_dec.h | 8 -------- 2 files changed, 9 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 13b79b4ca..a29f68b1c 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -97,7 +97,6 @@ #endif #define NONBE_FIX_984_OMASA_EXT_OUTPUT /* Nokia: issue #984: complete the OMASA EXT output implementation */ -#define FIX_1044_ISM_REND_MEMORY /* VA: issue 1044: Lower the memory of the ISM renderer handle. */ #define USE_NEW_HRTF_BINARY_FILE_FORMAT /* Orange: to activate when decided to change the hrtf binary file format */ diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index d8654af80..8ba4295ce 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -853,18 +853,10 @@ typedef struct ivas_lfe_dec_data_structure typedef struct renderer_struct { -#ifdef FIX_1044_ISM_REND_MEMORY Word32 prev_gains_fx[MAX_NUM_OBJECTS][MAX_OUTPUT_CHANNELS]; /*Q30*/ -#else - Word32 prev_gains_fx[MAX_CICP_CHANNELS - 1][MAX_OUTPUT_CHANNELS]; /*Q30*/ -#endif Word16 *interpolator_fx; /*Q15*/ Word16 interpolator_len; -#ifdef FIX_1044_ISM_REND_MEMORY Word32 gains_fx[MAX_NUM_OBJECTS][MAX_OUTPUT_CHANNELS]; /*Q30*/ -#else - Word32 gains_fx[MAX_CICP_CHANNELS - 1][MAX_OUTPUT_CHANNELS]; /*Q30*/ -#endif } ISM_RENDERER_DATA, *ISM_RENDERER_HANDLE; -- GitLab From 2c13c2c5d341bf78732494d1e0d46586e9fc1285 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 19:45:42 +0200 Subject: [PATCH 03/12] [cleanup] accept FIX_1060_USAN_ARRAY_BOUNDS --- lib_com/options.h | 1 - lib_dec/ivas_dirac_dec_fx.c | 8 -------- 2 files changed, 9 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index a29f68b1c..68944302a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -110,7 +110,6 @@ #define NONBE_FIX_1075 /* FhG: fix segfault for bitrate switching + BINAURAL_ROOM_REVERB output in MC */ #define NON_BE_FIX_1041_USE_OLD_CNG_LSPS_IF_NONSTAB /* FhG: fix bug in TD MDCT-Stereo concealment */ #define NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG /* VoiceAge: issue 1063: division by zero for angle_rot feature in the UNCLR classifier */ -#define FIX_1060_USAN_ARRAY_BOUNDS /* FhG: issue 1060: USAN array-bounds errors */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ #define NONBE_FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ #define NONBE_FIX_1065_ISM_MD_HANDLE /* VA: issue 1065: Allocate only the necessary number of ISM MD decoder handles. */ diff --git a/lib_dec/ivas_dirac_dec_fx.c b/lib_dec/ivas_dirac_dec_fx.c index 1713ec0bd..370254a4e 100644 --- a/lib_dec/ivas_dirac_dec_fx.c +++ b/lib_dec/ivas_dirac_dec_fx.c @@ -3777,18 +3777,10 @@ void ivas_dirac_dec_render_sf_fx( g_fx = Madd_32_16( Mpy_32_16_1( gain_fx, *w1_fx ), prev_gain_fx, w2_fx ); // Q15 FOR( l = 0; l < hSpatParamRendCom->num_freq_bands; l++ ) { -#ifdef FIX_1060_USAN_ARRAY_BOUNDS Cldfb_RealBuffer_fx[j2][k][l] = Madd_32_32( Cldfb_RealBuffer_fx[j2][k][l], g_fx, *tc_re_fx ); -#else - Cldfb_RealBuffer_fx[j2][0][k * hSpatParamRendCom->num_freq_bands + l] = Madd_32_32( Cldfb_RealBuffer_fx[j2][0][k * hSpatParamRendCom->num_freq_bands + l], g_fx, *tc_re_fx ); -#endif move32(); tc_re_fx++; -#ifdef FIX_1060_USAN_ARRAY_BOUNDS Cldfb_ImagBuffer_fx[j2][k][l] = Madd_32_32( Cldfb_ImagBuffer_fx[j2][k][l], g_fx, *tc_im_fx ); -#else - Cldfb_ImagBuffer_fx[j2][0][k * hSpatParamRendCom->num_freq_bands + l] = Madd_32_32( Cldfb_ImagBuffer_fx[j2][0][k * hSpatParamRendCom->num_freq_bands + l], g_fx, *tc_im_fx ); -#endif move32(); tc_re_fx++; } -- GitLab From 2fb077ad4cb9d182420930aaf7d2403a7edd2bfc Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 19:47:24 +0200 Subject: [PATCH 04/12] [cleanup] accept NON_BE_FIX_1041_USE_OLD_CNG_LSPS_IF_NONSTAB --- lib_com/options.h | 1 - lib_dec/er_dec_tcx_fx.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 68944302a..e5ceef690 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -108,7 +108,6 @@ #define NON_BE_FIX_EVS_USAN_ERR_IN_WAVEADJUST /* FhG: address issue 1037 */ #define NONBE_FIX_1056_ISM_RATE_SWITCH /* FhG: Fix #1056: fix TC buffer udpate on a ISM rate switch */ #define NONBE_FIX_1075 /* FhG: fix segfault for bitrate switching + BINAURAL_ROOM_REVERB output in MC */ -#define NON_BE_FIX_1041_USE_OLD_CNG_LSPS_IF_NONSTAB /* FhG: fix bug in TD MDCT-Stereo concealment */ #define NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG /* VoiceAge: issue 1063: division by zero for angle_rot feature in the UNCLR classifier */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ #define NONBE_FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ diff --git a/lib_dec/er_dec_tcx_fx.c b/lib_dec/er_dec_tcx_fx.c index c210cd298..aeb4c0783 100644 --- a/lib_dec/er_dec_tcx_fx.c +++ b/lib_dec/er_dec_tcx_fx.c @@ -1766,11 +1766,7 @@ void con_tcx_ivas_fx( alpha_inv = sub( 16384 /*Q.0f in Q14*/, alpha_delayed ); /*Q14*/ -#ifdef NON_BE_FIX_1041_USE_OLD_CNG_LSPS_IF_NONSTAB E_LPC_a_lsp_conversion( A_local, lsp_local, st->lspold_cng, M ); -#else - E_LPC_a_lsp_conversion( A_local, lsp_local, lsp_local, M ); -#endif FOR( i = 0; i < M; i++ ) { -- GitLab From 8743ee4c9611f34baa73042945bcde211026f67a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 19:48:50 +0200 Subject: [PATCH 05/12] [cleanup] accept NONBE_FIX_1075 --- lib_com/options.h | 1 - lib_dec/ivas_init_dec_fx.c | 4 ---- lib_dec/ivas_mct_dec_fx.c | 2 -- lib_dec/ivas_omasa_dec_fx.c | 2 -- lib_dec/ivas_sba_dec_fx.c | 2 -- 5 files changed, 11 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index e5ceef690..939d63281 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -107,7 +107,6 @@ #define FIX_1835_REVERB_ACTIVATION /* FhG: Modified reverberation activation logic and corrected factEQ calculation */ #define NON_BE_FIX_EVS_USAN_ERR_IN_WAVEADJUST /* FhG: address issue 1037 */ #define NONBE_FIX_1056_ISM_RATE_SWITCH /* FhG: Fix #1056: fix TC buffer udpate on a ISM rate switch */ -#define NONBE_FIX_1075 /* FhG: fix segfault for bitrate switching + BINAURAL_ROOM_REVERB output in MC */ #define NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG /* VoiceAge: issue 1063: division by zero for angle_rot feature in the UNCLR classifier */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ #define NONBE_FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ diff --git a/lib_dec/ivas_init_dec_fx.c b/lib_dec/ivas_init_dec_fx.c index 218501a39..9470b3eea 100644 --- a/lib_dec/ivas_init_dec_fx.c +++ b/lib_dec/ivas_init_dec_fx.c @@ -2445,7 +2445,6 @@ ivas_error ivas_init_decoder_fx( SrcSpatial_p->q_Pos_p = Q31; move16(); } -#ifdef NONBE_FIX_1075 IF( EQ_32( st_ivas->hOutSetup.output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { IF( NE_32( ( error = ivas_reverb_open_fx( &st_ivas->hReverb, st_ivas->hHrtfStatistics, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ), IVAS_ERR_OK ) ) @@ -2453,7 +2452,6 @@ ivas_error ivas_init_decoder_fx( return error; } } -#endif /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ IF( NE_32( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ), IVAS_ERR_OK ) ) @@ -2570,7 +2568,6 @@ ivas_error ivas_init_decoder_fx( SrcSpatial_p->q_Pos_p = Q31; move16(); } -#ifdef NONBE_FIX_1075 IF( EQ_32( st_ivas->hOutSetup.output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { IF( NE_32( ( error = ivas_reverb_open_fx( &st_ivas->hReverb, st_ivas->hHrtfStatistics, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ), IVAS_ERR_OK ) ) @@ -2578,7 +2575,6 @@ ivas_error ivas_init_decoder_fx( return error; } } -#endif } } diff --git a/lib_dec/ivas_mct_dec_fx.c b/lib_dec/ivas_mct_dec_fx.c index 67978cd0c..7066ea638 100644 --- a/lib_dec/ivas_mct_dec_fx.c +++ b/lib_dec/ivas_mct_dec_fx.c @@ -1476,7 +1476,6 @@ static ivas_error ivas_mc_dec_reconfig_fx( { return error; } -#ifdef NONBE_FIX_1075 IF( EQ_32( st_ivas->hOutSetup.output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { IF( NE_32( ( error = ivas_reverb_open_fx( &st_ivas->hReverb, st_ivas->hHrtfStatistics, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ), IVAS_ERR_OK ) ) @@ -1484,7 +1483,6 @@ static ivas_error ivas_mc_dec_reconfig_fx( return error; } } -#endif IF( EQ_16( st_ivas->hIntSetup.output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { IF( ( error = ivas_rend_initCrendWrapper( &st_ivas->hCrendWrapper, 1 ) ) != IVAS_ERR_OK ) diff --git a/lib_dec/ivas_omasa_dec_fx.c b/lib_dec/ivas_omasa_dec_fx.c index 7ed8aac10..c04578e46 100644 --- a/lib_dec/ivas_omasa_dec_fx.c +++ b/lib_dec/ivas_omasa_dec_fx.c @@ -721,7 +721,6 @@ ivas_error ivas_omasa_dec_config_fx( IF( NE_32( ( error = ivas_td_binaural_open_fx( st_ivas, SrcInd, num_src ) ), IVAS_ERR_OK ) ){ return error; } -#ifdef NONBE_FIX_1075 IF( EQ_32( st_ivas->hOutSetup.output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { IF( NE_32( ( error = ivas_reverb_open_fx( &st_ivas->hReverb, st_ivas->hHrtfStatistics, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ), IVAS_ERR_OK ) ) @@ -729,7 +728,6 @@ ivas_error ivas_omasa_dec_config_fx( return error; } } -#endif } /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ diff --git a/lib_dec/ivas_sba_dec_fx.c b/lib_dec/ivas_sba_dec_fx.c index b817893f2..f7d806114 100644 --- a/lib_dec/ivas_sba_dec_fx.c +++ b/lib_dec/ivas_sba_dec_fx.c @@ -564,7 +564,6 @@ ivas_error ivas_sba_dec_reconfigure_fx( { return error; } -#ifdef NONBE_FIX_1075 IF( EQ_32( st_ivas->hOutSetup.output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { IF( NE_32( ( error = ivas_reverb_open_fx( &st_ivas->hReverb, st_ivas->hHrtfStatistics, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ), IVAS_ERR_OK ) ) @@ -572,7 +571,6 @@ ivas_error ivas_sba_dec_reconfigure_fx( return error; } } -#endif } } -- GitLab From 40c020c4e8d4d8b80477224cdb7f53e3f594d6fa Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 19:50:14 +0200 Subject: [PATCH 06/12] [cleanup] accept NON_BE_FIX_EVS_USAN_ERR_IN_WAVEADJUST --- lib_com/options.h | 1 - lib_dec/waveadjust_fec_dec_fx.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 939d63281..25f329b17 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -105,7 +105,6 @@ #define FIX_1741_REVERB_TIMES_Q_FORMAT /* Philips: reverberation times in Q26 format instead of Q31 */ #define FIX_1831_REVERB_REGRESSION /* Philips: fixes reverb regression issues */ #define FIX_1835_REVERB_ACTIVATION /* FhG: Modified reverberation activation logic and corrected factEQ calculation */ -#define NON_BE_FIX_EVS_USAN_ERR_IN_WAVEADJUST /* FhG: address issue 1037 */ #define NONBE_FIX_1056_ISM_RATE_SWITCH /* FhG: Fix #1056: fix TC buffer udpate on a ISM rate switch */ #define NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG /* VoiceAge: issue 1063: division by zero for angle_rot feature in the UNCLR classifier */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ diff --git a/lib_dec/waveadjust_fec_dec_fx.c b/lib_dec/waveadjust_fec_dec_fx.c index 1b5b46d66..f5155cacf 100644 --- a/lib_dec/waveadjust_fec_dec_fx.c +++ b/lib_dec/waveadjust_fec_dec_fx.c @@ -930,7 +930,6 @@ void concealment_decode_fix( /* sign randomization */ FOR( i = 0; i < N; i++ ) { -#ifdef NON_BE_FIX_EVS_USAN_ERR_IN_WAVEADJUST Word16 rnd; rnd = own_random_fix( seed ); IF( GE_16( rnd, 0 ) ) @@ -941,9 +940,6 @@ void concealment_decode_fix( { sign = -1; } -#else - sign = add( shl( shr( own_random_fix( seed ), 15 ), 1 ), 1 ); -#endif if ( EQ_16( sign, -1 ) ) { invkoef[i] = L_negate( invkoef[i] ); -- GitLab From c6f8fd559a6d664d284b29f33c6c4d2e15029d3e Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 19:53:05 +0200 Subject: [PATCH 07/12] [cleanup] accept NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM --- lib_com/options.h | 3 --- lib_dec/ivas_binRenderer_internal_fx.c | 19 ------------------- 2 files changed, 22 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 25f329b17..b7eb202e2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -92,9 +92,6 @@ /* #################### Start BASOP porting switches ############################ */ #define FIX_1372_ISAR_POST_REND -#define NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM /* FhG: issue 1058: do not initialize EFAP when IntSetup is HOA3 */ -#ifdef NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM -#endif #define NONBE_FIX_984_OMASA_EXT_OUTPUT /* Nokia: issue #984: complete the OMASA EXT output implementation */ diff --git a/lib_dec/ivas_binRenderer_internal_fx.c b/lib_dec/ivas_binRenderer_internal_fx.c index 877a4dfdb..8f2b30228 100644 --- a/lib_dec/ivas_binRenderer_internal_fx.c +++ b/lib_dec/ivas_binRenderer_internal_fx.c @@ -1443,7 +1443,6 @@ ivas_error ivas_binRenderer_open_fx( } /* initialize the dmx matrix */ -#ifdef NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM #ifndef FIX_1053_REVERB_RECONFIGURATION IF( NE_16( hBinRenderer->nInChannels, HOA3_CHANNELS ) ) { @@ -1456,16 +1455,6 @@ ivas_error ivas_binRenderer_open_fx( } } } -#endif -#else - FOR( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ ) - { - FOR( k = 0; k < hBinRenderer->nInChannels; k++ ) - { - hBinRenderer->hReverb->dmxmtx_fx[chIdx][k] = dmxmtx_table_fx[chIdx][k]; - move32(); - } - } #endif } ELSE @@ -1475,19 +1464,11 @@ ivas_error ivas_binRenderer_open_fx( hBinRenderer->hEFAPdata = NULL; -#ifdef NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM IF( hBinRenderer->hReverb != NULL && NE_16( hBinRenderer->nInChannels, HOA3_CHANNELS ) ) -#else - IF( hBinRenderer->hReverb != NULL ) -#endif { test(); test(); -#ifdef NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM IF( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 ) -#else - IF( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 && NE_16( hBinRenderer->nInChannels, HOA3_CHANNELS ) ) -#endif { FOR( k = 0; k < 11; k++ ) { -- GitLab From 43e8b078ad7ffb2ef414a3f96c83e88150258dbb Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 19:54:28 +0200 Subject: [PATCH 08/12] [cleanup] accept NONBE_FIX_1056_ISM_RATE_SWITCH --- lib_com/options.h | 1 - lib_dec/ivas_ism_dec_fx.c | 7 ------- 2 files changed, 8 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index b7eb202e2..851a1a34c 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -102,7 +102,6 @@ #define FIX_1741_REVERB_TIMES_Q_FORMAT /* Philips: reverberation times in Q26 format instead of Q31 */ #define FIX_1831_REVERB_REGRESSION /* Philips: fixes reverb regression issues */ #define FIX_1835_REVERB_ACTIVATION /* FhG: Modified reverberation activation logic and corrected factEQ calculation */ -#define NONBE_FIX_1056_ISM_RATE_SWITCH /* FhG: Fix #1056: fix TC buffer udpate on a ISM rate switch */ #define NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG /* VoiceAge: issue 1063: division by zero for angle_rot feature in the UNCLR classifier */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ #define NONBE_FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ diff --git a/lib_dec/ivas_ism_dec_fx.c b/lib_dec/ivas_ism_dec_fx.c index febc6af54..96e19960d 100644 --- a/lib_dec/ivas_ism_dec_fx.c +++ b/lib_dec/ivas_ism_dec_fx.c @@ -142,16 +142,9 @@ static ivas_error ivas_ism_bitrate_switching_dec_fx( { test(); test(); -#ifndef NONBE_FIX_1056_ISM_RATE_SWITCH - test(); -#endif /* transfer subframe info from DirAC or ParamMC to central tc buffer */ -#ifdef NONBE_FIX_1056_ISM_RATE_SWITCH /* only do this if we are not having done everything already in the TC decoding part and having only played out from the TC buffer */ IF( EQ_32( last_ism_mode, ISM_MODE_PARAM ) && st_ivas->hSpatParamRendCom != NULL && NE_32( st_ivas->hTcBuffer->tc_buffer_mode, TC_BUFFER_MODE_BUFFER ) ) -#else - IF( EQ_32( last_ism_mode, ISM_MODE_PARAM ) && st_ivas->hSpatParamRendCom != NULL && ( NE_32( st_ivas->renderer_type, RENDERER_MONO_DOWNMIX ) && NE_32( st_ivas->renderer_type, RENDERER_DISABLE ) ) ) -#endif { st_ivas->hTcBuffer->nb_subframes = st_ivas->hSpatParamRendCom->nb_subframes; move16(); -- GitLab From 1097e03adb34caac33147851c2f3f2189e2dc721 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 20:03:39 +0200 Subject: [PATCH 09/12] [cleanup] accept NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG --- lib_com/options.h | 1 - lib_enc/ivas_stereo_dft_enc_itd_fx.c | 15 --------------- 2 files changed, 16 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 851a1a34c..fec7fdf14 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -102,7 +102,6 @@ #define FIX_1741_REVERB_TIMES_Q_FORMAT /* Philips: reverberation times in Q26 format instead of Q31 */ #define FIX_1831_REVERB_REGRESSION /* Philips: fixes reverb regression issues */ #define FIX_1835_REVERB_ACTIVATION /* FhG: Modified reverberation activation logic and corrected factEQ calculation */ -#define NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG /* VoiceAge: issue 1063: division by zero for angle_rot feature in the UNCLR classifier */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ #define NONBE_FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ #define NONBE_FIX_1065_ISM_MD_HANDLE /* VA: issue 1065: Allocate only the necessary number of ISM MD decoder handles. */ diff --git a/lib_enc/ivas_stereo_dft_enc_itd_fx.c b/lib_enc/ivas_stereo_dft_enc_itd_fx.c index 373f4287b..aee6e3a6b 100644 --- a/lib_enc/ivas_stereo_dft_enc_itd_fx.c +++ b/lib_enc/ivas_stereo_dft_enc_itd_fx.c @@ -973,10 +973,8 @@ void stereo_dft_enc_compute_itd_fx( Word32 cng_xcorr_filt; Word16 cng_xcorr_filt_e; -#ifdef NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG Word32 sum_nrg_delta; Word16 sum_nrg_delta_e; -#endif Word16 prev_itd_max; Word16 itd_max_flip; @@ -1240,9 +1238,6 @@ void stereo_dft_enc_compute_itd_fx( move32(); xcorr_abs[i] = Sqrt32( xcorr_abs[i], &xcorr_abs_e[i] ); move32(); -#ifndef NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG - /* VM: prod_LL tends to overflow, better to replace with sum(log(prod_L)) and retrain the classifier */ -#endif prod_LL = prod_L; move32(); prod_LL_e = prod_L_e; @@ -1390,7 +1385,6 @@ void stereo_dft_enc_compute_itd_fx( hStereoClassif->xtalk_fv_fx[E_gainIPD] = L_shr_r( g_IPD, 10 ); // Q15 move32(); -#ifdef NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG sum_nrg_delta = BASOP_Util_Add_Mant32Exp( sum_nrg_L, sum_nrg_L_e, L_negate( sum_nrg_R ), sum_nrg_R_e, &sum_nrg_delta_e ); IF( GE_32( sum_nrg_delta, 0 ) ) { @@ -1404,15 +1398,6 @@ void stereo_dft_enc_compute_itd_fx( L_temp2 = BASOP_Util_Divide3232_Scale_newton( grand_dot_prod_real, sum_nrg_delta, &L_temp2_e ); L_temp2_e = add( L_temp2_e, sub( add( grand_dot_prod_real_e, 1 ), sum_nrg_delta_e ) ); angle_rot = L_abs( BASOP_util_atan( L_shr_r_sat( L_temp2, ( sub( 6, L_temp2_e ) ) ) ) ); // Q14 -#else - // angle_rot = fabsf( atanf( 2.0f * ( grand_dot_prod_real ) / ( sum_nrg_L - sum_nrg_R + 1.0f ) ) ); - L_temp = BASOP_Util_Add_Mant32Exp( sum_nrg_L, sum_nrg_L_e, L_negate( sum_nrg_R ), sum_nrg_R_e, &L_temp_e ); - L_temp = BASOP_Util_Add_Mant32Exp( L_temp, L_temp_e, MAX_32, 0, &L_temp_e ); - L_temp2 = BASOP_Util_Divide3232_Scale_newton( grand_dot_prod_real, L_temp, &L_temp2_e ); - L_temp2_e = add( L_temp2_e, sub( add( grand_dot_prod_real_e, 1 ), L_temp_e ) ); - angle_rot = L_abs( BASOP_util_atan( L_shr_r_sat( L_temp2, ( sub( 6, L_temp2_e ) ) ) ) ); // Q14 - // angle_rot = L_abs( BASOP_util_atan2( grand_dot_prod_real, L_temp, sub( add( grand_dot_prod_real_e, 1 ), L_temp_e ) ) ); // Q13 -#endif hStereoClassif->unclr_fv_fx[E_angle_rot] = L_shl( angle_rot, 1 ); // Q15 move32(); -- GitLab From 5c6192ad9a0fc5f876ee03b49b6f1002047b5941 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 20:04:24 +0200 Subject: [PATCH 10/12] [cleanup] accept NONBE_FIX_1045_ISM_BITRATE_SWITCHING --- lib_com/options.h | 1 - lib_dec/ivas_ism_dec_fx.c | 13 ------------- lib_dec/ivas_mct_dec_fx.c | 8 -------- lib_dec/ivas_omasa_dec_fx.c | 11 ----------- lib_dec/ivas_sba_dec_fx.c | 8 -------- 5 files changed, 41 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index fec7fdf14..44751bbbd 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -103,7 +103,6 @@ #define FIX_1831_REVERB_REGRESSION /* Philips: fixes reverb regression issues */ #define FIX_1835_REVERB_ACTIVATION /* FhG: Modified reverberation activation logic and corrected factEQ calculation */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ -#define NONBE_FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ #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 FIX_1053_REVERB_RECONFIGURATION /* Philips: issue 1053: fix for dynamic switching of acoustic environment */ diff --git a/lib_dec/ivas_ism_dec_fx.c b/lib_dec/ivas_ism_dec_fx.c index 96e19960d..48c879bee 100644 --- a/lib_dec/ivas_ism_dec_fx.c +++ b/lib_dec/ivas_ism_dec_fx.c @@ -271,25 +271,12 @@ static ivas_error ivas_ism_bitrate_switching_dec_fx( } /* Close the TD Binaural renderer */ -#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); IF( EQ_32( 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_fx( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; - - IF( EQ_32( 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_mct_dec_fx.c b/lib_dec/ivas_mct_dec_fx.c index 7066ea638..1fcdbff84 100644 --- a/lib_dec/ivas_mct_dec_fx.c +++ b/lib_dec/ivas_mct_dec_fx.c @@ -1436,15 +1436,7 @@ static ivas_error ivas_mc_dec_reconfig_fx( test(); IF( st_ivas->hBinRendererTd != NULL && ( NE_16( st_ivas->renderer_type, RENDERER_BINAURAL_OBJECTS_TD ) ) ) { -#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); -#else - IF( EQ_16( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM, TRUE ) ) - { - ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; - } -#endif } IF( st_ivas->hDiracDecBin[0] != NULL ) diff --git a/lib_dec/ivas_omasa_dec_fx.c b/lib_dec/ivas_omasa_dec_fx.c index c04578e46..9f3de0afd 100644 --- a/lib_dec/ivas_omasa_dec_fx.c +++ b/lib_dec/ivas_omasa_dec_fx.c @@ -738,22 +738,11 @@ ivas_error ivas_omasa_dec_config_fx( } ELSE { -#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING if ( st_ivas->hBinRendererTd != NULL ) { /* TD renderer handle */ ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); } -#else - /* TD renderer handle */ - test(); - IF( st_ivas->hBinRendererTd != NULL && EQ_16( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM, TRUE ) ) - { - ivas_td_binaural_close_fx( &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_fx.c b/lib_dec/ivas_sba_dec_fx.c index f7d806114..59bc705b6 100644 --- a/lib_dec/ivas_sba_dec_fx.c +++ b/lib_dec/ivas_sba_dec_fx.c @@ -593,15 +593,7 @@ ivas_error ivas_sba_dec_reconfigure_fx( /* Time Domain binaural renderer handle */ IF( st_ivas->hBinRendererTd != NULL ) { -#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); -#else - IF( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) - { - ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; - } -#endif } nchan_transport_old = add( nchan_transport_old, st_ivas->nchan_ism ); /*Q0*/ st_ivas->ism_mode = ISM_MODE_NONE; -- GitLab From 7476506ae731c529fc948b376df2c09f150322b9 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 20:07:58 +0200 Subject: [PATCH 11/12] [cleanup] accept NONBE_FIX_1065_ISM_MD_HANDLE --- lib_com/ivas_prot_fx.h | 6 ---- lib_com/options.h | 1 - lib_dec/ivas_init_dec_fx.c | 8 ----- lib_dec/ivas_ism_metadata_dec_fx.c | 49 ------------------------------ lib_dec/ivas_omasa_dec_fx.c | 20 ------------ 5 files changed, 84 deletions(-) diff --git a/lib_com/ivas_prot_fx.h b/lib_com/ivas_prot_fx.h index 8a66cc117..3c8ce9aa0 100644 --- a/lib_com/ivas_prot_fx.h +++ b/lib_com/ivas_prot_fx.h @@ -2376,20 +2376,14 @@ ivas_error ivas_ism_dec_config_fx( ivas_error ivas_ism_metadata_dec_create_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE const Word16 n_ISms, /* i : number of separately coded objects */ -#else - const Word16 n_ISms, /* i : number of objects */ -#endif Word32 element_brate_tmp[] /* o : element bitrate per object */ ); -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE void ivas_ism_reset_metadata_handle_dec_fx( ISM_METADATA_HANDLE hIsmMeta /* i/o: ISM metadata handle */ ); -#endif ivas_error ivas_sba_dec_reconfigure_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ UWord16 *nSamplesFlushed, /* o : number of samples flushed */ diff --git a/lib_com/options.h b/lib_com/options.h index 44751bbbd..97083a416 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -103,7 +103,6 @@ #define FIX_1831_REVERB_REGRESSION /* Philips: fixes reverb regression issues */ #define FIX_1835_REVERB_ACTIVATION /* FhG: Modified reverberation activation logic and corrected factEQ calculation */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ -#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 FIX_1053_REVERB_RECONFIGURATION /* Philips: issue 1053: fix for dynamic switching of acoustic environment */ /* #################### End BASOP porting switches ############################ */ diff --git a/lib_dec/ivas_init_dec_fx.c b/lib_dec/ivas_init_dec_fx.c index 9470b3eea..7d623dc8c 100644 --- a/lib_dec/ivas_init_dec_fx.c +++ b/lib_dec/ivas_init_dec_fx.c @@ -1508,11 +1508,7 @@ ivas_error ivas_init_decoder_fx( } } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE IF( ( error = ivas_ism_metadata_dec_create_fx( st_ivas, st_ivas->nchan_ism, element_brate_tmp ) ) != IVAS_ERR_OK ) -#else - IF( NE_32( ( error = ivas_ism_metadata_dec_create_fx( st_ivas, st_ivas->nSCE, element_brate_tmp ) ), IVAS_ERR_OK ) ) -#endif { return error; } @@ -1919,7 +1915,6 @@ ivas_error ivas_init_decoder_fx( reset_indices_dec( st_ivas->hSCE[0]->hCoreCoder[0] ); -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE IF( EQ_32( output_config, IVAS_AUDIO_CONFIG_EXTERNAL ) ) { if ( ( error = ivas_ism_metadata_dec_create_fx( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) @@ -1929,14 +1924,11 @@ ivas_error ivas_init_decoder_fx( } else { -#endif IF( NE_32( ( error = ivas_ism_metadata_dec_create_fx( st_ivas, 1, NULL ) ), IVAS_ERR_OK ) ) { return error; } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE } -#endif } ELSE IF( EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) ) { diff --git a/lib_dec/ivas_ism_metadata_dec_fx.c b/lib_dec/ivas_ism_metadata_dec_fx.c index fcc22054a..449ebf723 100644 --- a/lib_dec/ivas_ism_metadata_dec_fx.c +++ b/lib_dec/ivas_ism_metadata_dec_fx.c @@ -780,7 +780,6 @@ ivas_error ivas_ism_metadata_dec_fx( return IVAS_ERR_OK; } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE /*-------------------------------------------------------------------* * ivas_ism_reset_metadata_handle_dec() @@ -826,7 +825,6 @@ void ivas_ism_reset_metadata_handle_dec_fx( return; } -#endif /*------------------------------------------------------------------------- * ivas_ism_metadata_dec_create() @@ -836,11 +834,7 @@ void ivas_ism_reset_metadata_handle_dec_fx( ivas_error ivas_ism_metadata_dec_create_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE const Word16 n_ISms, /* i : number of separately coded objects */ -#else - const Word16 n_ISms, /* i : number of objects */ -#endif Word32 element_brate_tmp[] /* o : element bitrate per object */ ) { @@ -848,61 +842,19 @@ ivas_error ivas_ism_metadata_dec_create_fx( ivas_error error; /* allocate ISM metadata handles */ -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE 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_fx( st_ivas->hIsmMetaData[ch] ); -#else - st_ivas->hIsmMetaData[ch]->last_ism_metadata_flag = 0; - move16(); - st_ivas->hIsmMetaData[ch]->position_angle.last_angle1_idx = 0; - move16(); - st_ivas->hIsmMetaData[ch]->position_angle.last_angle2_idx = 1 << ( ISM_ELEVATION_NBITS - 1 ); - move16(); - st_ivas->hIsmMetaData[ch]->orientation_angle.last_angle1_idx = 0; - move16(); - st_ivas->hIsmMetaData[ch]->orientation_angle.last_angle2_idx = 1 << ( ISM_ELEVATION_NBITS - 1 ); - move16(); - st_ivas->hIsmMetaData[ch]->last_radius_idx = 8; /* Init to radius 1.0 */ - move16(); - - st_ivas->hIsmMetaData[ch]->last_true_azimuth_fx = 0; - move32(); - st_ivas->hIsmMetaData[ch]->last_true_elevation_fx = 0; - move32(); - st_ivas->hIsmMetaData[ch]->last_azimuth_fx = 0; - move32(); - st_ivas->hIsmMetaData[ch]->last_elevation_fx = 0; - move32(); - - st_ivas->hIsmMetaData[ch]->ism_imp = -1; - move16(); - st_ivas->hIsmMetaData[ch]->ism_md_null_flag = 0; - move16(); - st_ivas->hIsmMetaData[ch]->ism_md_lowrate_flag = 0; - move16(); - - 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++ ) { @@ -913,7 +865,6 @@ ivas_error ivas_ism_metadata_dec_create_fx( } } -#endif IF( element_brate_tmp != NULL ) { IF( NE_32( ( error = ivas_ism_config_fx( st_ivas->hDecoderConfig->ivas_total_brate, n_ISms, n_ISms, NULL, 0, NULL, NULL, element_brate_tmp, NULL, NULL, 0 ) ), IVAS_ERR_OK ) ) diff --git a/lib_dec/ivas_omasa_dec_fx.c b/lib_dec/ivas_omasa_dec_fx.c index 9f3de0afd..356383299 100644 --- a/lib_dec/ivas_omasa_dec_fx.c +++ b/lib_dec/ivas_omasa_dec_fx.c @@ -569,7 +569,6 @@ ivas_error ivas_omasa_dec_config_fx( IF( EQ_32( 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_fx( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) @@ -584,20 +583,6 @@ ivas_error ivas_omasa_dec_config_fx( ivas_ism_reset_metadata_handle_dec_fx( st_ivas->hIsmMetaData[k] ); } } -#else - move16(); - n_MD = st_ivas->nchan_ism; - ivas_ism_metadata_close( st_ivas->hIsmMetaData, 0 ); - - error = ivas_ism_metadata_dec_create_fx( st_ivas, st_ivas->nchan_ism, NULL ); - move32(); - IF( NE_32( error, IVAS_ERR_OK ) ) - { - return error; - } - - ivas_ism_metadata_close( st_ivas->hIsmMetaData, n_MD ); -#endif } ELSE { @@ -616,21 +601,16 @@ ivas_error ivas_omasa_dec_config_fx( return error; } } -#ifdef NONBE_FIX_1065_ISM_MD_HANDLE ELSE { ivas_ism_reset_metadata_handle_dec_fx( st_ivas->hIsmMetaData[0] ); } -#endif } ELSE IF( EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) ) { n_MD = st_ivas->nchan_ism; move16(); -#ifndef NONBE_FIX_1065_ISM_MD_HANDLE - ivas_ism_metadata_close( st_ivas->hIsmMetaData, 0 ); -#endif error = ivas_ism_metadata_dec_create_fx( st_ivas, st_ivas->nchan_ism, NULL ); move32(); IF( NE_32( error, IVAS_ERR_OK ) ) -- GitLab From 0ce29a7b704fefdf980bce4ea8d73d13258c89d2 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 4 Aug 2025 20:19:28 +0200 Subject: [PATCH 12/12] formatting --- lib_com/options.h | 4 +- lib_dec/ivas_binRenderer_internal_fx.c | 79 +++++---- lib_dec/ivas_ism_dec_fx.c | 2 +- lib_dec/ivas_ism_metadata_dec_fx.c | 4 +- lib_dec/ivas_omasa_dec_fx.c | 216 +++++++++++++------------ lib_dec/ivas_stat_dec.h | 2 +- 6 files changed, 153 insertions(+), 154 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 97083a416..dcaa4dfca 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -92,11 +92,8 @@ /* #################### Start BASOP porting switches ############################ */ #define FIX_1372_ISAR_POST_REND - #define NONBE_FIX_984_OMASA_EXT_OUTPUT /* Nokia: issue #984: complete the OMASA EXT output implementation */ - #define USE_NEW_HRTF_BINARY_FILE_FORMAT /* Orange: to activate when decided to change the hrtf binary file format */ - #define FIX_WARNING_RENDER_CONFIG /* Orange: fix warning on windows build */ #define NONBE_FIX_991_PARAMBIN_BINARY_HRTF /* Nokia: issue #991: fix using of binary file HRTF in ParamBin (to activate when USE_NEW_HRTF_BINARY_FILE_FORMAT and FIX_777_COMBI_RENDER_CONFIG_FILE are on ) */ #define FIX_1741_REVERB_TIMES_Q_FORMAT /* Philips: reverberation times in Q26 format instead of Q31 */ @@ -105,6 +102,7 @@ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ #define NONBE_FIX_1028_1DB_TCX_LEVEL_DROP /* VA: Harmonize the logic setting LP weighting factor between TCX encoder and TCX decoder */ #define FIX_1053_REVERB_RECONFIGURATION /* Philips: issue 1053: fix for dynamic switching of acoustic environment */ + /* #################### End BASOP porting switches ############################ */ #endif diff --git a/lib_dec/ivas_binRenderer_internal_fx.c b/lib_dec/ivas_binRenderer_internal_fx.c index 8f2b30228..53f1c271a 100644 --- a/lib_dec/ivas_binRenderer_internal_fx.c +++ b/lib_dec/ivas_binRenderer_internal_fx.c @@ -1436,62 +1436,61 @@ ivas_error ivas_binRenderer_open_fx( #else IF( ( EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV_ROOM ) || EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV ) ) && EQ_32( st_ivas->hOutSetup.output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) #endif - { - IF( NE_32( ( error = ivas_binaural_reverb_init( &( hBinRenderer->hReverb ), st_ivas->hHrtfStatistics, hBinRenderer->conv_band, hBinRenderer->timeSlots, &( st_ivas->hRenderConfig->roomAcoustics ), st_ivas->hDecoderConfig->output_Fs, st_ivas->hHrtfFastConv->fastconvReverberationTimes_fx, st_ivas->hHrtfFastConv->fastconvReverberationEneCorrections_fx ) ), IVAS_ERR_OK ) ) { - return error; - } + IF( NE_32( ( error = ivas_binaural_reverb_init( &( hBinRenderer->hReverb ), st_ivas->hHrtfStatistics, hBinRenderer->conv_band, hBinRenderer->timeSlots, &( st_ivas->hRenderConfig->roomAcoustics ), st_ivas->hDecoderConfig->output_Fs, st_ivas->hHrtfFastConv->fastconvReverberationTimes_fx, st_ivas->hHrtfFastConv->fastconvReverberationEneCorrections_fx ) ), IVAS_ERR_OK ) ){ + return error; +} - /* initialize the dmx matrix */ +/* initialize the dmx matrix */ #ifndef FIX_1053_REVERB_RECONFIGURATION - IF( NE_16( hBinRenderer->nInChannels, HOA3_CHANNELS ) ) +IF( NE_16( hBinRenderer->nInChannels, HOA3_CHANNELS ) ) +{ + FOR( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ ) + { + FOR( k = 0; k < hBinRenderer->nInChannels; k++ ) { - FOR( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ ) - { - FOR( k = 0; k < hBinRenderer->nInChannels; k++ ) - { - hBinRenderer->hReverb->dmxmtx_fx[chIdx][k] = dmxmtx_table_fx[chIdx][k]; - move32(); - } - } + hBinRenderer->hReverb->dmxmtx_fx[chIdx][k] = dmxmtx_table_fx[chIdx][k]; + move32(); } -#endif - } - ELSE - { - hBinRenderer->hReverb = NULL; } +} +#endif +} +ELSE +{ + hBinRenderer->hReverb = NULL; +} - hBinRenderer->hEFAPdata = NULL; +hBinRenderer->hEFAPdata = NULL; - IF( hBinRenderer->hReverb != NULL && NE_16( hBinRenderer->nInChannels, HOA3_CHANNELS ) ) +IF( hBinRenderer->hReverb != NULL && NE_16( hBinRenderer->nInChannels, HOA3_CHANNELS ) ) +{ + test(); + test(); + IF( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 ) { - test(); - test(); - IF( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 ) + FOR( k = 0; k < 11; k++ ) { - FOR( k = 0; k < 11; k++ ) - { - ivas_dirac_dec_get_response_fx( extract_l( L_shr_r( ls_azimuth_CICP19_fx[k], 22 ) ), extract_l( L_shr_r( ls_elevation_CICP19_fx[k], 22 ) ), hBinRenderer->hReverb->foa_enc_fx[k], 1, Q29 ); - // Q29: hBinRenderer->hReverb->foa_enc_fx[k] - } + ivas_dirac_dec_get_response_fx( extract_l( L_shr_r( ls_azimuth_CICP19_fx[k], 22 ) ), extract_l( L_shr_r( ls_elevation_CICP19_fx[k], 22 ) ), hBinRenderer->hReverb->foa_enc_fx[k], 1, Q29 ); + // Q29: hBinRenderer->hReverb->foa_enc_fx[k] } - ELSE IF( EQ_32( st_ivas->ivas_format, MC_FORMAT ) && ( st_ivas->hDecoderConfig->Opt_Headrotation || st_ivas->hDecoderConfig->Opt_ExternalOrientation ) ) + } + ELSE IF( EQ_32( st_ivas->ivas_format, MC_FORMAT ) && ( st_ivas->hDecoderConfig->Opt_Headrotation || st_ivas->hDecoderConfig->Opt_ExternalOrientation ) ) + { + IF( NE_32( ( error = efap_init_data_fx( &( st_ivas->hEFAPdata ), st_ivas->hIntSetup.ls_azimuth_fx, st_ivas->hIntSetup.ls_elevation_fx, st_ivas->hIntSetup.nchan_out_woLFE, EFAP_MODE_EFAP ) ), IVAS_ERR_OK ) ) { - IF( NE_32( ( error = efap_init_data_fx( &( st_ivas->hEFAPdata ), st_ivas->hIntSetup.ls_azimuth_fx, st_ivas->hIntSetup.ls_elevation_fx, st_ivas->hIntSetup.nchan_out_woLFE, EFAP_MODE_EFAP ) ), IVAS_ERR_OK ) ) - { - return error; - } - - /* Copy handles to bin renderer handle*/ - hBinRenderer->hEFAPdata = st_ivas->hEFAPdata; + return error; } + + /* Copy handles to bin renderer handle*/ + hBinRenderer->hEFAPdata = st_ivas->hEFAPdata; } +} - /* Copy the handles to main handle */ - st_ivas->hBinRenderer = hBinRenderer; +/* Copy the handles to main handle */ +st_ivas->hBinRenderer = hBinRenderer; - return error; +return error; } /*------------------------------------------------------------------------- diff --git a/lib_dec/ivas_ism_dec_fx.c b/lib_dec/ivas_ism_dec_fx.c index 48c879bee..95ee97b2d 100644 --- a/lib_dec/ivas_ism_dec_fx.c +++ b/lib_dec/ivas_ism_dec_fx.c @@ -142,7 +142,7 @@ static ivas_error ivas_ism_bitrate_switching_dec_fx( { test(); test(); -/* transfer subframe info from DirAC or ParamMC to central tc buffer */ + /* transfer subframe info from DirAC or ParamMC to central tc buffer */ /* only do this if we are not having done everything already in the TC decoding part and having only played out from the TC buffer */ IF( EQ_32( last_ism_mode, ISM_MODE_PARAM ) && st_ivas->hSpatParamRendCom != NULL && NE_32( st_ivas->hTcBuffer->tc_buffer_mode, TC_BUFFER_MODE_BUFFER ) ) { diff --git a/lib_dec/ivas_ism_metadata_dec_fx.c b/lib_dec/ivas_ism_metadata_dec_fx.c index 449ebf723..17bc36346 100644 --- a/lib_dec/ivas_ism_metadata_dec_fx.c +++ b/lib_dec/ivas_ism_metadata_dec_fx.c @@ -833,8 +833,8 @@ void ivas_ism_reset_metadata_handle_dec_fx( *-------------------------------------------------------------------------*/ ivas_error ivas_ism_metadata_dec_create_fx( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - const Word16 n_ISms, /* i : number of separately coded objects */ + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const Word16 n_ISms, /* i : number of separately coded objects */ Word32 element_brate_tmp[] /* o : element bitrate per object */ ) { diff --git a/lib_dec/ivas_omasa_dec_fx.c b/lib_dec/ivas_omasa_dec_fx.c index 356383299..e0401b941 100644 --- a/lib_dec/ivas_omasa_dec_fx.c +++ b/lib_dec/ivas_omasa_dec_fx.c @@ -697,136 +697,138 @@ ivas_error ivas_omasa_dec_config_fx( IF( EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) ) { /* Allocate TD renderer for the objects in DISC mode */ - IF( st_ivas->hBinRendererTd == NULL ){ - IF( NE_32( ( error = ivas_td_binaural_open_fx( st_ivas, SrcInd, num_src ) ), IVAS_ERR_OK ) ){ + IF( st_ivas->hBinRendererTd == NULL ) + { + IF( NE_32( ( error = ivas_td_binaural_open_fx( st_ivas, SrcInd, num_src ) ), IVAS_ERR_OK ) ) + { return error; + } + IF( EQ_32( st_ivas->hOutSetup.output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) + { + IF( NE_32( ( error = ivas_reverb_open_fx( &st_ivas->hReverb, st_ivas->hHrtfStatistics, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ), IVAS_ERR_OK ) ) + { + return error; + } + } + } + + /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ + IF( NE_32( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ), IVAS_ERR_OK ) ) + { + return error; + } } - IF( EQ_32( st_ivas->hOutSetup.output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) + ELSE { - IF( NE_32( ( error = ivas_reverb_open_fx( &st_ivas->hReverb, st_ivas->hHrtfStatistics, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ), IVAS_ERR_OK ) ) + if ( st_ivas->hBinRendererTd != NULL ) { - return error; + /* TD renderer handle */ + ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); } + /* ISM renderer handle + ISM data handle */ + ivas_omasa_separate_object_renderer_close( st_ivas ); } } - /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ - IF( NE_32( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ), IVAS_ERR_OK ) ) + IF( EQ_32( st_ivas->renderer_type, RENDERER_DIRAC ) ) { - return error; + IF( NE_32( ( error = ivas_dirac_dec_config_fx( st_ivas, DIRAC_RECONFIGURE ) ), IVAS_ERR_OK ) ) + { + return error; + } + + test(); + test(); + IF( EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) || EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_PARAM_ONE_OBJ ) || EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) ) + { + /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ + IF( NE_32( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ), IVAS_ERR_OK ) ) + { + return error; + } + } + ELSE + { + /* ISM renderer handle + ISM data handle */ + ivas_omasa_separate_object_renderer_close( st_ivas ); + } } - } - ELSE - { - if ( st_ivas->hBinRendererTd != NULL ) +#ifdef NONBE_FIX_984_OMASA_EXT_OUTPUT + IF( EQ_32( st_ivas->renderer_type, RENDERER_OMASA_MIX_EXT ) ) { - /* TD renderer handle */ - ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); + /* Allocate 'hIsmRendererData' handle */ + error = ivas_omasa_combine_separate_ism_with_masa_open_fx( st_ivas ); + move32(); + IF( NE_32( error, IVAS_ERR_OK ) ) + { + return error; + } } - /* ISM renderer handle + ISM data handle */ - ivas_omasa_separate_object_renderer_close( st_ivas ); - } -} -IF( EQ_32( st_ivas->renderer_type, RENDERER_DIRAC ) ) -{ - IF( NE_32( ( error = ivas_dirac_dec_config_fx( st_ivas, DIRAC_RECONFIGURE ) ), IVAS_ERR_OK ) ) - { - return error; - } - - test(); - test(); - IF( EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) || EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_PARAM_ONE_OBJ ) || EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) ) - { - /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ - IF( NE_32( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ), IVAS_ERR_OK ) ) + IF( EQ_32( st_ivas->renderer_type, RENDERER_OMASA_OBJECT_EXT ) ) { - return error; - } - } - ELSE - { - /* ISM renderer handle + ISM data handle */ - ivas_omasa_separate_object_renderer_close( st_ivas ); - } -} -#ifdef NONBE_FIX_984_OMASA_EXT_OUTPUT -IF( EQ_32( st_ivas->renderer_type, RENDERER_OMASA_MIX_EXT ) ) -{ - /* Allocate 'hIsmRendererData' handle */ - error = ivas_omasa_combine_separate_ism_with_masa_open_fx( st_ivas ); - move32(); - IF( NE_32( error, IVAS_ERR_OK ) ) - { - return error; - } -} - -IF( EQ_32( st_ivas->renderer_type, RENDERER_OMASA_OBJECT_EXT ) ) -{ - DIRAC_CONFIG_FLAG common_rend_config_flag; - IF( st_ivas->hSpatParamRendCom == NULL ) - { - common_rend_config_flag = DIRAC_OPEN; - } - ELSE - { - common_rend_config_flag = DIRAC_RECONFIGURE; - } - move32(); + DIRAC_CONFIG_FLAG common_rend_config_flag; + IF( st_ivas->hSpatParamRendCom == NULL ) + { + common_rend_config_flag = DIRAC_OPEN; + } + ELSE + { + common_rend_config_flag = DIRAC_RECONFIGURE; + } + move32(); - /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ - error = ivas_omasa_render_objects_from_mix_open_fx( st_ivas ); - move32(); - IF( NE_32( error, IVAS_ERR_OK ) ) - { - return error; - } + /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ + error = ivas_omasa_render_objects_from_mix_open_fx( st_ivas ); + move32(); + IF( NE_32( error, IVAS_ERR_OK ) ) + { + return error; + } - error = ivas_spat_hSpatParamRendCom_config_fx( &st_ivas->hSpatParamRendCom, - common_rend_config_flag, 0, - st_ivas->ivas_format, st_ivas->mc_mode, st_ivas->hDecoderConfig->output_Fs, 0, 0 ); - move32(); - IF( NE_32( error, IVAS_ERR_OK ) ) - { - return error; - } -} + error = ivas_spat_hSpatParamRendCom_config_fx( &st_ivas->hSpatParamRendCom, + common_rend_config_flag, 0, + st_ivas->ivas_format, st_ivas->mc_mode, st_ivas->hDecoderConfig->output_Fs, 0, 0 ); + move32(); + IF( NE_32( error, IVAS_ERR_OK ) ) + { + return error; + } + } #endif -/*-----------------------------------------------------------------* - * TD Decorrelator - *-----------------------------------------------------------------*/ + /*-----------------------------------------------------------------* + * TD Decorrelator + *-----------------------------------------------------------------*/ -IF( st_ivas->hDiracDecBin[0] != NULL ) -{ - IF( NE_32( ( error = ivas_td_decorr_reconfig_dec( st_ivas->ivas_format, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hDecoderConfig->output_Fs, &( st_ivas->hDiracDecBin[0]->hTdDecorr ), &( st_ivas->hDiracDecBin[0]->useTdDecorr ) ) ), IVAS_ERR_OK ) ) - { - return error; - } -} + IF( st_ivas->hDiracDecBin[0] != NULL ) + { + IF( NE_32( ( error = ivas_td_decorr_reconfig_dec( st_ivas->ivas_format, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hDecoderConfig->output_Fs, &( st_ivas->hDiracDecBin[0]->hTdDecorr ), &( st_ivas->hDiracDecBin[0]->useTdDecorr ) ) ), IVAS_ERR_OK ) ) + { + return error; + } + } -/*-----------------------------------------------------------------* - * CLDFB instances - *-----------------------------------------------------------------*/ + /*-----------------------------------------------------------------* + * CLDFB instances + *-----------------------------------------------------------------*/ -IF( NE_32( ( error = ivas_cldfb_dec_reconfig_fx( st_ivas, 2, numCldfbAnalyses_old, numCldfbSyntheses_old ) ), IVAS_ERR_OK ) ) -{ - return error; -} + IF( NE_32( ( error = ivas_cldfb_dec_reconfig_fx( st_ivas, 2, numCldfbAnalyses_old, numCldfbSyntheses_old ) ), IVAS_ERR_OK ) ) + { + return error; + } -/*-----------------------------------------------------------------* - * floating-point output audio buffers - *-----------------------------------------------------------------*/ + /*-----------------------------------------------------------------* + * floating-point output audio buffers + *-----------------------------------------------------------------*/ -nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas, -1, -1 ); -IF( NE_32( ( error = ivas_output_buff_dec_fx( st_ivas->p_output_fx, nchan_out_buff_old, nchan_out_buff ) ), IVAS_ERR_OK ) ) -{ - return error; -} -} + nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas, -1, -1 ); + IF( NE_32( ( error = ivas_output_buff_dec_fx( st_ivas->p_output_fx, nchan_out_buff_old, nchan_out_buff ) ), IVAS_ERR_OK ) ) + { + return error; + } + } -return IVAS_ERR_OK; + return IVAS_ERR_OK; } diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 8ba4295ce..339d7f034 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -854,7 +854,7 @@ typedef struct ivas_lfe_dec_data_structure typedef struct renderer_struct { Word32 prev_gains_fx[MAX_NUM_OBJECTS][MAX_OUTPUT_CHANNELS]; /*Q30*/ - Word16 *interpolator_fx; /*Q15*/ + Word16 *interpolator_fx; /*Q15*/ Word16 interpolator_len; Word32 gains_fx[MAX_NUM_OBJECTS][MAX_OUTPUT_CHANNELS]; /*Q30*/ -- GitLab