Loading apps/decoder.c +9 −1 Original line number Diff line number Diff line Loading @@ -412,12 +412,20 @@ int main( /*------------------------------------------------------------------------------------------* * Configure the decoder *------------------------------------------------------------------------------------------*/ #ifdef FIX_356_ISM_METADATA_SYNC #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK ) #endif #else #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK ) #endif #endif { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; Loading lib_com/cnst.h +8 −0 Original line number Diff line number Diff line Loading @@ -2240,5 +2240,13 @@ enum VOIP_RTPDUMP }; #ifdef FIX_489_COV_SMOOTHING typedef enum _COV_SMOOTHING_TYPE { COV_SMOOTH_SPAR, COV_SMOOTH_MC } COV_SMOOTHING_TYPE; #endif /* clang-format on */ #endif /* CNST_H */ lib_com/delay_comp.c +0 −14 Original line number Diff line number Diff line Loading @@ -69,17 +69,10 @@ int32_t get_delay( { delay = IVAS_ENC_DELAY_NS; #ifdef FIX_356_ISM_METADATA_SYNC if ( ivas_format == ISM_FORMAT || ivas_format == MASA_FORMAT ) { delay = 0; /* All delay is compensated in the decoder with MASA/ISM */ } #else if ( ivas_format == MASA_FORMAT ) { delay = 0; /* All delay is compensated in the decoder with MASA */ } #endif } if ( ivas_format == SBA_FORMAT ) Loading Loading @@ -111,17 +104,10 @@ int32_t get_delay( delay += IVAS_FB_DEC_DELAY_NS; } #ifdef FIX_356_ISM_METADATA_SYNC if ( ivas_format == ISM_FORMAT || ivas_format == MASA_FORMAT ) { delay += IVAS_ENC_DELAY_NS; /* Compensate also the encoder delay in the decoder with ISM/MASA */ } #else if ( ivas_format == MASA_FORMAT ) { delay += IVAS_ENC_DELAY_NS; /* Compensate also the encoder delay in the decoder with MASA */ } #endif } } Loading lib_com/ivas_cov_smooth.c +41 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,9 @@ #ifdef DEBUGGING #include "debug.h" #endif #ifdef FIX_489_COV_SMOOTHING #include "cnst.h" #endif #include "ivas_prot.h" #include "wmc_auto.h" #include "prot.h" Loading @@ -50,7 +53,12 @@ static void ivas_set_up_cov_smoothing( ivas_cov_smooth_state_t *hCovState, ivas_filterbank_t *pFb, const float max_update_rate, const int16_t min_pool_size, const int16_t min_pool_size #ifdef FIX_489_COV_SMOOTHING , const COV_SMOOTHING_TYPE smooth_mode /* i : flag multichannel vs SPAR */ #endif , const int32_t ivas_total_brate ) { int16_t j, k; Loading Loading @@ -88,7 +96,30 @@ static void ivas_set_up_cov_smoothing( } } } #ifdef FIX_489_COV_SMOOTHING else if ( smooth_mode == COV_SMOOTH_MC ) { for ( j = 0; j < pFb->filterbank_num_bands; j++ ) { float update_factor; update_factor = 0.0f; for ( k = 0; k < pFb->fb_bin_to_band.pFb_active_bins_per_band[j]; k++ ) { update_factor += pFb->fb_bin_to_band.pFb_bin_to_band[j][k]; } hCovState->pSmoothing_factor[j] = update_factor / min_pool_size; if ( hCovState->pSmoothing_factor[j] > max_update_rate ) { hCovState->pSmoothing_factor[j] = max_update_rate; } } } #endif else { for ( j = 0; j < pFb->filterbank_num_bands; j++ ) { float update_factor; Loading @@ -108,6 +139,8 @@ static void ivas_set_up_cov_smoothing( hCovState->pSmoothing_factor[j] = max_update_rate; } } } hCovState->prior_bank_idx = -1; return; Loading @@ -126,6 +159,9 @@ ivas_error ivas_spar_covar_smooth_enc_open( ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t nchan_inp /* i : number of input channels */ , #ifdef FIX_489_COV_SMOOTHING COV_SMOOTHING_TYPE smooth_mode, /* i : Smooth covariance for SPAR or MC */ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate */ ) { Loading Loading @@ -155,7 +191,11 @@ ivas_error ivas_spar_covar_smooth_enc_open( } #ifdef FIX_489_COV_SMOOTHING ivas_set_up_cov_smoothing( hCovState, pFb, cov_smooth_cfg->max_update_rate, cov_smooth_cfg->min_pool_size, smooth_mode, ivas_total_brate ); #else ivas_set_up_cov_smoothing( hCovState, pFb, cov_smooth_cfg->max_update_rate, cov_smooth_cfg->min_pool_size, ivas_total_brate ); #endif *hCovState_out = hCovState; Loading lib_com/ivas_prot.h +6 −0 Original line number Diff line number Diff line Loading @@ -4733,6 +4733,9 @@ ivas_error ivas_spar_covar_enc_open( const int32_t input_Fs, /* i : input sampling rate */ const int16_t nchan_inp /* i : number of input channels */ , #ifdef FIX_489_COV_SMOOTHING COV_SMOOTHING_TYPE smooth_mode, /* i : Smooth covariance for SPAR or MC*/ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); Loading Loading @@ -4763,6 +4766,9 @@ ivas_error ivas_spar_covar_smooth_enc_open( ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t nchan_inp /* i : number of input channels */ , #ifdef FIX_489_COV_SMOOTHING COV_SMOOTHING_TYPE smooth_mode, /* i : Smooth covariance for SPAR or MC*/ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); Loading Loading
apps/decoder.c +9 −1 Original line number Diff line number Diff line Loading @@ -412,12 +412,20 @@ int main( /*------------------------------------------------------------------------------------------* * Configure the decoder *------------------------------------------------------------------------------------------*/ #ifdef FIX_356_ISM_METADATA_SYNC #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK ) #endif #else #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK ) #endif #endif { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; Loading
lib_com/cnst.h +8 −0 Original line number Diff line number Diff line Loading @@ -2240,5 +2240,13 @@ enum VOIP_RTPDUMP }; #ifdef FIX_489_COV_SMOOTHING typedef enum _COV_SMOOTHING_TYPE { COV_SMOOTH_SPAR, COV_SMOOTH_MC } COV_SMOOTHING_TYPE; #endif /* clang-format on */ #endif /* CNST_H */
lib_com/delay_comp.c +0 −14 Original line number Diff line number Diff line Loading @@ -69,17 +69,10 @@ int32_t get_delay( { delay = IVAS_ENC_DELAY_NS; #ifdef FIX_356_ISM_METADATA_SYNC if ( ivas_format == ISM_FORMAT || ivas_format == MASA_FORMAT ) { delay = 0; /* All delay is compensated in the decoder with MASA/ISM */ } #else if ( ivas_format == MASA_FORMAT ) { delay = 0; /* All delay is compensated in the decoder with MASA */ } #endif } if ( ivas_format == SBA_FORMAT ) Loading Loading @@ -111,17 +104,10 @@ int32_t get_delay( delay += IVAS_FB_DEC_DELAY_NS; } #ifdef FIX_356_ISM_METADATA_SYNC if ( ivas_format == ISM_FORMAT || ivas_format == MASA_FORMAT ) { delay += IVAS_ENC_DELAY_NS; /* Compensate also the encoder delay in the decoder with ISM/MASA */ } #else if ( ivas_format == MASA_FORMAT ) { delay += IVAS_ENC_DELAY_NS; /* Compensate also the encoder delay in the decoder with MASA */ } #endif } } Loading
lib_com/ivas_cov_smooth.c +41 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,9 @@ #ifdef DEBUGGING #include "debug.h" #endif #ifdef FIX_489_COV_SMOOTHING #include "cnst.h" #endif #include "ivas_prot.h" #include "wmc_auto.h" #include "prot.h" Loading @@ -50,7 +53,12 @@ static void ivas_set_up_cov_smoothing( ivas_cov_smooth_state_t *hCovState, ivas_filterbank_t *pFb, const float max_update_rate, const int16_t min_pool_size, const int16_t min_pool_size #ifdef FIX_489_COV_SMOOTHING , const COV_SMOOTHING_TYPE smooth_mode /* i : flag multichannel vs SPAR */ #endif , const int32_t ivas_total_brate ) { int16_t j, k; Loading Loading @@ -88,7 +96,30 @@ static void ivas_set_up_cov_smoothing( } } } #ifdef FIX_489_COV_SMOOTHING else if ( smooth_mode == COV_SMOOTH_MC ) { for ( j = 0; j < pFb->filterbank_num_bands; j++ ) { float update_factor; update_factor = 0.0f; for ( k = 0; k < pFb->fb_bin_to_band.pFb_active_bins_per_band[j]; k++ ) { update_factor += pFb->fb_bin_to_band.pFb_bin_to_band[j][k]; } hCovState->pSmoothing_factor[j] = update_factor / min_pool_size; if ( hCovState->pSmoothing_factor[j] > max_update_rate ) { hCovState->pSmoothing_factor[j] = max_update_rate; } } } #endif else { for ( j = 0; j < pFb->filterbank_num_bands; j++ ) { float update_factor; Loading @@ -108,6 +139,8 @@ static void ivas_set_up_cov_smoothing( hCovState->pSmoothing_factor[j] = max_update_rate; } } } hCovState->prior_bank_idx = -1; return; Loading @@ -126,6 +159,9 @@ ivas_error ivas_spar_covar_smooth_enc_open( ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t nchan_inp /* i : number of input channels */ , #ifdef FIX_489_COV_SMOOTHING COV_SMOOTHING_TYPE smooth_mode, /* i : Smooth covariance for SPAR or MC */ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate */ ) { Loading Loading @@ -155,7 +191,11 @@ ivas_error ivas_spar_covar_smooth_enc_open( } #ifdef FIX_489_COV_SMOOTHING ivas_set_up_cov_smoothing( hCovState, pFb, cov_smooth_cfg->max_update_rate, cov_smooth_cfg->min_pool_size, smooth_mode, ivas_total_brate ); #else ivas_set_up_cov_smoothing( hCovState, pFb, cov_smooth_cfg->max_update_rate, cov_smooth_cfg->min_pool_size, ivas_total_brate ); #endif *hCovState_out = hCovState; Loading
lib_com/ivas_prot.h +6 −0 Original line number Diff line number Diff line Loading @@ -4733,6 +4733,9 @@ ivas_error ivas_spar_covar_enc_open( const int32_t input_Fs, /* i : input sampling rate */ const int16_t nchan_inp /* i : number of input channels */ , #ifdef FIX_489_COV_SMOOTHING COV_SMOOTHING_TYPE smooth_mode, /* i : Smooth covariance for SPAR or MC*/ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); Loading Loading @@ -4763,6 +4766,9 @@ ivas_error ivas_spar_covar_smooth_enc_open( ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t nchan_inp /* i : number of input channels */ , #ifdef FIX_489_COV_SMOOTHING COV_SMOOTHING_TYPE smooth_mode, /* i : Smooth covariance for SPAR or MC*/ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); Loading