Commit d6a3aab1 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch '3gpp_issue_1157_fix' into 'main'

Fix for 3GPP issue 1157: Encoder crash for Stereo at 48/64kbps DTX on/off in kernel_switch_trafo_fx()

See merge request !949
parents 65d0a851 5bd7dbac
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -113,4 +113,5 @@
#define FIX_ISSUE_1151                          /* Ittiam: Fix for Issue 1151: Assertion error observed in evs_enc_fx (with option stereo_dmx_evs) from sp_mus_classif_gmm_fx function*/
#define FIX_ISSUE_1153                          /* Ittiam: Fix for Issue 1153: Assertion error observed in stereo_dmx_evs_enc_fx from calc_poc_fx function*/
#define FIX_ISSUE_1154                          /* Ittiam: Fix for Issue 1154: Encoder crash for ParamMC 7.1 at 96kbps in ivas_param_mc_param_est_enc_fx() */
#define FIX_ISSUE_1157                          /* Ittiam: Fix for Issue 1157: Encoder crash for Stereo at 48/64kbps DTX on/off in kernel_switch_trafo_fx() */
#endif
+10 −3
Original line number Diff line number Diff line
@@ -547,8 +547,11 @@ static void kernel_switch_update_transforms_fx(
            Copy_Scale_sig_32_16( windowedTimeSignal + 2, windowedTimeSignal_16 + 2, add( s, shr( add( leftOverlap, rightOverlap ), 1 ) ), -Q16 );                       // *q_windowedTimeSignal - Q16
            WindowSignal( hTcxCfg, shr( leftOverlap, 1 ), RECTANGULAR_OVERLAP, MIN_OVERLAP, &leftOverlap, &rightOverlap, windowedTimeSignal_16 + 2, &s, tcx5Win, 0, 1 ); // *q_windowedTimeSignal - Q16
            Copy_Scale_sig_16_32_no_sat( tcx5Win, tcx5Win_32, add( s, shr( add( leftOverlap, rightOverlap ), 1 ) ), Q16 );                                               // *q_windowedTimeSignal

#ifdef FIX_ISSUE_1157
            q_shift = -Q8;
#else
            q_shift = -Q7;
#endif
            move16();
            scale_sig32( tcx5Win_32, add( s /* L_subfr. */, shr( add( leftOverlap, rightOverlap ), 1 ) ), q_shift );                                                // *q_windowedTimeSignal + q_shift
            kernel_switch_trafo_fx( tcx5Win_32, sigR, leftOverlap, sub( s /* L_subfr. */, shr( add( leftOverlap, rightOverlap ), 1 ) ), rightOverlap, kernelType ); // *q_windowedTimeSignal + q_shift
@@ -577,7 +580,11 @@ static void kernel_switch_update_transforms_fx(
        ELSE /* tcxTransType != TCX_5 */
        {
            Word16 q_shift, q_com;
#ifdef FIX_ISSUE_1157
            q_shift = -Q8;
#else
            q_shift = -Q7;
#endif
            move16();
            scale_sig32( windowedTimeSignal + 2, add( s /* L_subfr. */, shr( add( leftOverlap, rightOverlap ), 1 ) ), q_shift );                                                // *q_windowedTimeSignal + q_shift
            kernel_switch_trafo_fx( windowedTimeSignal + 2, sigR, leftOverlap, sub( s /* L_subfr. */, shr( add( leftOverlap, rightOverlap ), 1 ) ), rightOverlap, kernelType ); // *q_windowedTimeSignal + q_shift