Commit c53a2d46 authored by vaclav's avatar vaclav
Browse files

- Merge remote-tracking branch 'remotes/origin/main' into...

- Merge remote-tracking branch 'remotes/origin/main' into basop-2273-usan-oob-indexing-in-pitch_fr4_fx-function
parents 0f7ec76a 8b03f777
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -162,11 +162,15 @@
/*#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_CLANG18_MSAN_IN_DEC_INIT_BY_MOVING_COMMON_INITS_TOGETHER /* FhG: fix CLANG18 MSAN error in decoder init */
#define FIX_1481_CLANG18_MSAN_INIT_LAST_ELEM_BRATE      /* FhG: initialize last_element_brate to avoid CLANG18 MSAN complaint */
#define FIX_1484_CLANG18_MSAN_INIT_ST_ELEM_BRATE        /* FhG: initialize st->element_brate per default */
#define FIX_1464_UBSAN_RC_CONTEXT_MAP                   /* FhG: BE UBSAN fix for float issue 1464 in the TCX range coder */
#define FIX_2272_OOB_INDEXING_IN_LTP_PIT_SEARCH         /* FhG: fix OOB index USAN error in TCX LTP pitch search */
#define FIX_2274_OOB_INDEXING_IN_CORRMATRIX             /* FhG: fix OOB indexing complaint */
#define FIX_2278_OOB_INDEXING_IN_CLOSED_LOOP_PIT_SEARCH /* FhG: fix oob indexing USAN complaint */
#define FIX_2287_MCT_MDCT_STEREO_DATA_MALLOC_SIZE       /* FhG: correct allocation size for STEREO_MDCT_DEC_DATA struct */
#define FIX_2271_OOB_INDEXING_IN_PIT_OL2                /* VA: Fix for issue 2271, to silence clang18 */
#define FIX_2273_OOB_INDEXING_IN_PIT_FR4                /* VA: Fix to silence clang on ptr init */

/* #################### End BE switches ################################## */
@@ -178,6 +182,8 @@
#define FIX_1454_FIX_STEREO_TO_FOA_JBM                  /* VA: issue 1454: fix buggy stereo to FOA in JBM */
#define FIX_1461_CNG_BW_SWITCHING                       /* Eri: issue 1461: Stereo parameters are not updated when SID/NODATA forces BW to stay the same */
#define FIX_2252_LP_CNG_STARTS_SID                      /* VA: issues 2251 and 2252: fix LP CNG uninitialized value in bitstream that starts with an SID */
#define FIX_1381_BWD                                    /* VA: issue 1381: apply no hysteresis in BWD at higher bitrates also in mono MASA and OMASA */
#define FIX_2285_CODE_DECODER_INIT_BW                   /* VA: basop issue 2285: fix core-decoder initialization bandwidth */

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

+1 −1
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ ivas_error init_decoder(
    }
    else
    {
#if 0 // keep deactivated for the moment to keep BE
#ifdef FIX_2285_CODE_DECODER_INIT_BW
        st->bwidth = WB;
        st->last_bwidth = WB;
#else
+6 −0
Original line number Diff line number Diff line
@@ -353,6 +353,9 @@ ivas_error create_sce_dec(

    hSCE->sce_id = sce_id;
    hSCE->element_brate = element_brate;
#ifdef FIX_1481_CLANG18_MSAN_INIT_LAST_ELEM_BRATE
    hSCE->last_element_brate = hSCE->element_brate;
#endif

    set_f( hSCE->prev_hb_synth, 0.0f, NS2SA( st_ivas->hDecoderConfig->output_Fs, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS ) );

@@ -368,6 +371,9 @@ ivas_error create_sce_dec(
    copy_decoder_config( st_ivas, st );

    st->total_brate = hSCE->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */
#ifdef FIX_1484_CLANG18_MSAN_INIT_ST_ELEM_BRATE
    st->element_brate = -1;
#endif
    st->mct_chan_mode = MCT_CHAN_MODE_REGULAR;
    st->is_ism_format = 0;
    if ( st_ivas->ivas_format == ISM_FORMAT || st_ivas->ivas_format == MASA_ISM_FORMAT )
+18 −6
Original line number Diff line number Diff line
@@ -219,36 +219,48 @@ ivas_error IVAS_DEC_Open(
    st_ivas->restartNeeded = 0;

    /* set high-level parameters */
#ifdef FIX_CLANG18_MSAN_IN_DEC_INIT_BY_MOVING_COMMON_INITS_TOGETHER

    st_ivas->codec_mode = 0; /* unknown before first frame */
    st_ivas->transport_config = IVAS_AUDIO_CONFIG_INVALID;
    st_ivas->intern_config = IVAS_AUDIO_CONFIG_INVALID;
    st_ivas->writeFECoffset = 0;
    st_ivas->sba_analysis_order = 0; /* not really used in EVS mode, but initialize here to fix MSAN complaint */
#endif

    if ( mode == IVAS_DEC_MODE_EVS )
    {
#ifndef FIX_CLANG18_MSAN_IN_DEC_INIT_BY_MOVING_COMMON_INITS_TOGETHER
        st_ivas->codec_mode = 0; /* unknown before first frame */
        st_ivas->element_mode_init = EVS_MONO;
        st_ivas->ivas_format = MONO_FORMAT;
        st_ivas->transport_config = IVAS_AUDIO_CONFIG_INVALID;
        st_ivas->intern_config = IVAS_AUDIO_CONFIG_INVALID;
        st_ivas->writeFECoffset = 0;
#endif
        st_ivas->element_mode_init = EVS_MONO;
        st_ivas->ivas_format = MONO_FORMAT;
        hIvasDec->hasDecodedFirstGoodFrame = true; /* Functionality to suppress output for initial lost frames is disabled in EVS operation */

        return IVAS_ERR_OK;
    }
    else if ( mode == IVAS_DEC_MODE_IVAS )
    {
#ifndef FIX_CLANG18_MSAN_IN_DEC_INIT_BY_MOVING_COMMON_INITS_TOGETHER
        st_ivas->codec_mode = 0; /* unknown before first frame */
        st_ivas->element_mode_init = -1;
        st_ivas->ivas_format = UNDEFINED_FORMAT;
        st_ivas->transport_config = IVAS_AUDIO_CONFIG_INVALID;
        st_ivas->intern_config = IVAS_AUDIO_CONFIG_INVALID;
        st_ivas->writeFECoffset = 0;
#endif
        st_ivas->element_mode_init = -1;
        st_ivas->ivas_format = UNDEFINED_FORMAT;
        st_ivas->renderer_type = RENDERER_DISABLE;
        st_ivas->ini_frame = 0;
        st_ivas->ini_active_frame = 0;
        st_ivas->writeFECoffset = 0;

        st_ivas->ism_mode = ISM_MODE_NONE;
        st_ivas->mc_mode = MC_MODE_NONE;

        st_ivas->sba_order = 0;
        st_ivas->sba_planar = 0;
        st_ivas->sba_analysis_order = 0;

        return IVAS_ERR_OK;
    }
+8 −0
Original line number Diff line number Diff line
@@ -53,6 +53,9 @@
 *-------------------------------------------------------------------*/

#define BWD_MIN_BRATE_WIDER_BW_MDCT IVAS_48k
#ifdef FIX_1381_BWD
#define BWD_MIN_BRATE_WIDER_BW_MASA IVAS_48k
#endif
#define BWD_MIN_BRATE_WIDER_BW_ISM  IVAS_32k
#define BWD_MAX_BRATE_WIDER_BW_MDCT IVAS_80k
#define BWD_MAX_BRATE_WIDER_BW_ISM  IVAS_64k
@@ -92,7 +95,12 @@ void bw_detect(

    bwd_count_wider_bw = BWD_COUNT_WIDER_BW;
    if ( st->ini_frame > 0 && ( ( st->element_mode == IVAS_CPE_MDCT && ( st->element_brate >= BWD_MIN_BRATE_WIDER_BW_MDCT || mct_on ) ) ||
#ifdef FIX_1381_BWD
                                ( st->is_ism_format && st->element_brate >= BWD_MIN_BRATE_WIDER_BW_ISM ) ||
                                ( ivas_format == MASA_FORMAT && st->element_brate >= BWD_MIN_BRATE_WIDER_BW_MASA ) ) )
#else
                                ( ivas_format == ISM_FORMAT && st->element_brate >= BWD_MIN_BRATE_WIDER_BW_ISM ) ) )
#endif
    {
        bwd_count_wider_bw = BWD_COUNT_WIDER_BW_MDCT;
    }
Loading