Commit 19715a08 authored by Manuel Jander's avatar Manuel Jander
Browse files

Improve scale of wspeech_enc which leads to -10dB case crashes.

parent 87d4e424
Loading
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -1436,12 +1436,14 @@ ivas_error ivas_compute_core_buffers_fx(
#ifdef NONBE_FIX_ISSUE_2206
        Word16 tmp;
        // L_FRAME16k + L_LOOK_16k
        tmp = norm_arr( st->buf_wspeech_enc, (Word16) ( st->wspeech_enc - st->buf_wspeech_enc ) );
        tmp = norm_arr( st->wspeech_enc, L_FRAME16k + L_LOOK_16k );
        tmp = s_min( tmp, norm_arr( st->buf_wspeech_enc, (Word16) ( st->wspeech_enc - st->buf_wspeech_enc ) ) );
        tmp = s_min( tmp, norm_arr( st->wspeech_enc + L_FRAME16k + L_LOOK_16k, /* L_NEXT_MAX_16k + */ 320 ) );
        // scale_sig( st->buf_wspeech_enc, L_FRAME16k + L_SUBFR + L_FRAME16k + L_NEXT_MAX_16k + 320, tmp );
        scale_sig( st->buf_wspeech_enc, (Word16) ( st->wspeech_enc - st->buf_wspeech_enc ), tmp );
        scale_sig( st->wspeech_enc + L_FRAME16k + L_LOOK_16k, /* L_NEXT_MAX_16k + */ 320, tmp );
        st->exp_buf_wspeech_enc = sub( st->exp_buf_speech_enc_pe, tmp );
        tmp = add( s_min( sub( Q15, st->exp_buf_speech_enc_pe  ), sub( Q15, st->exp_buf_wspeech_enc ) ), tmp );
        scale_sig( st->buf_wspeech_enc, (Word16) ( st->wspeech_enc - st->buf_wspeech_enc ), sub( tmp, sub( Q15, st->exp_buf_wspeech_enc) ) );
        scale_sig( st->wspeech_enc, L_FRAME16k + L_LOOK_16k, sub( tmp, sub( Q15, st->exp_buf_speech_enc_pe) ) );
        scale_sig( st->wspeech_enc + L_FRAME16k + L_LOOK_16k, /* L_NEXT_MAX_16k + */ 320, sub( tmp, sub( Q15, st->exp_buf_wspeech_enc) ) );
        st->exp_buf_wspeech_enc = tmp;
        move16();
#endif
    }