Commit 91a8c3ba authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Decoder LTV crash fix and Q-info update for few decoder files

parent 410408a4
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -6145,7 +6145,7 @@ ivas_error ivas_sba_dec_render_fx(
    const UWord16 nSamplesAsked,    /* i  : number of CLDFB slots requested           */
    UWord16 *nSamplesRendered,      /* o  : number of CLDFB slots rendered            */
    UWord16 *nSamplesAvailableNext, /* o  : number of CLDFB slots still to render     */
    Word32 *output_fx[],               /* o  : rendered time signal                      */
    Word32 *output_fx[],               /* o  : rendered time signal                      Q11*/
    Word16 out_len/*Store the length of values in each channel*/
);
#endif // IVAS_FLOAT_FIXED
+61 −61

File changed.

Preview size limit exceeded, changes collapsed.

+229 −228

File changed.

Preview size limit exceeded, changes collapsed.

+82 −82

File changed.

Preview size limit exceeded, changes collapsed.

+50 −10
Original line number Diff line number Diff line
@@ -4178,12 +4178,12 @@ static void adaptTransportSignalsHeadtracked_fx(
    Word16 band_idx, bin_lo, bin_hi, norm, shift = 31;
    Word16 q_chEneIIR = 0, q_procChEneIIR = 0;
    Word32 temp_div;
    Word16 e_div, tmp;
    Word16 e_div, tmp, is_zero, i;
    move16();
    move16();
    move16();

    FOR( Word16 i = 0; i < 6; i++ )
    FOR( i = 0; i < 6; i++ )
    {
        FOR( Word16 j = 0; j < nSlots; j++ )
        {
@@ -4409,17 +4409,57 @@ static void adaptTransportSignalsHeadtracked_fx(
        }
    }

    is_zero = 1;
    move16();
    FOR( i = 0; i < MASA_FREQUENCY_BANDS; i++ )
    {
        test();
        if ( ( hHeadTrackData->chEneIIR_fx[0][i] != 0 ) || ( hHeadTrackData->chEneIIR_fx[1][i] != 0 ) )
        {
            is_zero = 0;
            move16();
            BREAK;
        }
    }
    IF( is_zero )
    {
        hHeadTrackData->q_chEneIIR = 31;
        move16();
    }
    ELSE
    {
        tmp = sub( s_min( getScaleFactor32( hHeadTrackData->chEneIIR_fx[0], MASA_FREQUENCY_BANDS ), getScaleFactor32( hHeadTrackData->chEneIIR_fx[1], MASA_FREQUENCY_BANDS ) ), 1 );
        scale_sig32( hHeadTrackData->chEneIIR_fx[0], MASA_FREQUENCY_BANDS, tmp );
        scale_sig32( hHeadTrackData->chEneIIR_fx[1], MASA_FREQUENCY_BANDS, tmp );
        hHeadTrackData->q_chEneIIR = add( q_chEneIIR, tmp );
        move16();
    }

    is_zero = 1;
    move16();
    FOR( i = 0; i < MASA_FREQUENCY_BANDS; i++ )
    {
        test();
        if ( ( hHeadTrackData->procChEneIIR_fx[0][i] != 0 ) || ( hHeadTrackData->procChEneIIR_fx[1][i] != 0 ) )
        {
            is_zero = 0;
            move16();
            BREAK;
        }
    }
    IF( is_zero )
    {
        hHeadTrackData->q_procChEneIIR = 31;
        move16();
    }
    ELSE
    {
        tmp = sub( s_min( getScaleFactor32( hHeadTrackData->procChEneIIR_fx[0], MASA_FREQUENCY_BANDS ), getScaleFactor32( hHeadTrackData->procChEneIIR_fx[1], MASA_FREQUENCY_BANDS ) ), 1 );
        scale_sig32( hHeadTrackData->procChEneIIR_fx[0], MASA_FREQUENCY_BANDS, tmp );
        scale_sig32( hHeadTrackData->procChEneIIR_fx[1], MASA_FREQUENCY_BANDS, tmp );
        hHeadTrackData->q_procChEneIIR = add( q_procChEneIIR, tmp );
        move16();
    }
    return;
}