Commit b50a777e authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'float-pc' into 1604_ref_port_fl1391

parents 92e50247 8bacf969
Loading
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -200,7 +200,14 @@
#define BE_FIX_567_DOUBLE_STEREO_DMX                          /* NTT: Fix formal issues */   
#define NONBE_FIX_567_DOUBLE_STEREO_DMX                       /* Orange: Double-precision replaced by single-precision */  
#define NONBE_FIX_947_STEREO_DMX_EVS_POC                      /* Orange: Fix clicks on POC */
#ifdef NONBE_FIX_947_STEREO_DMX_EVS_POC
#define NONBE_FIX_947_STEREO_DMX_ROMOPT                       /* Orange: ROM optimisation for POC*/  
#endif
#define NONBE_FIX_947_STEREO_DMX_EVS_PHA                      /* Orange: Fix issues on PHA */
#ifdef NONBE_FIX_947_STEREO_DMX_EVS_PHA
#define NONBE_FIX_947_STEREO_DMX_FADOPT                       /* Orange: Fading optimisation */  
#endif 

#define NONBE_FIX_951_MCMASA_5MS_RENDERING                    /* Nokia: issue #951: Differences for 5ms and 20ms rendering for McMASA at 13.2kbps to BINAURAL */

#define NONBE_FIX_979_OSBA_STEREO_5MS                   /* FhG : issue #979 : 5ms and 20ms output different for OSBA and stereo */
@@ -210,6 +217,9 @@
#define NONBE_FIX_982_OMASA_DELAY_COMP_5MS              /* FhG : issue #982 : 5ms and 20ms output different for OMASA */
#define NONBE_FIX_975_JBM_USAN                          /* FhG: Fix issue #975, USAN in JBM decoding ad 13.2kbps */

#define FIX_ACCESS_WITHIN_NULL_STRUCT_MC_BW_SWITCHING   /* FhG: fix usan error in MCT with bw swicthing */
#define NONBE_FIX_986_MC_BW_SWITCHING                   /* FhG: fix crash in bw and br switching with MC */

/* #################### End BASOP porting switches ############################ */

/* clang-format on */
+21 −0
Original line number Diff line number Diff line
@@ -713,6 +713,26 @@ int16_t set_bw_mct(
    }

    bw_changed = 0;
#ifdef NONBE_FIX_986_MC_BW_SWITCHING
    if ( mct_bwidth != last_mct_bwidth )
    {
        bw_changed = 1;
    }

    /*
     * always set bw for all CPEs even if it is the same value as before,
     * in case of bw + br switching when changing to MCT, this overwrites
     * potentially incorrect initial values
     */
    for ( cpe_id = 0; cpe_id < nCPE; cpe_id++ )
    {
        for ( ch = 0; ch < CPE_CHANNELS; ch++ )
        {
            st = hCPE[cpe_id]->hCoreCoder[ch];
            st->bwidth = mct_bwidth;
        }
    }
#else
    if ( mct_bwidth != last_mct_bwidth )
    {
        bw_changed = 1;
@@ -726,6 +746,7 @@ int16_t set_bw_mct(
            }
        }
    }
#endif

    return bw_changed;
}
+8 −0
Original line number Diff line number Diff line
@@ -578,7 +578,15 @@ ivas_error ivas_cpe_enc(
        if ( ( hCPE->last_element_brate != hCPE->element_brate || hCPE->element_mode != hCPE->last_element_mode || ( hCPE->element_mode == IVAS_CPE_TD && sts[0]->bits_frame_nominal != last_bits_frame_nominal ) || sts[n]->last_bwidth != sts[n]->bwidth ) && ( n == 0 || hCPE->element_mode == IVAS_CPE_MDCT ) )
        {
            int16_t igf;

#ifdef NONBE_FIX_986_MC_BW_SWITCHING
            int16_t bw;

            bw = ( hCPE->element_mode == IVAS_CPE_MDCT ) ? sts[n]->bwidth : sts[n]->max_bwidth;
            igf = getIgfPresent( sts[n]->element_mode, sts[n]->bits_frame_nominal * FRAMES_PER_SEC, bw, sts[n]->rf_mode );
#else
            igf = getIgfPresent( sts[n]->element_mode, sts[n]->bits_frame_nominal * FRAMES_PER_SEC, sts[n]->max_bwidth, sts[n]->rf_mode );
#endif
            if ( ( error = IGF_Reconfig( &sts[n]->hIGFEnc, igf, 0, sts[n]->bits_frame_nominal * FRAMES_PER_SEC, sts[n]->max_bwidth, sts[n]->element_mode, sts[n]->rf_mode ) ) != IVAS_ERR_OK )
            {
                return error;
+8 −2
Original line number Diff line number Diff line
@@ -279,8 +279,14 @@ void ivas_mct_core_enc(

        if ( switch_bw )
        {
            initMdctStereoEncData( hMCT->hBlockData[ch]->hStereoMdct, ivas_format, sts[ch_core]->element_mode, sts[ch_core]->element_brate, sts[ch_core]->bwidth,
                                   sts[ch_core]->igf, sts[ch_core]->hIGFEnc->igfData.igfInfo.grid, 0 );
#ifdef FIX_ACCESS_WITHIN_NULL_STRUCT_MC_BW_SWITCHING
            H_IGF_GRID igf_grid;

            igf_grid = sts[ch_core]->igf ? sts[ch_core]->hIGFEnc->igfData.igfInfo.grid : NULL;
            initMdctStereoEncData( hMCT->hBlockData[ch]->hStereoMdct, ivas_format, sts[ch_core]->element_mode, sts[ch_core]->element_brate, sts[ch_core]->bwidth, sts[ch_core]->igf, igf_grid, 0 );
#else
            initMdctStereoEncData( hMCT->hBlockData[ch]->hStereoMdct, ivas_format, sts[ch_core]->element_mode, sts[ch_core]->element_brate, sts[ch_core]->bwidth, sts[ch_core]->igf, sts[ch_core]->hIGFEnc->igfData.igfInfo.grid, 0 );
#endif
        }

        if ( sts[ch_core]->igf )
+8 −0
Original line number Diff line number Diff line
@@ -172,7 +172,9 @@ ivas_error ivas_mct_enc(
    float orig_spectrum_long[MCT_MAX_BLOCKS][CPE_CHANNELS][L_FRAME48k];
    int16_t switch_bw;
    IVAS_FORMAT ivas_format;
#ifndef NONBE_FIX_986_MC_BW_SWITCHING
    int16_t max_bwidth;
#endif
    int32_t ivas_total_brate;
    ivas_error error;
    float *pdata[MAX_INPUT_CHANNELS];
@@ -186,7 +188,9 @@ ivas_error ivas_mct_enc(
    hMCT->hBstr = st_ivas->hCPE[0]->hCoreCoder[0]->hBstr; /* pointer to write MCT side bits */

    ivas_format = st_ivas->hEncoderConfig->ivas_format;
#ifndef NONBE_FIX_986_MC_BW_SWITCHING
    max_bwidth = st_ivas->hEncoderConfig->max_bwidth;
#endif
    ivas_total_brate = st_ivas->hEncoderConfig->ivas_total_brate;

#ifdef DEBUG_FORCE_MCT_CP
@@ -230,7 +234,11 @@ ivas_error ivas_mct_enc(

        for ( n = 0; n < (int16_t) ( hMCT->nchan_out_woLFE * 0.5 ); n++ )
        {
#ifdef NONBE_FIX_986_MC_BW_SWITCHING
            initMdctStereoEncData( hMCT->hBlockData[n]->hStereoMdct, ivas_format, IVAS_CPE_MDCT, cp_bitrate, st_ivas->hCPE[0]->hCoreCoder[0]->bwidth, st_ivas->hCPE[0]->hCoreCoder[0]->igf, st_ivas->hCPE[0]->hCoreCoder[0]->igf ? st_ivas->hCPE[0]->hCoreCoder[0]->hIGFEnc->igfData.igfInfo.grid : NULL, 0 );
#else
            initMdctStereoEncData( hMCT->hBlockData[n]->hStereoMdct, ivas_format, IVAS_CPE_MDCT, cp_bitrate, max_bwidth, st_ivas->hCPE[0]->hCoreCoder[0]->igf, st_ivas->hCPE[0]->hCoreCoder[0]->igf ? st_ivas->hCPE[0]->hCoreCoder[0]->hIGFEnc->igfData.igfInfo.grid : NULL, 0 );
#endif
        }
    }

Loading