From 75256a50ae81d83544b3f5c6940ace55b0272a4e Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 28 Sep 2022 11:18:20 +0200 Subject: [PATCH 1/2] fix usage of uninit value in PLC for SBA with MDCT-ST core --- lib_com/options.h | 2 ++ lib_dec/ivas_cpe_dec.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 222333bc33..1db9d4c2cf 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -158,6 +158,8 @@ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ +#define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 313e0d6172..390da9c6ac 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -823,6 +823,10 @@ ivas_error create_cpe_dec( set_s( hCPE->hStereoMdct->prev_ms_mask[0], 0, MAX_SFB ); set_s( hCPE->hStereoMdct->prev_ms_mask[1], 0, MAX_SFB ); hCPE->hStereoMdct->lastCoh = 1.f; +#ifdef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED + hCPE->hStereoMdct->mdct_stereo_mode[0] = SMDCT_DUAL_MONO; + hCPE->hStereoMdct->mdct_stereo_mode[1] = SMDCT_DUAL_MONO; +#endif } /*-----------------------------------------------------------------* -- GitLab From 790a54834515dacf3a8fd46e24705d4f61abb7d6 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 28 Sep 2022 13:00:05 +0200 Subject: [PATCH 2/2] initialize IGF stereo mode in same manner --- lib_dec/ivas_cpe_dec.c | 2 ++ lib_dec/ivas_stereo_mdct_core_dec.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 390da9c6ac..d034d08db6 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -826,6 +826,8 @@ ivas_error create_cpe_dec( #ifdef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED hCPE->hStereoMdct->mdct_stereo_mode[0] = SMDCT_DUAL_MONO; hCPE->hStereoMdct->mdct_stereo_mode[1] = SMDCT_DUAL_MONO; + hCPE->hStereoMdct->IGFStereoMode[0] = -1; + hCPE->hStereoMdct->IGFStereoMode[1] = -1; #endif } diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index d626d1ca6a..32e9fe103c 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -218,11 +218,13 @@ void stereo_mdct_core_dec( initMdctStereoDecData( hCPE->hStereoMdct, sts[0]->igf, sts[0]->hIGFDec->igfData.igfInfo.grid, hCPE->element_brate, sts[0]->bwidth ); hCPE->hStereoMdct->isSBAStereoMode = ( ( st_ivas->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); +#ifndef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /*to prevent unitialized values during condition checks for stereo IGF*/ if ( hCPE->hStereoMdct->isSBAStereoMode ) { set_s( hCPE->hStereoMdct->IGFStereoMode, -1, 2 ); } +#endif if ( !bfi ) { -- GitLab