diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index a3bfeabdb29871d17ae4d6f38ff9a326a6271755..b7265987d59e2d97f43cba9cdc5ab308bce07869 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -372,7 +372,11 @@ ivas_error ivas_dirac_sba_config( else if ( sba_total_brate <= IVAS_24k4 ) { hQMetaData->bits_frame_nominal = ACELP_16k40 / FRAMES_PER_SEC; +#ifdef FIX_185_REDUCE_MD_BITS + hQMetaData->metadata_max_bits = 103; +#else hQMetaData->metadata_max_bits = 106; +#endif } else if ( sba_total_brate <= IVAS_32k ) { diff --git a/lib_com/options.h b/lib_com/options.h index d717b4ebb2bfc209b35f51f5f654056f5af916a4..edc0d9ae06b7b3113500f3538c4af8938d5ca285 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,7 @@ #define FIX_158_DIRAC_MEM /* Issue 158: Reduce memory consumption in the hDirac_mem handle */ #define BRATE_SWITCHING_FRAMEWORK /* Bitrate switching changes related to the general framework */ #define BRATE_SWITCHING_RENDERING /* Bitrate switching changes related to the renderers */ - +#define FIX_185_REDUCE_MD_BITS /* Issue 185: Crash in SBA encoder for 24.4 kbps HOA3 input with longer testvector */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_agc_dec.c b/lib_dec/ivas_agc_dec.c index 0b25c8216c3b78fe99f47436e69fa944855ec9b1..99585a882985e2240900b7050ef61173b0940c5d 100644 --- a/lib_dec/ivas_agc_dec.c +++ b/lib_dec/ivas_agc_dec.c @@ -308,7 +308,11 @@ void ivas_agc_read_bits( if ( per_ch_bit[i] == 1 ) { pState->gain_data[i].absGainExpCurr = get_next_indice( st0, (int16_t) pState->agc_com.betaE ); +#ifdef FIX_185_REDUCE_MD_BITS + pState->gain_data[i].gainException = false; +#else pState->gain_data[i].gainException = get_next_indice( st0, 1 ); +#endif } else { diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index f39f2b81485a638cf53fba3df79041cf41fe741a..0da76da143d73fa269b749af51ecab1e76de0dc3 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -512,7 +512,9 @@ void ivas_agc_enc_process( if ( per_ch_bit[i] == 1 ) { push_next_indice( hMetaData, (uint16_t) pState->gain_data[i].absGainExpCurr, (int16_t) pState->agc_com.betaE ); +#ifndef FIX_185_REDUCE_MD_BITS push_next_indice( hMetaData, (uint16_t) pState->gain_data[i].gainException, 1 ); +#endif assert( pState->gain_data[i].gainException == FALSE ); } }