Loading lib_com/common_api_types.h +10 −0 Original line number Diff line number Diff line Loading @@ -211,6 +211,11 @@ typedef struct _IVAS_JBM_TRACE_DATA #define ISAR_MAX_SPLIT_REND_BITS_BUFFER_SIZE_IN_BYTES ( ( ( (int32_t) ISAR_MAX_SPLIT_REND_BITRATE / IVAS_NUM_FRAMES_PER_SEC ) + 7 ) >> 3 ) #define ISAR_SPLIT_REND_ADDITIONAL_BYTES_TO_READ 1 #define SPLIT_REND_BITS_BUFF_SIZE ( ISAR_MAX_SPLIT_REND_BITS_BUFFER_SIZE_IN_BYTES + ISAR_SPLIT_REND_ADDITIONAL_BYTES_TO_READ ) #ifdef NONBE_SPLIT_DYN_OFFSET #define SPLIT_REND_MAX_YAW_ONLY_POSES 2 #define SPLIT_REND_MAX_PITCH_ONLY_POSES 2 #define SPLIT_REND_MAX_ROLL_ONLY_POSES 2 #endif typedef enum { Loading Loading @@ -275,6 +280,11 @@ typedef struct _ISAR_SPLIT_REND_CONFIG */ int16_t codec_delay_ms; /*PLACEHOLDER (currently being ignored) : look ahead delay of the codec that is used to code BIN signal output of pre-renderer*/ int16_t codec_frame_size_ms; /*Codec frame size in milliseconds, only relevant with LC3plus */ #ifdef NONBE_SPLIT_DYN_OFFSET float pose_offsets_yaw[SPLIT_REND_MAX_YAW_ONLY_POSES]; /* Prerendering pose offsets for yaw, should be set dynamically via backlink */ float pose_offsets_pitch[SPLIT_REND_MAX_PITCH_ONLY_POSES]; /* Prerendering pose offsets for pitch, should be set dynamically via backlink */ float pose_offsets_roll[SPLIT_REND_MAX_ROLL_ONLY_POSES]; /* Prerendering pose offsets for roll, should be set dynamically via backlink */ #endif ISAR_SPLIT_REND_POSE_CORRECTION_MODE poseCorrectionMode; ISAR_SPLIT_REND_CODEC codec; ISAR_SPLIT_REND_RENDERER_SELECTION rendererSelection; Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,7 @@ #define NONBE_FIX_1028_1DB_TCX_LEVEL_DROP /* VA: Harmonize the logic setting LP weighting factor between TCX encoder and TCX decoder */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ #define NONBE_SPLIT_DYN_OFFSET /* FhG: Enable dynamic pose offsets for Split pre-rendering, configurable via renderer config */ /* ##################### End NON-BE switches ########################### */ Loading lib_isar/isar_cnst.h +7 −0 Original line number Diff line number Diff line Loading @@ -65,9 +65,16 @@ typedef enum #define CLDFB_PLC_XF 2 /* Length of cross-fade into first good frame after frame loss in CLDFB cols. */ #ifdef NONBE_SPLIT_DYN_OFFSET #define SPLIT_REND_POSE_OFFSET_DEFAULT -360.f #define SPLIT_REND_POSE_OFFSET_THRES_ABS_YAW 180.f #define SPLIT_REND_POSE_OFFSET_THRES_ABS_PITCH 90.f #define SPLIT_REND_POSE_OFFSET_THRES_ABS_ROLL 180.f #else #define SPLIT_REND_MAX_YAW_ONLY_POSES 2 #define SPLIT_REND_MAX_PITCH_ONLY_POSES 2 #define SPLIT_REND_MAX_ROLL_ONLY_POSES 2 #endif #define SPLIT_REND_MAX_ONE_AXIS_MD_POSES 2 #define MAX_EXTRAPOLATION_ANGLE 15.0f /* this means additional 15 degrees can be extrapolated on top of MD probing poses*/ Loading lib_isar/isar_prot.h +10 −0 Original line number Diff line number Diff line Loading @@ -264,6 +264,16 @@ ivas_error isar_renderMultiTDBinToSplitBinaural( void isar_init_multi_bin_pose_data( MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData ); #ifdef NONBE_SPLIT_DYN_OFFSET void isar_renderSplitGetNumPoses( const ISAR_SPLIT_REND_ROT_AXIS rot_axis, const int16_t dof, const int16_t hq_mode, int16_t *num_yaw_poses, int16_t *num_pitch_poses, int16_t *num_roll_poses ); #endif void isar_renderSplitGetMultiBinPoseData( const ISAR_SPLIT_REND_CONFIG_DATA *pSplit_rend_config, MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData, Loading lib_isar/isar_rom_post_rend.c +7 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,9 @@ #ifdef DEBUGGING #include "debug.h" #endif #ifdef NONBE_SPLIT_DYN_OFFSET #include "common_api_types.h" #endif #include "isar_cnst.h" #include "wmc_auto.h" Loading @@ -50,12 +53,16 @@ const float isar_split_rend_relative_yaw_pos_angles[SPLIT_REND_MAX_YAW_ONLY_POSES] = {-15.0f, 15.0f}; const float isar_split_rend_relative_pitch_pos_angles[SPLIT_REND_MAX_PITCH_ONLY_POSES] = {10.0f, 10.0f}; const float isar_split_rend_relative_roll_pos_angles[SPLIT_REND_MAX_PITCH_ONLY_POSES] = {10.0f, 10.0f}; #ifndef NONBE_SPLIT_DYN_OFFSET const float isar_split_rend_relative_one_axis_pos_angles[SPLIT_REND_MAX_ONE_AXIS_MD_POSES] = {-15.0f, 15.0f}; #endif const float isar_split_rend_relative_yaw_pos_angles_hq[SPLIT_REND_MAX_YAW_ONLY_POSES] = {-15.0f, 15.0f}; const float isar_split_rend_relative_pitch_pos_angles_hq[SPLIT_REND_MAX_PITCH_ONLY_POSES] = {-15.0f, 15.0f}; const float isar_split_rend_relative_roll_pos_angles_hq[SPLIT_REND_MAX_PITCH_ONLY_POSES] = {-15.0f, 15.0f}; #ifndef NONBE_SPLIT_DYN_OFFSET const float isar_split_rend_relative_one_axis_pos_angles_hq[SPLIT_REND_MAX_ONE_AXIS_MD_POSES] = {-15.0f, 15.0f}; #endif const int16_t isar_split_rend_band_grouping[MAX_SPLIT_REND_MD_BANDS + 1] = { Loading Loading
lib_com/common_api_types.h +10 −0 Original line number Diff line number Diff line Loading @@ -211,6 +211,11 @@ typedef struct _IVAS_JBM_TRACE_DATA #define ISAR_MAX_SPLIT_REND_BITS_BUFFER_SIZE_IN_BYTES ( ( ( (int32_t) ISAR_MAX_SPLIT_REND_BITRATE / IVAS_NUM_FRAMES_PER_SEC ) + 7 ) >> 3 ) #define ISAR_SPLIT_REND_ADDITIONAL_BYTES_TO_READ 1 #define SPLIT_REND_BITS_BUFF_SIZE ( ISAR_MAX_SPLIT_REND_BITS_BUFFER_SIZE_IN_BYTES + ISAR_SPLIT_REND_ADDITIONAL_BYTES_TO_READ ) #ifdef NONBE_SPLIT_DYN_OFFSET #define SPLIT_REND_MAX_YAW_ONLY_POSES 2 #define SPLIT_REND_MAX_PITCH_ONLY_POSES 2 #define SPLIT_REND_MAX_ROLL_ONLY_POSES 2 #endif typedef enum { Loading Loading @@ -275,6 +280,11 @@ typedef struct _ISAR_SPLIT_REND_CONFIG */ int16_t codec_delay_ms; /*PLACEHOLDER (currently being ignored) : look ahead delay of the codec that is used to code BIN signal output of pre-renderer*/ int16_t codec_frame_size_ms; /*Codec frame size in milliseconds, only relevant with LC3plus */ #ifdef NONBE_SPLIT_DYN_OFFSET float pose_offsets_yaw[SPLIT_REND_MAX_YAW_ONLY_POSES]; /* Prerendering pose offsets for yaw, should be set dynamically via backlink */ float pose_offsets_pitch[SPLIT_REND_MAX_PITCH_ONLY_POSES]; /* Prerendering pose offsets for pitch, should be set dynamically via backlink */ float pose_offsets_roll[SPLIT_REND_MAX_ROLL_ONLY_POSES]; /* Prerendering pose offsets for roll, should be set dynamically via backlink */ #endif ISAR_SPLIT_REND_POSE_CORRECTION_MODE poseCorrectionMode; ISAR_SPLIT_REND_CODEC codec; ISAR_SPLIT_REND_RENDERER_SELECTION rendererSelection; Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,7 @@ #define NONBE_FIX_1028_1DB_TCX_LEVEL_DROP /* VA: Harmonize the logic setting LP weighting factor between TCX encoder and TCX decoder */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ #define NONBE_SPLIT_DYN_OFFSET /* FhG: Enable dynamic pose offsets for Split pre-rendering, configurable via renderer config */ /* ##################### End NON-BE switches ########################### */ Loading
lib_isar/isar_cnst.h +7 −0 Original line number Diff line number Diff line Loading @@ -65,9 +65,16 @@ typedef enum #define CLDFB_PLC_XF 2 /* Length of cross-fade into first good frame after frame loss in CLDFB cols. */ #ifdef NONBE_SPLIT_DYN_OFFSET #define SPLIT_REND_POSE_OFFSET_DEFAULT -360.f #define SPLIT_REND_POSE_OFFSET_THRES_ABS_YAW 180.f #define SPLIT_REND_POSE_OFFSET_THRES_ABS_PITCH 90.f #define SPLIT_REND_POSE_OFFSET_THRES_ABS_ROLL 180.f #else #define SPLIT_REND_MAX_YAW_ONLY_POSES 2 #define SPLIT_REND_MAX_PITCH_ONLY_POSES 2 #define SPLIT_REND_MAX_ROLL_ONLY_POSES 2 #endif #define SPLIT_REND_MAX_ONE_AXIS_MD_POSES 2 #define MAX_EXTRAPOLATION_ANGLE 15.0f /* this means additional 15 degrees can be extrapolated on top of MD probing poses*/ Loading
lib_isar/isar_prot.h +10 −0 Original line number Diff line number Diff line Loading @@ -264,6 +264,16 @@ ivas_error isar_renderMultiTDBinToSplitBinaural( void isar_init_multi_bin_pose_data( MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData ); #ifdef NONBE_SPLIT_DYN_OFFSET void isar_renderSplitGetNumPoses( const ISAR_SPLIT_REND_ROT_AXIS rot_axis, const int16_t dof, const int16_t hq_mode, int16_t *num_yaw_poses, int16_t *num_pitch_poses, int16_t *num_roll_poses ); #endif void isar_renderSplitGetMultiBinPoseData( const ISAR_SPLIT_REND_CONFIG_DATA *pSplit_rend_config, MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData, Loading
lib_isar/isar_rom_post_rend.c +7 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,9 @@ #ifdef DEBUGGING #include "debug.h" #endif #ifdef NONBE_SPLIT_DYN_OFFSET #include "common_api_types.h" #endif #include "isar_cnst.h" #include "wmc_auto.h" Loading @@ -50,12 +53,16 @@ const float isar_split_rend_relative_yaw_pos_angles[SPLIT_REND_MAX_YAW_ONLY_POSES] = {-15.0f, 15.0f}; const float isar_split_rend_relative_pitch_pos_angles[SPLIT_REND_MAX_PITCH_ONLY_POSES] = {10.0f, 10.0f}; const float isar_split_rend_relative_roll_pos_angles[SPLIT_REND_MAX_PITCH_ONLY_POSES] = {10.0f, 10.0f}; #ifndef NONBE_SPLIT_DYN_OFFSET const float isar_split_rend_relative_one_axis_pos_angles[SPLIT_REND_MAX_ONE_AXIS_MD_POSES] = {-15.0f, 15.0f}; #endif const float isar_split_rend_relative_yaw_pos_angles_hq[SPLIT_REND_MAX_YAW_ONLY_POSES] = {-15.0f, 15.0f}; const float isar_split_rend_relative_pitch_pos_angles_hq[SPLIT_REND_MAX_PITCH_ONLY_POSES] = {-15.0f, 15.0f}; const float isar_split_rend_relative_roll_pos_angles_hq[SPLIT_REND_MAX_PITCH_ONLY_POSES] = {-15.0f, 15.0f}; #ifndef NONBE_SPLIT_DYN_OFFSET const float isar_split_rend_relative_one_axis_pos_angles_hq[SPLIT_REND_MAX_ONE_AXIS_MD_POSES] = {-15.0f, 15.0f}; #endif const int16_t isar_split_rend_band_grouping[MAX_SPLIT_REND_MD_BANDS + 1] = { Loading