Loading .gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ scripts/testv/stvOMASA_*.met scripts/testv/stvOMASA_*.csv scripts/testv/stvOMASA_2ISM_1MASA1TC48c.wav scripts/testv/stvOMASA_3ISM_1MASA1TC48c.wav scripts/testv/stvO* # default reference binary name IVAS_cod_ref* IVAS_dec_ref* Loading Workspace_msvc/lib_isar.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ <ClInclude Include="..\lib_isar\isar_lc3plus_enc.h" /> <ClInclude Include="..\lib_isar\isar_rom_post_rend.h" /> <ClInclude Include="..\lib_isar\lib_isar_post_rend.h" /> <ClInclude Include="..\lib_isar\lib_isar_pre_rend.h" /> </ItemGroup> <ItemGroup> <ProjectReference Include="lib_com.vcxproj"> Loading lib_dec/ivas_init_dec.c +6 −8 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #include "prot.h" #ifdef SPLIT_REND_WITH_HEAD_ROT #include "common_api_types.h" #include "lib_isar_pre_rend.h" #endif #include <assert.h> #include <math.h> Loading Loading @@ -205,6 +206,7 @@ static ivas_error ivas_dec_init_split_rend( { ivas_error error; int16_t cldfb_in_flag, pcm_out_flag; int16_t mixed_td_cldfb_flag; pcm_out_flag = ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0; cldfb_in_flag = 0; Loading @@ -227,18 +229,14 @@ static ivas_error ivas_dec_init_split_rend( } } if ( ( error = isar_split_rend_choose_default_codec( &st_ivas->hRenderConfig->split_rend_config.codec, &st_ivas->hRenderConfig->split_rend_config.codec_frame_size_ms, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize ) ) != IVAS_ERR_OK ) { return error; } mixed_td_cldfb_flag = 0; if ( ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->ivas_format == SBA_ISM_FORMAT ) || ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC && st_ivas->ivas_format == MASA_ISM_FORMAT && st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) { cldfb_in_flag = 0; mixed_td_cldfb_flag = 1; } error = isar_split_renderer_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize ); error = isar_pre_rend_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize, mixed_td_cldfb_flag ); return error; } #endif Loading Loading @@ -2662,7 +2660,7 @@ void ivas_destroy_dec( #ifdef SPLIT_REND_WITH_HEAD_ROT /* Split binaural renderer handle */ isar_split_renderer_close( &st_ivas->hSplitBinRend.splitrend ); isar_pre_rend_close( &st_ivas->hSplitBinRend.splitrend, NULL ); for ( i = 0; i < MAX_HEAD_ROT_POSES - 1; ++i ) { Loading lib_dec/lib_dec.c +2 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ #include "ivas_prot.h" #include "ivas_prot_rend.h" #include "isar_prot.h" #include "lib_isar_pre_rend.h" #include "prot.h" #include "jbm_jb4sb.h" #include "jbm_pcmdsp_apa.h" Loading Loading @@ -1188,7 +1189,7 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( Quaternion.y = 0.0f; Quaternion.z = 0.0f; } if ( ( error = isar_renderMultiBinToSplitBinaural( &hSplitBinRend->splitrend, if ( ( error = isar_pre_rend_MultiBinToSplitBinaural( &hSplitBinRend->splitrend, Quaternion, st_ivas->hRenderConfig->split_rend_config.splitRendBitRate, st_ivas->hRenderConfig->split_rend_config.codec, Loading lib_isar/isar_prot.h +6 −59 Original line number Diff line number Diff line Loading @@ -175,11 +175,6 @@ void isar_SplitRenderer_getdiagdiff( const int16_t min_val, const int16_t max_val ); void isar_renderSplitGetMultiBinPoseData( const ISAR_SPLIT_REND_CONFIG_DATA *pSplit_rend_config, MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData, const ISAR_SPLIT_REND_ROT_AXIS rot_axis ); void isar_split_rend_get_quant_params( const int16_t num_md_bands, int16_t pred_real_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS], Loading Loading @@ -232,6 +227,12 @@ void isar_rend_CldfbSplitPostRendProcess( void isar_init_multi_bin_pose_data( MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData ); void isar_renderSplitGetMultiBinPoseData( const ISAR_SPLIT_REND_CONFIG_DATA *pSplit_rend_config, MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData, const ISAR_SPLIT_REND_ROT_AXIS rot_axis ); void isar_rend_CldfbSplitPreRendProcess( const ISAR_BIN_HR_SPLIT_PRE_REND_HANDLE hBinHrSplitPreRend, const IVAS_QUATERNION headPosition, Loading @@ -246,19 +247,6 @@ void isar_rend_CldfbSplitPreRendProcess( void isar_init_split_post_rend_handles( ISAR_SPLIT_POST_REND_WRAPPER *hSplitRendWrapper ); ivas_error isar_splitBinPreRendOpen( ISAR_BIN_HR_SPLIT_PRE_REND_HANDLE *hBinHrSplitPreRend, #ifdef SPLIT_REND_WITH_HEAD_ROT_DEBUG MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData, const int32_t output_Fs #else MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData #endif ); void ivas_splitBinPreRendClose( ISAR_BIN_HR_SPLIT_PRE_REND_HANDLE *hBinHrSplitPreRend ); void isar_set_split_rend_ht_setup( ISAR_DEC_SPLIT_REND_WRAPPER *hSplitBinRend, COMBINED_ORIENTATION_HANDLE hCombinedOrientationData ); Loading Loading @@ -286,17 +274,6 @@ int32_t isar_get_lcld_bitrate( int8_t isar_get_lc3plus_bitrate_id( const int32_t SplitRendBitRate ); ivas_error isar_split_renderer_open( SPLIT_REND_WRAPPER *hSplitBinRend, const ISAR_SPLIT_REND_CONFIG_DATA *pSplitRendConfig, const int32_t output_Fs, const int16_t cldfb_in_flag, const int16_t pcm_out_flag, const int16_t num_subframes ); void isar_split_renderer_close( SPLIT_REND_WRAPPER *hSplitBinRend ); int32_t isar_get_split_rend_md_target_brate( const int32_t SplitRendBitRate, const int16_t pcm_out_flag ); Loading @@ -309,22 +286,6 @@ ivas_error isar_split_rend_choose_default_codec( const int16_t num_subframes /* i : number of subframes */ ); ivas_error isar_renderMultiBinToSplitBinaural( SPLIT_REND_WRAPPER *hSplitBin, const IVAS_QUATERNION headPosition, const int32_t SplitRendBitRate, ISAR_SPLIT_REND_CODEC splitCodec, int16_t codec_frame_size_ms, ISAR_SPLIT_REND_BITS_HANDLE pBits, float Cldfb_In_BinReal[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], float Cldfb_In_BinImag[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], const int16_t max_bands, float *output[], const int16_t low_res_pre_rend_rot, const int16_t cldfb_in_flag, const int16_t pcm_out_flag, const int16_t ro_md_flag ); void ISAR_SPLIT_REND_BITStream_init( ISAR_SPLIT_REND_BITS_HANDLE pBits, const int32_t buf_len_bytes, Loading Loading @@ -357,20 +318,6 @@ ISAR_POST_REND_AudioConfigType isar_getAudioConfigType( void isar_init_split_rend_handles( SPLIT_REND_WRAPPER *hSplitRendWrapper ); void closeSplitRend( SPLIT_REND_WRAPPER *pSplitRendWrapper, IVAS_REND_AudioBuffer *pSplitRendEncBuffer ); ivas_error initSplitRend( SPLIT_REND_WRAPPER *pSplitRendWrapper, IVAS_REND_AudioBuffer *pSplitRendEncBuffer, const ISAR_SPLIT_REND_CONFIG_DATA *pSplit_rend_config, IVAS_REND_HeadRotData headRotData, const int32_t outputSampleRate, const IVAS_AUDIO_CONFIG outConfig, const int16_t cldfb_in_flag, const int16_t num_subframes ); #endif /* clang-format on */ Loading Loading
.gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ scripts/testv/stvOMASA_*.met scripts/testv/stvOMASA_*.csv scripts/testv/stvOMASA_2ISM_1MASA1TC48c.wav scripts/testv/stvOMASA_3ISM_1MASA1TC48c.wav scripts/testv/stvO* # default reference binary name IVAS_cod_ref* IVAS_dec_ref* Loading
Workspace_msvc/lib_isar.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ <ClInclude Include="..\lib_isar\isar_lc3plus_enc.h" /> <ClInclude Include="..\lib_isar\isar_rom_post_rend.h" /> <ClInclude Include="..\lib_isar\lib_isar_post_rend.h" /> <ClInclude Include="..\lib_isar\lib_isar_pre_rend.h" /> </ItemGroup> <ItemGroup> <ProjectReference Include="lib_com.vcxproj"> Loading
lib_dec/ivas_init_dec.c +6 −8 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #include "prot.h" #ifdef SPLIT_REND_WITH_HEAD_ROT #include "common_api_types.h" #include "lib_isar_pre_rend.h" #endif #include <assert.h> #include <math.h> Loading Loading @@ -205,6 +206,7 @@ static ivas_error ivas_dec_init_split_rend( { ivas_error error; int16_t cldfb_in_flag, pcm_out_flag; int16_t mixed_td_cldfb_flag; pcm_out_flag = ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0; cldfb_in_flag = 0; Loading @@ -227,18 +229,14 @@ static ivas_error ivas_dec_init_split_rend( } } if ( ( error = isar_split_rend_choose_default_codec( &st_ivas->hRenderConfig->split_rend_config.codec, &st_ivas->hRenderConfig->split_rend_config.codec_frame_size_ms, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize ) ) != IVAS_ERR_OK ) { return error; } mixed_td_cldfb_flag = 0; if ( ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->ivas_format == SBA_ISM_FORMAT ) || ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC && st_ivas->ivas_format == MASA_ISM_FORMAT && st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) { cldfb_in_flag = 0; mixed_td_cldfb_flag = 1; } error = isar_split_renderer_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize ); error = isar_pre_rend_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize, mixed_td_cldfb_flag ); return error; } #endif Loading Loading @@ -2662,7 +2660,7 @@ void ivas_destroy_dec( #ifdef SPLIT_REND_WITH_HEAD_ROT /* Split binaural renderer handle */ isar_split_renderer_close( &st_ivas->hSplitBinRend.splitrend ); isar_pre_rend_close( &st_ivas->hSplitBinRend.splitrend, NULL ); for ( i = 0; i < MAX_HEAD_ROT_POSES - 1; ++i ) { Loading
lib_dec/lib_dec.c +2 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ #include "ivas_prot.h" #include "ivas_prot_rend.h" #include "isar_prot.h" #include "lib_isar_pre_rend.h" #include "prot.h" #include "jbm_jb4sb.h" #include "jbm_pcmdsp_apa.h" Loading Loading @@ -1188,7 +1189,7 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( Quaternion.y = 0.0f; Quaternion.z = 0.0f; } if ( ( error = isar_renderMultiBinToSplitBinaural( &hSplitBinRend->splitrend, if ( ( error = isar_pre_rend_MultiBinToSplitBinaural( &hSplitBinRend->splitrend, Quaternion, st_ivas->hRenderConfig->split_rend_config.splitRendBitRate, st_ivas->hRenderConfig->split_rend_config.codec, Loading
lib_isar/isar_prot.h +6 −59 Original line number Diff line number Diff line Loading @@ -175,11 +175,6 @@ void isar_SplitRenderer_getdiagdiff( const int16_t min_val, const int16_t max_val ); void isar_renderSplitGetMultiBinPoseData( const ISAR_SPLIT_REND_CONFIG_DATA *pSplit_rend_config, MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData, const ISAR_SPLIT_REND_ROT_AXIS rot_axis ); void isar_split_rend_get_quant_params( const int16_t num_md_bands, int16_t pred_real_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS], Loading Loading @@ -232,6 +227,12 @@ void isar_rend_CldfbSplitPostRendProcess( void isar_init_multi_bin_pose_data( MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData ); void isar_renderSplitGetMultiBinPoseData( const ISAR_SPLIT_REND_CONFIG_DATA *pSplit_rend_config, MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData, const ISAR_SPLIT_REND_ROT_AXIS rot_axis ); void isar_rend_CldfbSplitPreRendProcess( const ISAR_BIN_HR_SPLIT_PRE_REND_HANDLE hBinHrSplitPreRend, const IVAS_QUATERNION headPosition, Loading @@ -246,19 +247,6 @@ void isar_rend_CldfbSplitPreRendProcess( void isar_init_split_post_rend_handles( ISAR_SPLIT_POST_REND_WRAPPER *hSplitRendWrapper ); ivas_error isar_splitBinPreRendOpen( ISAR_BIN_HR_SPLIT_PRE_REND_HANDLE *hBinHrSplitPreRend, #ifdef SPLIT_REND_WITH_HEAD_ROT_DEBUG MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData, const int32_t output_Fs #else MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData #endif ); void ivas_splitBinPreRendClose( ISAR_BIN_HR_SPLIT_PRE_REND_HANDLE *hBinHrSplitPreRend ); void isar_set_split_rend_ht_setup( ISAR_DEC_SPLIT_REND_WRAPPER *hSplitBinRend, COMBINED_ORIENTATION_HANDLE hCombinedOrientationData ); Loading Loading @@ -286,17 +274,6 @@ int32_t isar_get_lcld_bitrate( int8_t isar_get_lc3plus_bitrate_id( const int32_t SplitRendBitRate ); ivas_error isar_split_renderer_open( SPLIT_REND_WRAPPER *hSplitBinRend, const ISAR_SPLIT_REND_CONFIG_DATA *pSplitRendConfig, const int32_t output_Fs, const int16_t cldfb_in_flag, const int16_t pcm_out_flag, const int16_t num_subframes ); void isar_split_renderer_close( SPLIT_REND_WRAPPER *hSplitBinRend ); int32_t isar_get_split_rend_md_target_brate( const int32_t SplitRendBitRate, const int16_t pcm_out_flag ); Loading @@ -309,22 +286,6 @@ ivas_error isar_split_rend_choose_default_codec( const int16_t num_subframes /* i : number of subframes */ ); ivas_error isar_renderMultiBinToSplitBinaural( SPLIT_REND_WRAPPER *hSplitBin, const IVAS_QUATERNION headPosition, const int32_t SplitRendBitRate, ISAR_SPLIT_REND_CODEC splitCodec, int16_t codec_frame_size_ms, ISAR_SPLIT_REND_BITS_HANDLE pBits, float Cldfb_In_BinReal[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], float Cldfb_In_BinImag[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], const int16_t max_bands, float *output[], const int16_t low_res_pre_rend_rot, const int16_t cldfb_in_flag, const int16_t pcm_out_flag, const int16_t ro_md_flag ); void ISAR_SPLIT_REND_BITStream_init( ISAR_SPLIT_REND_BITS_HANDLE pBits, const int32_t buf_len_bytes, Loading Loading @@ -357,20 +318,6 @@ ISAR_POST_REND_AudioConfigType isar_getAudioConfigType( void isar_init_split_rend_handles( SPLIT_REND_WRAPPER *hSplitRendWrapper ); void closeSplitRend( SPLIT_REND_WRAPPER *pSplitRendWrapper, IVAS_REND_AudioBuffer *pSplitRendEncBuffer ); ivas_error initSplitRend( SPLIT_REND_WRAPPER *pSplitRendWrapper, IVAS_REND_AudioBuffer *pSplitRendEncBuffer, const ISAR_SPLIT_REND_CONFIG_DATA *pSplit_rend_config, IVAS_REND_HeadRotData headRotData, const int32_t outputSampleRate, const IVAS_AUDIO_CONFIG outConfig, const int16_t cldfb_in_flag, const int16_t num_subframes ); #endif /* clang-format on */ Loading