Commit 79f3aeae authored by reutelhuber's avatar reutelhuber
Browse files

fix bitrate mismatch in initial IGF config

parent 8b7e5309
Loading
Loading
Loading
Loading
Loading

lib_com/options.h

100644 → 100755
+1 −0
Original line number Diff line number Diff line
@@ -154,6 +154,7 @@
#define FIX_881_REMOVE_LFE_ADDITION_IN_ISM              /* VA: issue 881: remove LFE addition in ISM format */
#define FIX_887_ARRAY_SIZE_DFT_MDCT_STEREO              /* VA: Fix the definition of buffers/arrays in DFT and MDCT stereo to satisfy gcc v 11.4.0 */
#define FIX_891_PARAMUPMIX_CLEANUP                      /* Dlb: issue 891: remove unneeded code from ParamUpmix */
#define FIX_920_IGF_INIT_ERROR                          /* FhG: issue 920: fix bitrate mismatch in initial IGF config to avoid error message in same cases */

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

lib_com/prot.h

100644 → 100755
+3 −0
Original line number Diff line number Diff line
@@ -6760,6 +6760,9 @@ float correlation_shift(
void init_coder_ace_plus(
    Encoder_State *st,              /* i  : Encoder state handle                */
    const int32_t last_total_brate, /* i  : last total bitrate                  */
#ifdef FIX_920_IGF_INIT_ERROR
    const int32_t igf_brate,        /* i  : IGF configuration bitrate           */
#endif
    const int16_t MCT_flag          /* i  : hMCT handle allocated (1) or not (0)*/
);

+7 −0
Original line number Diff line number Diff line
@@ -64,6 +64,9 @@ static void init_modes( Encoder_State *st, const int32_t last_total_brate );
void init_coder_ace_plus(
    Encoder_State *st,              /* i  : Encoder state                          */
    const int32_t last_total_brate, /* i  : last total bitrate                     */
#ifdef FIX_920_IGF_INIT_ERROR
    const int32_t igf_brate,        /* i  : IGF configuration bitrate              */
#endif
    const int16_t MCT_flag          /* i  : hMCT handle allocated (1) or not (0)   */
)
{
@@ -154,7 +157,11 @@ void init_coder_ace_plus(

    if ( st->igf && st->hIGFEnc != NULL )
    {
#ifdef FIX_920_IGF_INIT_ERROR
        IGFEncSetMode( st->hIGFEnc, igf_brate, st->bwidth, st->element_mode, st->rf_mode );
#else
        IGFEncSetMode( st->hIGFEnc, st->total_brate, st->bwidth, st->element_mode, st->rf_mode );
#endif
    }
    else if ( st->hIGFEnc != NULL )
    {
+4 −0
Original line number Diff line number Diff line
@@ -152,7 +152,11 @@ void core_coder_mode_switch(
    else
    {
        st->igf = getIgfPresent( st->element_mode, st->total_brate, st->bwidth, st->rf_mode );
#ifdef FIX_920_IGF_INIT_ERROR
        init_coder_ace_plus( st, last_total_brate, st->total_brate, MCT_flag );
#else
        init_coder_ace_plus( st, last_total_brate, MCT_flag );
#endif
    }

    if ( st->igf && st->hBWE_TD != NULL )
+4 −0
Original line number Diff line number Diff line
@@ -825,7 +825,11 @@ ivas_error init_encoder(
    set_f( st->totalNoise_increase_hist, 0.f, TOTALNOISE_HIST_SIZE );
    st->totalNoise_increase_len = 0;

#ifdef FIX_920_IGF_INIT_ERROR
    init_coder_ace_plus( st, st->last_total_brate, igf_brate, 0 /* initialization value */ );
#else
    init_coder_ace_plus( st, st->last_total_brate, 0 /* initialization value */ );
#endif

    /*-----------------------------------------------------------------*
     * FD-CNG encoder