Commit 1984ff0e authored by norvell's avatar norvell
Browse files

Merge branch '1430_ref_div_by_zero_stereo_cng' into 'float-pc'

Port fix FIX_963_USAN_ERROR to resolve division-by-zero in Stereo CNG to float-pc

See merge request !1322
parents 6a427cf5 4f46ac85
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -181,6 +181,7 @@
#define ISAR_BITSTREAM_UPDATE_LC3PLUS                   /* FhG: Multiple improvements to the ISAR bitstream when LC3plus is used. See MR 1456 for details. */
#endif
#define NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM   /* FhG: issue 1058: do not initialize EFAP when IntSetup is HOA3 */
#define FIX_963_USAN_ERROR                              /* Eri: Issue 963: USAN error in Stereo CNG, division by zero */
#define NONBE_FIX_952_MC_PARAMUPMIX_5MS                       /* Dlb : issue 952 : Differences between 5ms and 20ms rendering for ParamUpmix*/
#define NONBE_FIX_935_EARLY_REFLECTIONS_WRONG_ORDER           /* Qualcomm: issue 953: fix order or ER channels in LC mode*/
#define FIX_955_FASTCONV_REND_IN_ISM                    /* VA: put FastConv rendering call under DEBUGGING */
+22 −0
Original line number Diff line number Diff line
@@ -910,7 +910,18 @@ void stereo_dft_enc_compute_itd(
                {
                    hStereoDft->expectedNumUpdates += 1 + min( hCPE->hFrontVad[0]->rem_dtx_ho, hCPE->hFrontVad[1]->rem_dtx_ho );
                }
#ifdef FIX_963_USAN_ERROR
                if ( hStereoDft->expectedNumUpdates + hStereoDft->currentNumUpdates == 0 )
                {
                    cng_xcorr_filt = max( CORR_FILT, sfm_L );
                }
                else
                {
                    cng_xcorr_filt = max( min( CORR_FILT, 10.0f * CORR_FILT / ( hStereoDft->expectedNumUpdates + hStereoDft->currentNumUpdates ) ), sfm_L );
                }
#else
                cng_xcorr_filt = max( min( CORR_FILT, 10.0f * CORR_FILT / ( hStereoDft->expectedNumUpdates + hStereoDft->currentNumUpdates ) ), sfm_L );
#endif
                hStereoDft->currentNumUpdates++;
                for ( i = 1; i < NFFT / 2; i++ )
                {
@@ -945,7 +956,18 @@ void stereo_dft_enc_compute_itd(
            if ( vad_flag_dtx[0] == 0 )
            {
                /* expectedNumUpdates updated after call to dtx() in SID frames */
#ifdef FIX_963_USAN_ERROR
                if ( hStereoDft->expectedNumUpdates + hStereoDft->currentNumUpdates == 0 )
                {
                    cng_xcorr_filt = max( CORR_FILT, sfm_L );
                }
                else
                {
                    cng_xcorr_filt = max( min( CORR_FILT, 10.0f * CORR_FILT / ( hStereoDft->expectedNumUpdates + hStereoDft->currentNumUpdates ) ), sfm_L );
                }
#else
                cng_xcorr_filt = max( min( CORR_FILT, 10.0f * CORR_FILT / ( hStereoDft->expectedNumUpdates + hStereoDft->currentNumUpdates ) ), sfm_L );
#endif
                hStereoDft->currentNumUpdates++;
                hStereoDft->sfm = cng_xcorr_filt;
            }