Unverified Commit 972fa593 authored by norvell's avatar norvell
Browse files

Merge branch 'main' into ci/fix-long-term-logs

parents 3a4fc5e3 df9f5c42
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1109,11 +1109,17 @@ ivas_error ivas_param_ism_dec_open(
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                      */
);

#ifdef FIX_FLOAT_1526_DIRAC_MEM_LEAK
void ivas_param_ism_dec_close(
    PARAM_ISM_DEC_HANDLE *hParamIsmDec                          /* i/o: decoder ParamISM handle                     */
);
#else
void ivas_param_ism_dec_close(
    PARAM_ISM_DEC_HANDLE *hParamIsmDec,                         /* i/o: decoder ParamISM handle                     */
    SPAT_PARAM_REND_COMMON_DATA_HANDLE *hSpatParamRendCom_out,  /* i/o: common spatial renderer data                */
    const AUDIO_CONFIG output_config                            /* i  : output audio configuration                  */
);
#endif

void ivas_ism_dec_digest_tc(
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                      */
+5 −1
Original line number Diff line number Diff line
@@ -161,13 +161,17 @@
/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */
#define TMP_1342_WORKAROUND_DEC_FLUSH_BROKEN_IN_SR      /* FhG: Temporary workaround for incorrect implementation of decoder flush with split rendering */
#define NONBE_1122_KEEP_EVS_MODE_UNCHANGED              /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR.  */
#define FIX_FLOAT_1522_LTV_MSAN_QMETADATA_ENC_EC3       /* Nokia: float issue 1522: fix uninit MSAN in EC3 of qmetadata encoding */
#define FIX_2235_TD_RENDERER_WORD16                     /* Eri: For float: small synch with BASOP, removing unnecessary abs. BASOP: Use Word16 in TD renderer without converting to Word32 */
#define FIX_FLOAT_1526_DIRAC_MEM_LEAK                   /* FhG: potential memory leak in DirAC handles in case of format switching */
#define ALIGN_ACELP_CORE                                /* VA: align ACELP core functions with BASOP */

/* #################### End BE switches ################################## */

/* #################### Start NON-BE switches ############################ */
/* any switch which is non-be wrt. TS 26.258 V3.0 */

#define FIX_2432_ISM_SPIKES_16KHZ                       /* VA: basop issue 2432: fix spikes in ISM decoding at 16kHz output sampling rate */

/* ##################### End NON-BE switches ########################### */

/* ################## End MAINTENANCE switches ######################### */
+11 −7
Original line number Diff line number Diff line
@@ -2336,7 +2336,9 @@ void MDCT_classifier_reset(
ivas_error acelp_core_enc(
    Encoder_State *st, /* i/o: encoder state structure                 */
    const float inp[], /* i  : input signal of the current frame       */
#ifndef ALIGN_ACELP_CORE
    const float ener, /* i  : residual energy from Levinson-Durbin    */
#endif
    float A[NB_SUBFR16k * ( M + 1 )],    /* i  : A(z) unquantized for the 4 subframes    */
    float Aw[NB_SUBFR16k * ( M + 1 )],   /* i  : weighted A(z) unquant. for subframes    */
    const float epsP[M + 1],             /* i  : LP prediction errors                    */
@@ -3029,7 +3031,9 @@ void CNG_enc(
    Encoder_State *st,   /* i/o: State structure                                     */
    float Aq[],          /* o  : LP coefficients                                     */
    const float *speech, /* i  : pointer to current frame input speech buffer        */
#ifndef ALIGN_ACELP_CORE
    float enr, /* i  : frame energy output from Levinson recursion         */
#endif
    const float *lsp_mid,   /* i  : mid frame LSPs                                      */
    float *lsp_new,         /* i/o: current frame LSPs                                  */
    float *lsf_new,         /* i/o: current frame LSFs                                  */
+16 −0
Original line number Diff line number Diff line
@@ -76,7 +76,11 @@ ivas_error ivas_core_dec(
    float tmp_buffer[L_FRAME48k];
    int16_t tmps, incr;
    float *bwe_exc_extended[CPE_CHANNELS] = { NULL, NULL };
#ifdef FIX_2432_ISM_SPIKES_16KHZ
    int16_t flag_bwe_bws, flag_swb_tbe;
#else
    int16_t flag_bwe_bws;
#endif
    float voice_factors[CPE_CHANNELS][NB_SUBFR16k];
    int16_t core_switching_flag[CPE_CHANNELS];
    float old_syn_12k8_16k[CPE_CHANNELS][L_FRAME16k];
@@ -513,9 +517,16 @@ ivas_error ivas_core_dec(
         * SWB(FB) BWE decoding
         *---------------------------------------------------------------------*/

#ifdef FIX_2432_ISM_SPIKES_16KHZ
        flag_swb_tbe = ( st->extl == SWB_TBE || st->extl == FB_TBE || ( st->coder_type != AUDIO && st->coder_type != INACTIVE && st->core_brate >= SID_2k40 && st->core == ACELP_CORE && !st->con_tcx && output_Fs >= 32000 && st->bwidth > NB && st->bws_cnt > 0 ) );
#endif
        flag_bwe_bws = ( output_Fs >= 32000 && st->core == ACELP_CORE && st->bwidth > NB && st->bws_cnt > 0 && st->bfi == 0 );

#ifdef FIX_2432_ISM_SPIKES_16KHZ
        if ( flag_swb_tbe )
#else
        if ( st->extl == SWB_TBE || st->extl == FB_TBE || ( st->coder_type != AUDIO && st->coder_type != INACTIVE && st->core_brate >= SID_2k40 && st->core == ACELP_CORE && !st->con_tcx && output_Fs >= 32000 && st->bwidth > NB && st->bws_cnt > 0 ) )
#endif
        {
            /* SWB TBE decoder */
            swb_tbe_dec( st, hStereoICBWE, bwe_exc_extended[n], voice_factors[n], old_syn_12k8_16k[n], tmp_buffer /*fb_exc*/, hb_synth[n], pitch_buf[n] );
@@ -532,7 +543,12 @@ ivas_error ivas_core_dec(
            swb_bwe_dec( st, output[n], synth[n], hb_synth[n], use_cldfb_for_dft, output_frame );
        }

#ifdef FIX_2432_ISM_SPIKES_16KHZ
        /* set hb_synth[n] buffer to zeros in case of no BWE decoding */
        if ( ( st->core == ACELP_CORE && ( st->extl == -1 || st->extl == SWB_CNG || ( st->extl == WB_BWE && st->bws_cnt > 0 && flag_swb_tbe == 0 ) ) ) && flag_bwe_bws == 0 )
#else
        if ( ( st->core == ACELP_CORE && ( st->extl == -1 || st->extl == SWB_CNG ) ) && flag_bwe_bws == 0 )
#endif
        {
            set_f( hb_synth[n], 0.0f, L_FRAME48k );
        }
+10 −0
Original line number Diff line number Diff line
@@ -2884,6 +2884,15 @@ void ivas_destroy_dec(
    /* ISM renderer handle */
    ivas_ism_renderer_close( &( st_ivas->hIsmRendererData ) );

#ifdef FIX_FLOAT_1526_DIRAC_MEM_LEAK
    /* ParamISM dec handle */
    ivas_param_ism_dec_close( &( st_ivas->hParamIsmDec ) );

    /* DirAC handles */
    ivas_dirac_rend_close( &( st_ivas->hDirACRend ) );
    ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) );
    ivas_dirac_dec_close( &( st_ivas->hDirAC ) );
#else
    /* DirAC handle */
    if ( st_ivas->ivas_format == ISM_FORMAT )
    {
@@ -2895,6 +2904,7 @@ void ivas_destroy_dec(
        ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) );
        ivas_dirac_dec_close( &( st_ivas->hDirAC ) );
    }
#endif

    /* SPAR handle */
    ivas_spar_dec_close( &( st_ivas->hSpar ), st_ivas->hDecoderConfig->output_Fs, 0 );
Loading