Commit f603bf84 authored by reutelhuber's avatar reutelhuber
Browse files

Merge branch '920-bitrate-mismatch-in-initial-igf-configuration-for-some-modes' into 'main'

Resolve "Bitrate mismatch in initial IGF configuration for some modes"

See merge request !1252
parents f97d5226 d30f0b56
Loading
Loading
Loading
Loading
Loading

lib_com/options.h

100644 → 100755
+1 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@
#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_917_LCLD_WARNINGS                           /* Dlb: issue 917 and 918: fix LCLD codec warnings*/
#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 ################################## */

+4 −1
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)*/
);

lib_enc/core_enc_init.c

100755 → 100644
+8 −1
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