From c86e41208f86ab6b25c488661f9eb0040d670885 Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Tue, 17 Dec 2024 15:21:46 +0530 Subject: [PATCH 1/2] Fix for 3GPP issue 1119: Encoder crash for Stereo in TNSAnalysisStereo_fx() Link #1119 --- lib_enc/cod_tcx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/cod_tcx.c b/lib_enc/cod_tcx.c index a07ee551a..82b2ac885 100644 --- a/lib_enc/cod_tcx.c +++ b/lib_enc/cod_tcx.c @@ -287,7 +287,7 @@ void TNSAnalysisStereo_fx( ELSE { Word16 maxEnergyChange_fx; - maxEnergyChange_fx = shr( add( GetTCXMaxenergyChange_ivas_fx( sts[0]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), GetTCXMaxenergyChange_ivas_fx( sts[1]->hTranDet, isTCX10, NSUBBLOCKS, 3 ) ), 1 ); + maxEnergyChange_fx = add( shr( GetTCXMaxenergyChange_ivas_fx( sts[0]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 1 ), shr( GetTCXMaxenergyChange_ivas_fx( sts[1]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 1 ) ); IF( GE_16( maxEnergyChange_fx, pTnsParameters[0]->minEnergyChange ) ) { -- GitLab From e21d5c3dda8967b0901cea4cd156780c67318ba6 Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Tue, 17 Dec 2024 19:08:32 +0530 Subject: [PATCH 2/2] Update to preserve precision and prevent saturation, reduced complexity --- lib_enc/cod_tcx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/cod_tcx.c b/lib_enc/cod_tcx.c index 82b2ac885..72cfb8e96 100644 --- a/lib_enc/cod_tcx.c +++ b/lib_enc/cod_tcx.c @@ -287,7 +287,7 @@ void TNSAnalysisStereo_fx( ELSE { Word16 maxEnergyChange_fx; - maxEnergyChange_fx = add( shr( GetTCXMaxenergyChange_ivas_fx( sts[0]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 1 ), shr( GetTCXMaxenergyChange_ivas_fx( sts[1]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 1 ) ); + maxEnergyChange_fx = mac_r( L_mult( GetTCXMaxenergyChange_ivas_fx( sts[0]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 16384 ), GetTCXMaxenergyChange_ivas_fx( sts[1]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 16384 ); IF( GE_16( maxEnergyChange_fx, pTnsParameters[0]->minEnergyChange ) ) { -- GitLab