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

Merge branch 'ltv_crash_fixes_1' into 'main'

Fix for LTV crashes

See merge request !491
parents 3350c00b fa88f1c0
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1857,7 +1857,7 @@ void tcx_noise_filling_with_shift(
    tmp32 = L_shr( Mpy_32_16_1( tmp32, tmp1 ), 6 );
    BASOP_SATURATE_WARNING_OFF_EVS;
#ifdef BASOP_NOGLOB
    tilt_factor = round_fx( BASOP_Util_InvLog2( tmp32 ) );
    tilt_factor = round_fx_sat( BASOP_Util_InvLog2( tmp32 ) );
#else
    tilt_factor = round_fx( BASOP_Util_InvLog2( tmp32 ) );
#endif
+9 −3
Original line number Diff line number Diff line
@@ -841,6 +841,8 @@ static void ivas_CalcPowerSpecAndDetectTonalComponents_fx(
        power_spectrum_q = sub( 31, powerSpectrum_exp );
        old_power_spectrum_q = power_spectrum_q;
        move16();
        Word16 length = 0;
        move16();
        /* here mdct_shaping() is intentionally used rather then mdct_shaping_16() */
        IF( psychParamsCurrent == NULL )
        {
@@ -853,25 +855,29 @@ static void ivas_CalcPowerSpecAndDetectTonalComponents_fx(
                invScaleFactors_fx[i] = L_shl( invScaleFactors[i], add( 1, invScaleFactors_exp[i] ) ); // Q16
                move32();
            }
            sns_shape_spectrum_fx( powerSpectrum, &power_spectrum_q, psychParamsCurrent, invScaleFactors_fx, 16, hTonalMDCTConc->nSamplesCore, NULL );
            sns_shape_spectrum_fx( powerSpectrum, &power_spectrum_q, psychParamsCurrent, invScaleFactors_fx, 16, hTonalMDCTConc->nSamplesCore, &length );
            power_spectrum_q = add( power_spectrum_q, 1 );
            // sns_shape_spectrum(powerSpectrum, psychParamsCurrent, invScaleFactors, hTonalMDCTConc->nSamplesCore);
            // nBands = psychParamsCurrent->nBands;
        }
        IF( LT_16( old_power_spectrum_q, power_spectrum_q ) )
        {
            Scale_sig32( powerSpectrum, hTonalMDCTConc->nSamplesCore, sub( old_power_spectrum_q, power_spectrum_q ) );
            Scale_sig32( powerSpectrum, length, sub( old_power_spectrum_q, power_spectrum_q ) );
        }
        ELSE
        {
            Scale_sig32( powerSpectrum + hTonalMDCTConc->nSamplesCore, sub( nSamples, hTonalMDCTConc->nSamplesCore ), sub( power_spectrum_q, old_power_spectrum_q ) );
            Scale_sig32( powerSpectrum + length, sub( nSamples, length ), sub( power_spectrum_q, old_power_spectrum_q ) );
            powerSpectrum_exp = sub( 31, power_spectrum_q );
        }
        Scale_sig32( powerSpectrum, nSamples, -3 ); /*Adding guard bits*/
        powerSpectrum_exp = add( powerSpectrum_exp, 3 );
        FOR( i = hTonalMDCTConc->nSamplesCore; i < nSamples; i++ )
        {
#ifdef BASOP_NOGLOB
            powerSpectrum[i] = L_shl_sat( Mpy_32_16_1( powerSpectrum[i], invScaleFactors[FDNS_NPTS - 1] ), invScaleFactors_exp[FDNS_NPTS - 1] );
#else
            powerSpectrum[i] = L_shl( Mpy_32_16_1( powerSpectrum[i], invScaleFactors[FDNS_NPTS - 1] ), invScaleFactors_exp[FDNS_NPTS - 1] );
#endif
            move32();
        }