Skip to content

crash in stereo FEC condition in the function fec_ecu_pitch_ivas_fx()

With cc43b322 (plus fixes 861 and 862) and this bitstream : RkU.bit_error.32000

the crash happens at Ln3722 in the L_shl()

        /*accB*/
        /*accC*/
        /*accA Q 6-2*tmpQLP*/

        accBisqrt = Isqrt( accB ); /* Q31 - 3 +  tmpQLP */
        accCisqrt = Isqrt( accC ); /* Q31 - 3 +  tmpQLP*/


        Ryytmp = L_shl( Mult_32_32( accA, accCisqrt ), Q15 );            /*Q   6 -2*tmpQLP +  Q31 - 3 +  tmpQLP -16 -3 +tmpQLP      = Q15*/
 >>>    Ryy = extract_h( L_shl( Mult_32_32( Ryytmp, accBisqrt ), 16 ) ); /*Q15 + Q31 - 3 +  tmpQLP -15 + 3- tmpQLP = Q31*/

        IF( GT_16( Ryy, *min_corr_fx ) )
        {
            *min_corr_fx = Ryy;
            move16();
            delay_ind = i;
            move16();
        }

I don't know much about that part of the code, but to me it looks a bit strange to L_shl the result of a 32bx32b multiplication by 16.

Tagging @norvell and @bruhnst as they probably knows more about it