diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index 504aea5d6c5650fe3804ba9a4004c6cd9369086a..35fadda7092206763a0a4accff2038ad88d83764 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -385,7 +385,11 @@ void ivas_get_dirac_sba_max_md_bits( *bits_frame_nominal = (int16_t) ( sba_total_brate / FRAMES_PER_SEC ); *metadata_max_bits = MAX16B; /* no limit */ } +#ifdef FIX_629_UBSAN_MD_MAX_BITS + *metadata_max_bits = (int16_t) min( (float) MAX16B, ceilf( (float) *metadata_max_bits * nbands / 5 ) ); +#else *metadata_max_bits = (int16_t) ceilf( (float) *metadata_max_bits * nbands / 5 ); +#endif *qmetadata_max_bit_req = QMETADATA_MAXBIT_REQ_SBA >> 1; return; diff --git a/lib_com/options.h b/lib_com/options.h old mode 100755 new mode 100644 index c2bc0b866b05b09d53460339bca577ae01a9052d..c762675e539859f9c14b1b396e983b287504a044 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -207,6 +207,10 @@ #define FIX_622_SILENCE_USAN_WARNING /* FhG: silenceusan warning in ifft code */ #define FIX_615_UBSAN_SPAR_TO_DIRAC /*Dlb : Fix for UBSAN issue 615*/ + +#define FIX_624_PLANAR_SBA_WB /*Dlb : Fix for unintialised value issue 624 */ +#define FIX_629_UBSAN_MD_MAX_BITS /*Dlb : Fix for UBSAN issue 629 for MD MAX bits calculation*/ + #define FIX_626_VARIABLE_TYPE_MDCT_CONC /* FhG: trivial fix to fix USAN error */ #define FIX_616_DIV_ZERO_MCT /*FhG : Fix UBSAN division by zero error of issue 616*/ diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 7233234f4948b8f0cac4bb002e08cea8f0afbb5c..c46141767c70aaec5ecd047b077673c37f1b267a 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -433,6 +433,13 @@ static ivas_error ivas_spar_cov_md_process( { cov_real[i][j] = cov_real_buf[i][j]; cov_dtx_real[i][j] = cov_dtx_real_buf[i][j]; +#ifdef FIX_624_PLANAR_SBA_WB + for ( b = hSpar->hFbMixer->pFb->filterbank_num_bands; b < IVAS_MAX_NUM_BANDS; b++ ) + { + cov_real[i][j][b] = 0.0f; + cov_dtx_real[i][j][b] = 0.0f; + } +#endif } }