Commit 8b927983 authored by vaclav's avatar vaclav
Browse files

- fix Issue 127: fix BER detected in ISM4 due to desynchronized...

- fix Issue 127: fix BER detected in ISM4 due to desynchronized 'GSC_IVAS_mode' parameter; under FIX_I217_GSC_FLAG_IN_ISM
- + remove unnecessary assignments
parent e2d91909
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -156,7 +156,7 @@
#define FIX_MCT_UNINIT_MEM                              /* Issue 166: Reading of uninitialized memory in TCX range coder */
#define FIX_IGF_NOISE_REPETITION                        /* Issue 182: fix repetition of same noise in IGF */
#define FIX_126_MDFT_FB_STATIC_MEM                      /* Issue 126: reduce static mem consumption of the MDFT FB for non-SBA formats */

#define FIX_I217_GSC_FLAG_IN_ISM                        /* Issue 127: fix BER detected in ISM4 due to desynchronized 'GSC_IVAS_mode' parameter */

/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */
+7 −13
Original line number Diff line number Diff line
@@ -67,7 +67,6 @@ void tdm_low_rate_dec(
    int16_t Diff_len, nb_subfr;
    int16_t attack_flag;
    int16_t last_bin;
    int16_t m_coder_type;
    float exc_wo_nf[L_FRAME];

    hGSCDec = st->hGSCDec;
@@ -76,26 +75,21 @@ void tdm_low_rate_dec(
     * Initialization
     *---------------------------------------------------------------*/

    m_coder_type = st->coder_type;

    Diff_len = 0;

    pit_band_idx = 10 + BAND1k2;
    nb_subfr = 2;

    hGSCDec->Last_GSC_pit_band_idx = pit_band_idx;

#ifdef FIX_I217_GSC_FLAG_IN_ISM
    st->GSC_IVAS_mode = 0;
#endif
    st->GSC_noisy_speech = 1;
    hGSCDec->noise_lev = 14;

    /*---------------------------------------------------------------*
     * DCT transform
     *---------------------------------------------------------------*/
    pit_band_idx = 10 + BAND1k2;
    hGSCDec->Last_GSC_pit_band_idx = pit_band_idx;

    st->tilt_code = 0.0f;
    set_f( exc, 0, L_FRAME );
    set_f( dct_epit, 0, L_FRAME );
    set_f( pitch_buf, 64, 4 );
    set_f( pitch_buf, L_SUBFR, NB_SUBFR );
    st->bpf_off = 1;

    st->bfi_pitch = (int16_t) ( mean( pitch_buf, 4 ) + 0.5f );
@@ -127,7 +121,7 @@ void tdm_low_rate_dec(
        tmp_nb_bits_tot--;
    }

    gsc_dec( st, dct_epit, pit_band_idx, Diff_len, tmp_nb_bits_tot, nb_subfr, m_coder_type, &last_bin, lsf_new, exc_wo_nf, tmp_noise );
    gsc_dec( st, dct_epit, pit_band_idx, Diff_len, tmp_nb_bits_tot, nb_subfr, st->coder_type, &last_bin, lsf_new, exc_wo_nf, tmp_noise );

    /*--------------------------------------------------------------------------------------*
     * iDCT transform
+0 −1
Original line number Diff line number Diff line
@@ -97,7 +97,6 @@ void encod_audio(
    hGSCEnc = st->hGSCEnc;

    m_mean = 0.0f;
    tmp_nb_bits_tot = 0;

    T0_tmp = 64;
    T0_frac_tmp = 0;
+13 −12
Original line number Diff line number Diff line
@@ -72,28 +72,29 @@ void tdm_low_rate_enc(
    float exc_wo_nf[L_FRAME];
    LPD_state_HANDLE hLPDmem = st->hLPDmem;

    tmp_nb_bits_tot = 0;

    /*---------------------------------------------------------------*
     * DCT transform of the residual and create a subsample residual
     * Initialization
     *---------------------------------------------------------------*/

    edct( res, dct_res, L_FRAME, st->element_mode );

    nb_subfr = 2;

    /*---------------------------------------------------------------*
     * Compute time domain excitation contribution in the subsample domain
     *---------------------------------------------------------------*/
#ifdef FIX_I217_GSC_FLAG_IN_ISM
    st->GSC_IVAS_mode = 0;
#endif
    st->GSC_noisy_speech = 1;
    st->hGSCEnc->noise_lev = 14;

    hLPDmem->tilt_code = 0.0f;

    st->GSC_noisy_speech = 1;
    set_f( dct_epit, 0, L_FRAME );
    set_f( pitch_buf, 64, NB_SUBFR );
    st->hGSCEnc->noise_lev = 14;
    set_f( pitch_buf, L_SUBFR, NB_SUBFR );
    last_pit_bin = L_FRAME / 2;

    /*---------------------------------------------------------------*
     * DCT transform of the residual and create a subsample residual
     *---------------------------------------------------------------*/

    edct( res, dct_res, L_FRAME, st->element_mode );

    /*--------------------------------------------------------------------------------------*
     * GSC encoder
     *--------------------------------------------------------------------------------------*/