Commit d34017fa authored by vaillancour's avatar vaillancour
Browse files

add variable inactive_coder_type_flag both in encoder and decoder

parent 000b71dd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -980,7 +980,7 @@ ivas_error acelp_core_dec_fx(
            {
                decod_tran_fx( st_fx, st_fx->L_frame_fx, tc_subfr_fx, Aq_fx, Es_pred_fx, pitch_buf_fx, voice_factors, exc_fx, exc2_fx, bwe_exc_fx, unbits, sharpFlag, gain_buf );
            }
            ELSE IF( EQ_16(st_fx->coder_type_fx,AUDIO) || (EQ_16(st_fx->coder_type_fx,INACTIVE) && LE_32(st_fx->core_brate_fx, MAX_GSC_INACTIVE_BRATE)))
            ELSE IF( EQ_16(st_fx->coder_type_fx,AUDIO) || (EQ_16(st_fx->coder_type_fx,INACTIVE) && st_fx->inactive_coder_type_flag ))
            {
                decod_audio_fx( st_fx, dct_exc_tmp, Aq_fx, pitch_buf_fx, voice_factors, exc_fx, exc2_fx, bwe_exc_fx, lsf_new_fx, gain_buf 
#ifdef ADD_LRTD
+12 −0
Original line number Diff line number Diff line
@@ -706,5 +706,17 @@ void decision_matrix_dec_fx(
        move16();
    }

   /*-----------------------------------------------------------------*
    * set inactive coder_type flag in ACELP core
    *-----------------------------------------------------------------*/

    st->inactive_coder_type_flag = 0; /* AVQ by default */
    move16();
    if ( LE_32(st->total_brate_fx, MAX_GSC_INACTIVE_BRATE))
    {
        st->inactive_coder_type_flag = 1; /* GSC */
        move16();
    }

    return;
}
+2 −0
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ ivas_error init_decoder_fx(

    st_fx->last_coder_type_fx  = GENERIC;
    move16();
    st_fx->inactive_coder_type_flag = 0;
    move16();
    st_fx->last_L_frame_fx  = st_fx->L_frame_fx;
    move16();
    st_fx->last_core_brate_fx  = st_fx->core_brate_fx ;
+2 −0
Original line number Diff line number Diff line
@@ -1401,6 +1401,8 @@ typedef struct Decoder_State_fx
    Word16  last_element_mode; /* element mode */
    Word16  low_rate_mode;           /* low-rate mode flag */
    Word16  last_low_rate_mode;      /* previous low-rate mode flag */
    Word16  inactive_coder_type_flag; /* inactive coder type flag (0 = AVQ / 1 = GSC) */

    Word16  coder_type_fx;           /* low-rate mode flag */
    Word16 mct_chan_mode;
    Word16 cng_ism_flag;  /* CNG in ISM format flag */
+1 −5
Original line number Diff line number Diff line
@@ -489,7 +489,6 @@ ivas_error acelp_core_enc_fx(
        if (st->last_core != ACELP_CORE && st->element_mode > EVS_MONO)
        {
            /* Prepare ACB memory of old_bwe_exc */
#ifdef CR_FIX_639_HQ_ACELP_TRANSITION
            if (st->L_frame == L_FRAME)
            {
                lerp(old_exc, old_bwe_exc, L_EXC_MEM_DEC * HIBND_ACB_L_FAC, L_EXC_MEM_DEC);
@@ -498,9 +497,6 @@ ivas_error acelp_core_enc_fx(
            {
                lerp(old_exc, old_bwe_exc, L_EXC_MEM_DEC * 2, L_EXC_MEM_DEC);
            }
#else
            lerp(old_exc, old_bwe_exc, L_EXC_MEM_DEC * HIBND_ACB_L_FAC, L_EXC_MEM_DEC);
#endif
        }
#endif

@@ -608,7 +604,7 @@ ivas_error acelp_core_enc_fx(
                        exc_fx, exc2_fx, pitch_buf_fx, voice_factors_fx, bwe_exc_fx, unbits_fx, tdm_Pitch_reuse_flag, tdm_Pri_pitch_buf, shift, Q_new );
            }
        }
        ELSE IF( EQ_16(coder_type,AUDIO)||(EQ_16(coder_type,INACTIVE)&&LE_32(st_fx->core_brate_fx,ACELP_24k40)))
        ELSE IF( EQ_16(coder_type,AUDIO) || (EQ_16(coder_type,INACTIVE) && st_fx->inactive_coder_type_flag ))
        {
            /* AUDIO and INACTIVE frames (coded by GSC technology) */
            encod_audio_fx( st_fx, inp_fx, Aw_fx, Aq_fx, res_fx, syn_fx, exc_fx, pitch_buf_fx, voice_factors_fx, bwe_exc_fx,
Loading