Skip to content
Commits on Source (3)
......@@ -181,7 +181,7 @@
#define NONBE_FIX_MC_LFE_LPF /* Dlb: Adding the LFE LPF filter back for MC content. */
#define NONBE_FIX_1052_SBA_EXT /* Dlb: SBA external output support */
#define NONBE_FIX_1087_OOB_SBA_DTX_RS /* VA: issue 1087: Extend the length of the buffer for MCT decoding to avoid out-of-bound writing in SBA SID bitrate switching decoding */
#define NONBE_FIX_1091_PMC_LOW_SIGNAL_BURSTS /* FhG: fix for #1091, fix limit calculation for the regularized inverse of Kx to avoid bursts in very low signals */
#define NONBE_FIX_1074_NOBJ_SIGNAL_OMASA_LBR /* Nok: issue 1074 fixing number of objects signaling in OMASA low rate */
/* ##################### End NON-BE switches ########################### */
......
......@@ -51,6 +51,13 @@
#include "wmc_auto.h"
#include "rom_dec.h"
#ifdef NONBE_FIX_1091_PMC_LOW_SIGNAL_BURSTS
/*-----------------------------------------------------------------------*
* Local constants
*-----------------------------------------------------------------------*/
#define SQRT_EPSILON 3.16227755e-08 /* square root of EPSILON */
#endif
/*-------------------------------------------------------------------*
* ivas_dirac_dec_output_synthesis_cov_open()
......@@ -577,8 +584,11 @@ int16_t computeMixingMatrices(
*-----------------------------------------------------------------*/
maximum( svd_s_buffer, lengthCx, &limit );
#ifdef NONBE_FIX_1091_PMC_LOW_SIGNAL_BURSTS
limit = (float) max( limit * reg_Sx, SQRT_EPSILON );
#else
limit = limit * reg_Sx + EPSILON;
#endif
for ( i = 0; i < lengthCx; ++i )
{
svd_s_buffer[i] = ( ( svd_s_buffer[i] > limit ) ? svd_s_buffer[i] : limit );
......