Loading lib_com/ivas_prot.h +11 −0 Original line number Diff line number Diff line Loading @@ -1034,10 +1034,17 @@ void ivas_param_ism_enc( const int16_t input_frame /* i : input frame length per channel */ ); #ifndef PARAM_ISM_REFACTOR void ivas_param_ism_enc_close( DIRAC_ENC_HANDLE *hDirAC, /* i/o: encoder DirAC handle */ const int32_t input_Fs /* i : input sampling_rate */ ); #else void ivas_param_ism_enc_close( PARAM_ISM_CONFIG_HANDLE *hParamIsm, /* i/o: ParamISM handle */ const int32_t input_Fs /* i : input sampling_rate */ ); #endif void ivas_ism_metadata_close( ISM_METADATA_HANDLE hIsmMetaData[], /* i/o : object metadata handles */ Loading Loading @@ -1076,7 +1083,11 @@ ivas_error ivas_param_ism_dec_open( ); void ivas_param_ism_dec_close( #ifndef PARAM_ISM_REFACTOR DIRAC_DEC_HANDLE *hDirAC, /* i/o: decoder DirAC handle */ #else PARAM_ISM_DEC_HANDLE *hParamIsmDec, /* i/o: decoder ParamISM handle */ #endif SPAT_PARAM_REND_COMMON_DATA_HANDLE *hSpatParamRendCom_out, /* i/o: common spatial renderer data */ const AUDIO_CONFIG output_config /* i : output audio configuration */ ); Loading lib_com/ivas_stat_com.h +35 −30 Original line number Diff line number Diff line Loading @@ -150,36 +150,6 @@ typedef struct } ECSQ_instance; /*----------------------------------------------------------------------------------* * PARAMETRIC ISM encoder/decoder (common) structure *----------------------------------------------------------------------------------*/ typedef struct ivas_param_ism_data_structure { int16_t nbands; int16_t nblocks[MAX_PARAM_ISM_NBANDS]; int16_t band_grouping[MAX_PARAM_ISM_NBANDS + 1]; int16_t azi_index[MAX_NUM_OBJECTS]; int16_t ele_index[MAX_NUM_OBJECTS]; int16_t obj_indices[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS][MAX_PARAM_ISM_WAVE]; int16_t power_ratios_idx[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS]; int16_t last_az_sgn[MAX_NUM_OBJECTS]; int16_t last_az_diff[MAX_NUM_OBJECTS]; int16_t last_el_sgn[MAX_NUM_OBJECTS]; int16_t last_el_diff[MAX_NUM_OBJECTS]; int16_t flag_noisy_speech; int16_t noisy_speech_buffer[PARAM_ISM_HYS_BUF_SIZE]; int16_t flag_equal_energy; float last_dmx_gain; float last_cardioid_left[MAX_NUM_OBJECTS]; } PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE; /*----------------------------------------------------------------------------------* * Declaration of DirAC common (encoder & decoder) structure Loading Loading @@ -813,4 +783,39 @@ typedef struct ivas_fb_mixer_state_structure } IVAS_FB_MIXER_DATA, *IVAS_FB_MIXER_HANDLE; /*----------------------------------------------------------------------------------* * PARAMETRIC ISM encoder/decoder (common) structure *----------------------------------------------------------------------------------*/ typedef struct ivas_param_ism_data_structure { #ifdef PARAM_ISM_REFACTOR IVAS_FB_MIXER_HANDLE hFbMixer; #endif int16_t nbands; int16_t nblocks[MAX_PARAM_ISM_NBANDS]; int16_t band_grouping[MAX_PARAM_ISM_NBANDS + 1]; int16_t azi_index[MAX_NUM_OBJECTS]; int16_t ele_index[MAX_NUM_OBJECTS]; int16_t obj_indices[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS][MAX_PARAM_ISM_WAVE]; int16_t power_ratios_idx[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS]; int16_t last_az_sgn[MAX_NUM_OBJECTS]; int16_t last_az_diff[MAX_NUM_OBJECTS]; int16_t last_el_sgn[MAX_NUM_OBJECTS]; int16_t last_el_diff[MAX_NUM_OBJECTS]; int16_t flag_noisy_speech; int16_t noisy_speech_buffer[PARAM_ISM_HYS_BUF_SIZE]; int16_t flag_equal_energy; float last_dmx_gain; float last_cardioid_left[MAX_NUM_OBJECTS]; } PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE; #endif /* IVAS_STAT_COM */ lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,8 @@ #define OSBA_SPLIT_RENDERING #endif #define PARAM_ISM_REFACTOR /* FhG: Issue 768: Refactoring to decouple hDirAC and hParamISM */ /* #################### End BE switches ################################## */ /* #################### Start NON-BE switches ############################ */ Loading lib_dec/ivas_dec.c +5 −0 Original line number Diff line number Diff line Loading @@ -188,8 +188,13 @@ ivas_error ivas_dec( } else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { #ifndef PARAM_ISM_REFACTOR if ( ( error = ivas_ism_metadata_dec( ivas_total_brate, st_ivas->nchan_ism, &( st_ivas->nchan_transport ), st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->bfi, nb_bits_metadata, st_ivas->ism_mode, st_ivas->hISMDTX, st_ivas->hDirAC->hParamIsm, &st_ivas->ism_extmeta_active, &st_ivas->ism_extmeta_cnt, st_ivas->hSCE[0]->hCoreCoder[0] ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_ism_metadata_dec( ivas_total_brate, st_ivas->nchan_ism, &( st_ivas->nchan_transport ), st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->bfi, nb_bits_metadata, st_ivas->ism_mode, st_ivas->hISMDTX, st_ivas->hParamIsmDec->hParamIsm, &st_ivas->ism_extmeta_active, &st_ivas->ism_extmeta_cnt, st_ivas->hSCE[0]->hCoreCoder[0] ) ) != IVAS_ERR_OK ) #endif { return error; } Loading lib_dec/ivas_dirac_dec.c +2 −0 Original line number Diff line number Diff line Loading @@ -85,8 +85,10 @@ static ivas_error ivas_dirac_dec_config_internal( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for DirAC Config\n" ) ); } #ifndef PARAM_ISM_REFACTOR hDirAC->hParamIsm = NULL; hDirAC->hParamIsmRendering = NULL; #endif st_ivas->hDirAC = hDirAC; } Loading Loading
lib_com/ivas_prot.h +11 −0 Original line number Diff line number Diff line Loading @@ -1034,10 +1034,17 @@ void ivas_param_ism_enc( const int16_t input_frame /* i : input frame length per channel */ ); #ifndef PARAM_ISM_REFACTOR void ivas_param_ism_enc_close( DIRAC_ENC_HANDLE *hDirAC, /* i/o: encoder DirAC handle */ const int32_t input_Fs /* i : input sampling_rate */ ); #else void ivas_param_ism_enc_close( PARAM_ISM_CONFIG_HANDLE *hParamIsm, /* i/o: ParamISM handle */ const int32_t input_Fs /* i : input sampling_rate */ ); #endif void ivas_ism_metadata_close( ISM_METADATA_HANDLE hIsmMetaData[], /* i/o : object metadata handles */ Loading Loading @@ -1076,7 +1083,11 @@ ivas_error ivas_param_ism_dec_open( ); void ivas_param_ism_dec_close( #ifndef PARAM_ISM_REFACTOR DIRAC_DEC_HANDLE *hDirAC, /* i/o: decoder DirAC handle */ #else PARAM_ISM_DEC_HANDLE *hParamIsmDec, /* i/o: decoder ParamISM handle */ #endif SPAT_PARAM_REND_COMMON_DATA_HANDLE *hSpatParamRendCom_out, /* i/o: common spatial renderer data */ const AUDIO_CONFIG output_config /* i : output audio configuration */ ); Loading
lib_com/ivas_stat_com.h +35 −30 Original line number Diff line number Diff line Loading @@ -150,36 +150,6 @@ typedef struct } ECSQ_instance; /*----------------------------------------------------------------------------------* * PARAMETRIC ISM encoder/decoder (common) structure *----------------------------------------------------------------------------------*/ typedef struct ivas_param_ism_data_structure { int16_t nbands; int16_t nblocks[MAX_PARAM_ISM_NBANDS]; int16_t band_grouping[MAX_PARAM_ISM_NBANDS + 1]; int16_t azi_index[MAX_NUM_OBJECTS]; int16_t ele_index[MAX_NUM_OBJECTS]; int16_t obj_indices[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS][MAX_PARAM_ISM_WAVE]; int16_t power_ratios_idx[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS]; int16_t last_az_sgn[MAX_NUM_OBJECTS]; int16_t last_az_diff[MAX_NUM_OBJECTS]; int16_t last_el_sgn[MAX_NUM_OBJECTS]; int16_t last_el_diff[MAX_NUM_OBJECTS]; int16_t flag_noisy_speech; int16_t noisy_speech_buffer[PARAM_ISM_HYS_BUF_SIZE]; int16_t flag_equal_energy; float last_dmx_gain; float last_cardioid_left[MAX_NUM_OBJECTS]; } PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE; /*----------------------------------------------------------------------------------* * Declaration of DirAC common (encoder & decoder) structure Loading Loading @@ -813,4 +783,39 @@ typedef struct ivas_fb_mixer_state_structure } IVAS_FB_MIXER_DATA, *IVAS_FB_MIXER_HANDLE; /*----------------------------------------------------------------------------------* * PARAMETRIC ISM encoder/decoder (common) structure *----------------------------------------------------------------------------------*/ typedef struct ivas_param_ism_data_structure { #ifdef PARAM_ISM_REFACTOR IVAS_FB_MIXER_HANDLE hFbMixer; #endif int16_t nbands; int16_t nblocks[MAX_PARAM_ISM_NBANDS]; int16_t band_grouping[MAX_PARAM_ISM_NBANDS + 1]; int16_t azi_index[MAX_NUM_OBJECTS]; int16_t ele_index[MAX_NUM_OBJECTS]; int16_t obj_indices[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS][MAX_PARAM_ISM_WAVE]; int16_t power_ratios_idx[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS]; int16_t last_az_sgn[MAX_NUM_OBJECTS]; int16_t last_az_diff[MAX_NUM_OBJECTS]; int16_t last_el_sgn[MAX_NUM_OBJECTS]; int16_t last_el_diff[MAX_NUM_OBJECTS]; int16_t flag_noisy_speech; int16_t noisy_speech_buffer[PARAM_ISM_HYS_BUF_SIZE]; int16_t flag_equal_energy; float last_dmx_gain; float last_cardioid_left[MAX_NUM_OBJECTS]; } PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE; #endif /* IVAS_STAT_COM */
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,8 @@ #define OSBA_SPLIT_RENDERING #endif #define PARAM_ISM_REFACTOR /* FhG: Issue 768: Refactoring to decouple hDirAC and hParamISM */ /* #################### End BE switches ################################## */ /* #################### Start NON-BE switches ############################ */ Loading
lib_dec/ivas_dec.c +5 −0 Original line number Diff line number Diff line Loading @@ -188,8 +188,13 @@ ivas_error ivas_dec( } else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { #ifndef PARAM_ISM_REFACTOR if ( ( error = ivas_ism_metadata_dec( ivas_total_brate, st_ivas->nchan_ism, &( st_ivas->nchan_transport ), st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->bfi, nb_bits_metadata, st_ivas->ism_mode, st_ivas->hISMDTX, st_ivas->hDirAC->hParamIsm, &st_ivas->ism_extmeta_active, &st_ivas->ism_extmeta_cnt, st_ivas->hSCE[0]->hCoreCoder[0] ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_ism_metadata_dec( ivas_total_brate, st_ivas->nchan_ism, &( st_ivas->nchan_transport ), st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->bfi, nb_bits_metadata, st_ivas->ism_mode, st_ivas->hISMDTX, st_ivas->hParamIsmDec->hParamIsm, &st_ivas->ism_extmeta_active, &st_ivas->ism_extmeta_cnt, st_ivas->hSCE[0]->hCoreCoder[0] ) ) != IVAS_ERR_OK ) #endif { return error; } Loading
lib_dec/ivas_dirac_dec.c +2 −0 Original line number Diff line number Diff line Loading @@ -85,8 +85,10 @@ static ivas_error ivas_dirac_dec_config_internal( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for DirAC Config\n" ) ); } #ifndef PARAM_ISM_REFACTOR hDirAC->hParamIsm = NULL; hDirAC->hParamIsmRendering = NULL; #endif st_ivas->hDirAC = hDirAC; } Loading