From 34e6a9ada53acb8e2e21f1a8a570af5de6965aa1 Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Wed, 8 Apr 2026 13:18:20 +0300 Subject: [PATCH 1/3] Minimal fix to BASOP issue 2512. --- lib_com/options.h | 1 + lib_rend/ivas_dirac_rend_fx.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index e628cf13d..b3b3f6fc3 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -122,6 +122,7 @@ #define FIX_BASOP_2497_MCMASA_LFE_WRONG_SF_INDEX /* Nokia: BASOP 2497: Fix wrong subframe index in McMASA LFE synth. */ #define FIX_BASOP_2496_OMASA_OBJ_EDIT_WRONG_ASSIGN /* Nokia: BASOP 2496: Fix wrong assignment in OMASA object edit code */ #define FIX_2495_Q_ALIGN_OSBA_RENDERER /* FhG: Basop issue #2495: Corrected exponent scaling of outAudio.data_fx before buffer accumulation in renderSbaToBinaural(). */ +#define FIX_BASOP_2512_WRONG_SHIFT_IN_DIRAC_CONFIG /* Nokia: BASOP 2512: Fix wrong division by shift */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_rend/ivas_dirac_rend_fx.c b/lib_rend/ivas_dirac_rend_fx.c index 67ded0b8b..9e5601bad 100644 --- a/lib_rend/ivas_dirac_rend_fx.c +++ b/lib_rend/ivas_dirac_rend_fx.c @@ -331,7 +331,11 @@ ivas_error ivas_spat_hSpatParamRendCom_config_fx( ELSE { Word16 num_slots_in_subfr, tmp; +#ifdef FIX_BASOP_2512_WRONG_SHIFT_IN_DIRAC_CONFIG + tmp = 0; +#else tmp = 1; +#endif move16(); IF( dec_param_estim_flag ) num_slots_in_subfr = CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES; -- GitLab From 12ba2c03cdb9cb3c1f7fd604791c637e6a4fcd8f Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Thu, 9 Apr 2026 11:04:23 +0300 Subject: [PATCH 2/3] Add curly braces as requested in review. --- lib_rend/ivas_dirac_rend_fx.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib_rend/ivas_dirac_rend_fx.c b/lib_rend/ivas_dirac_rend_fx.c index 9e5601bad..0b77407bd 100644 --- a/lib_rend/ivas_dirac_rend_fx.c +++ b/lib_rend/ivas_dirac_rend_fx.c @@ -338,9 +338,13 @@ ivas_error ivas_spat_hSpatParamRendCom_config_fx( #endif move16(); IF( dec_param_estim_flag ) - num_slots_in_subfr = CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES; + { + num_slots_in_subfr = CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES; + } ELSE + { num_slots_in_subfr = 1; + } move16(); hSpatParamRendCom->dirac_md_buffer_length = MAX_PARAM_SPATIAL_SUBFRAMES + DELAY_DIRAC_PARAM_DEC_SFR; move16(); -- GitLab From 26dff5e5d03edcdc2a444ff0ccaa352b4403efd2 Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Thu, 9 Apr 2026 11:52:07 +0300 Subject: [PATCH 3/3] Change if-else to if for optimization. --- lib_rend/ivas_dirac_rend_fx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib_rend/ivas_dirac_rend_fx.c b/lib_rend/ivas_dirac_rend_fx.c index 0b77407bd..33d82a695 100644 --- a/lib_rend/ivas_dirac_rend_fx.c +++ b/lib_rend/ivas_dirac_rend_fx.c @@ -337,15 +337,15 @@ ivas_error ivas_spat_hSpatParamRendCom_config_fx( tmp = 1; #endif move16(); - IF( dec_param_estim_flag ) + + num_slots_in_subfr = 1; + move16(); + if ( dec_param_estim_flag ) { num_slots_in_subfr = CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES; + move16(); } - ELSE - { - num_slots_in_subfr = 1; - } - move16(); + hSpatParamRendCom->dirac_md_buffer_length = MAX_PARAM_SPATIAL_SUBFRAMES + DELAY_DIRAC_PARAM_DEC_SFR; move16(); hSpatParamRendCom->dirac_bs_md_write_idx = DELAY_DIRAC_PARAM_DEC_SFR; -- GitLab