diff --git a/lib_com/options.h b/lib_com/options.h index eead3c8ca079bf6a5b6cfc35eefc9b60ece6149d..3022909a35ae61f8ac37c70f8e8a4646134edd9d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -123,6 +123,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_2511_PROTO_REF_POWER_FIX /* FhG: BASOP 2511; Fix reference power computation in protoSignalComputation_shd_fx() */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_rend/ivas_dirac_rend_fx.c b/lib_rend/ivas_dirac_rend_fx.c index 67ded0b8b8c7daa13e7b931acd6566e23c4ad2ec..2d7004b35955400d704d5686dbf4a3eeefc2db88 100644 --- a/lib_rend/ivas_dirac_rend_fx.c +++ b/lib_rend/ivas_dirac_rend_fx.c @@ -1482,7 +1482,11 @@ void protoSignalComputation_shd_fx( move32(); *p_k_fx[k] = L_shl( *p_k_fx[k], Q1 ); // left shift is done to maintain constant Q factor Q(q_cldfb+min_q_shift) move32(); +#ifdef FIX_BASOP_2511_PROTO_REF_POWER_FIX + reference_power_fx[idx1] = Madd_32_32( reference_power_fx[idx1], *p_k_fx[k], *p_k_fx[k] ); // Q(2*(q_cldfb + min_q_shift)-31) +#else reference_power_fx[idx1] = Mpy_32_32( *p_k_fx[k], *p_k_fx[k] ); // Q(2*(q_cldfb + min_q_shift)-31) +#endif move32(); p_k_fx[k]++;