diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a2f6e5e305bbdf9eec1dd032c95721d6a4f0b660..afe2d443e10b0eec0b7a3ee0108ce225560812d6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1243,7 +1243,7 @@ build-codec-linux-instrumented-make: when: never extends: - .build-job-linux - timeout: "7 minutes" + timeout: "10 minutes" tags: - ivas-basop-linux script: diff --git a/lib_com/options.h b/lib_com/options.h index c301e5bea4ed83cacb27d242729f9a5e5de7c811..3ad74ec3507c2eab581508e8f6e14191568840a4 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -94,8 +94,9 @@ #define FIX_1372_ISAR_POST_REND #endif #define NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM /* FhG: issue 1058: do not initialize EFAP when IntSetup is HOA3 */ -#define NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA /* Nokia: issue 944: fix FEC error in OMASA */ +#define NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA /* Nokia: issue 944: fix FEC error in OMASA */ #define NONBE_FIX_949_MC_5MS_FRAMING /*Dlb: Issue 949: fix for 5ms framing/rendering in MC mode */ +#define NONBE_FIX_952_MC_PARAMUPMIX_5MS /* Dlb : issue 952 : Differences between 5ms and 20ms rendering for ParamUpmix*/ /* #################### End BASOP porting switches ############################ */ diff --git a/lib_dec/ivas_mc_paramupmix_dec_fx.c b/lib_dec/ivas_mc_paramupmix_dec_fx.c index a8995d8e96d4f354de91cd78f531f41aa823357f..0cb6a579619c91a00e98f97c6f536e7876499498 100644 --- a/lib_dec/ivas_mc_paramupmix_dec_fx.c +++ b/lib_dec/ivas_mc_paramupmix_dec_fx.c @@ -118,6 +118,15 @@ void ivas_mc_paramupmix_dec_read_BS( move32(); } } + +#ifdef NONBE_FIX_952_MC_PARAMUPMIX_5MS + FOR( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ ) + { + Copy32( hMCParamUpmix->alpha_prev_fx[i], hMCParamUpmix->alpha_sf_fx[i], IVAS_MAX_NUM_BANDS ); + Copy32( hMCParamUpmix->beta_prev_fx[i], hMCParamUpmix->beta_sf_fx[i], IVAS_MAX_NUM_BANDS ); + } +#endif + hMCParamUpmix->first_frame = 1; move16(); } @@ -145,6 +154,18 @@ void ivas_mc_paramupmix_dec_read_BS( st0->total_brate = st_ivas->hDecoderConfig->ivas_total_brate; /* to avoid BER detect */ move32(); + +#ifdef NONBE_FIX_952_MC_PARAMUPMIX_5MS + IF( EQ_16( hMCParamUpmix->first_frame, 0 ) ) + { + FOR( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ ) + { + Copy32( hMCParamUpmix->alphas_fx[i], hMCParamUpmix->alpha_prev_fx[i], IVAS_MAX_NUM_BANDS ); + Copy32( hMCParamUpmix->betas_fx[i], hMCParamUpmix->beta_prev_fx[i], IVAS_MAX_NUM_BANDS ); + } + } +#endif + FOR( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ ) { get_ec_data( st0, ALPHA, hMCParamUpmix->alpha_quant[i], alpha_quant, hMCParamUpmix->alphas_fx[i] ); @@ -167,6 +188,14 @@ void ivas_mc_paramupmix_dec_read_BS( hMCParamUpmix->first_frame = 0; move16(); } + +#ifdef NONBE_FIX_952_MC_PARAMUPMIX_5MS + FOR( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ ) + { + Copy32( hMCParamUpmix->alpha_prev_fx[i], hMCParamUpmix->alpha_sf_fx[i], IVAS_MAX_NUM_BANDS ); + Copy32( hMCParamUpmix->beta_prev_fx[i], hMCParamUpmix->beta_sf_fx[i], IVAS_MAX_NUM_BANDS ); + } +#endif } pop_wmops(); @@ -257,11 +286,13 @@ void ivas_mc_paramupmix_dec_render( } { +#ifndef NONBE_FIX_952_MC_PARAMUPMIX_5MS FOR( ch = 0; ch < MC_PARAMUPMIX_COMBINATIONS; ch++ ) { Copy32( hMCParamUpmix->alpha_prev_fx[ch], hMCParamUpmix->alpha_sf_fx[ch], IVAS_MAX_NUM_BANDS ); Copy32( hMCParamUpmix->beta_prev_fx[ch], hMCParamUpmix->beta_sf_fx[ch], IVAS_MAX_NUM_BANDS ); } +#endif FOR( subframe_idx = first_sf; subframe_idx < last_sf; subframe_idx++ ) { @@ -278,11 +309,14 @@ void ivas_mc_paramupmix_dec_render( /* update combined orientation access index */ ivas_combined_orientation_update_index( st_ivas->hCombinedOrientationData, n_samples_sf ); } + +#ifndef NONBE_FIX_952_MC_PARAMUPMIX_5MS FOR( ch = 0; ch < MC_PARAMUPMIX_COMBINATIONS; ch++ ) { Copy32( hMCParamUpmix->alphas_fx[ch], hMCParamUpmix->alpha_prev_fx[ch], IVAS_MAX_NUM_BANDS ); Copy32( hMCParamUpmix->betas_fx[ch], hMCParamUpmix->beta_prev_fx[ch], IVAS_MAX_NUM_BANDS ); } +#endif } *nSamplesAvailable = imult1616( sub( st_ivas->hTcBuffer->num_slots, st_ivas->hTcBuffer->slots_rendered ), (Word16) slot_size );