Commit d9070ef1 authored by fotopoulou's avatar fotopoulou
Browse files

Merge branch 'main' into 1097-out-of-bound-writing-in-sba-dtx-bitrate-switching

parents 8672f295 3d8494da
Loading
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -180,8 +180,9 @@
#define NONBE_FIX_1070_USAN_SEGFAULT_MC_TO_BIN_BTSW_HEADROT   /* fix 1070 USAN: nullptr-with-offset and Segfaults in 7_1_4 to BINAURAL and BINAURAL_ROOM_REVERB decoding with bitrate switching and head rotation*/ 
#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_1069_SVD_TUNING                       /* FhG: issue 1069: tune SVD constants */
#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 */
#define NONBE_FIX_1097_SBA_DTX_BRATE_SWITCHING_ENC      /* FhG: fix out-of-bound errors when switching from SID frame to active frame*/
/* ##################### End NON-BE switches ########################### */
+11 −1
Original line number Diff line number Diff line
@@ -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 );
+7 −0
Original line number Diff line number Diff line
@@ -48,10 +48,17 @@
 *-----------------------------------------------------------------------*/

/* The SVD is sensitive to changes to the following constants, so please be careful when trying to tune things   */
#ifdef NONBE_FIX_1069_SVD_TUNING
#define SVD_MINIMUM_VALUE        1e-32f   /* minimum value                                                   */
#define CONVERGENCE_FACTOR       1.0e-04f /* factor for SVD convergence                                      */
#define SVD_MAX_NUM_ITERATION    75       /* maximum number of interations before exiting the SVD            */
#define SVD_ZERO_FLUSH_THRESHOLD 0.0f
#else
#define SVD_MINIMUM_VALUE        1e-32f          /* minimum value                                                   */
#define CONVERGENCE_FACTOR       1.19209290e-07f /* factor for SVD convergence                                      */
#define SVD_MAX_NUM_ITERATION    75              /* maximum number of interations before exiting the SVD            */
#define SVD_ZERO_FLUSH_THRESHOLD 1.0e-20f
#endif


/*-----------------------------------------------------------------------*