Loading lib_com/common_api_types.h +16 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ typedef struct _IVAS_ISM_METADATA Word32 elevation_fx; /* Q22 */ Word16 radius_fx; /* Q9 */ Word32 spread_fx; /* Q22 */ Word32 gainFactor_fx; /* Q31 */ Word32 gainFactor_fx; /* Q31 */ // TODO: Gain factor can't be Q31, due to the gain editing Word32 yaw_fx; /* Q22 */ Word32 pitch_fx; /* Q22 */ float azimuth; Loading @@ -137,6 +137,10 @@ typedef struct _IVAS_ISM_METADATA float yaw; float pitch; Word16 non_diegetic_flag; #ifdef OBJ_EDITING_API // float gain; Word16 gain_fx; /* Q12 */ #endif } IVAS_ISM_METADATA; Loading @@ -148,6 +152,17 @@ typedef struct } IVAS_QUATERNION; #ifdef OBJ_EDITING_API typedef struct _IVAS_EDITABLE_PARAMETERS { // int16_t num_obj; IVAS_ISM_METADATA ism_metadata[IVAS_MAX_NUM_OBJECTS]; // float gain_bed; Word16 num_obj; Word16 gain_bed; // Q12? } IVAS_EDITABLE_PARAMETERS; #endif typedef struct { Loading lib_com/ivas_cnst.h +8 −0 Original line number Diff line number Diff line Loading @@ -1329,6 +1329,14 @@ enum #define MASA_INV_ANGLE_AT_EQUATOR_DEG_Q30 (1453366656l) #ifdef OMASA_OBJECT_EDITING #define OMASA_GAIN_EDIT_THR 0.06f /* OMASA gain change threshold */ #define OMASA_GAIN_EDIT_THR_FX 246 /* OMASA gain change threshold, 0.06f in Q12 */ #define OMASA_AZI_EDIT_THR 1.0f /* OMASA-DISC azimuth change threshold */ #define OMASA_AZI_EDIT_THR_FX ONE_IN_Q22 /* OMASA-DISC azimuth change threshold */ #define OMASA_ELE_EDIT_THR 2.0f /* OMASA-DISC elevation change threshold */ #define OMASA_ELE_EDIT_THR_FX ONE_IN_Q23 /* OMASA-DISC elevation change threshold */ #endif #define MASA_JBM_RINGBUFFER_FRAMES 3 #define TOLERANCE_360_Q22 1510033326 /* 360 in Q22 + 0.02 in Q22*/ Loading lib_com/ivas_error.h +3 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ typedef enum IVAS_ERR_EXT_ORIENTATION_NOT_SUPPORTED, IVAS_ERR_DIRECTIVITY_NOT_SUPPORTED, IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED, #ifdef OBJ_EDIT_BASOP IVAS_ERR_OBJECTS_EDITING_NOT_SUPPORTED, #endif IVAS_ERR_INVALID_HRTF, #ifdef FIX_989_TD_REND_ROM IVAS_ERR_INVALID_HRTF_SAMPLING_RATE, Loading lib_com/ivas_ism_com_fx.c +12 −0 Original line number Diff line number Diff line Loading @@ -470,6 +470,18 @@ void ivas_ism_reset_metadata( hIsmMeta->non_diegetic_flag = 0; move16(); #ifdef OBJ_EDIT_API hIsmMeta->edited_gain_fx = ONE_IN_Q12; hIsmMeta->edited_azimuth_fx = 0; hIsmMeta->edited_elevation_fx = 0; hIsmMeta->edited_pitch_fx = 0; hIsmMeta->edited_yaw_fx = 0; hIsmMeta->edited_radius_fx = ONE_IN_Q9; hIsmMeta->gain_fx = ONE_IN_Q12; hIsmMeta->non_diegetic_flag = 0; #endif return; } Loading lib_com/ivas_prot_fx.h +33 −13 Original line number Diff line number Diff line Loading @@ -184,6 +184,15 @@ void ivas_omasa_render_objects_from_mix_fx( ); #ifdef OBJ_EDIT_BASOP void ivas_omasa_gain_masa_tc_fx( Word32 *output[], /* i/o: output synthesis signal */ const Word32 gainMasa, /* i : gain for MASA transport channels */ const Word16 nchan_transport_ism, /* i : number of ISM TCs */ const Word16 output_frame /* i : output frame length per channel */ ); #endif ivas_error ivas_omasa_ism_metadata_dec_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word32 ism_total_brate, /* i : ISM total bitrate */ Loading Loading @@ -3932,6 +3941,17 @@ void ivas_set_ism_importance_interformat_fx( Word16 ism_imp[] /* o : ISM importance flags */ ); #ifdef OMASA_OBJECT_EDITING void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( Decoder_Struct *st_ivas, Word32 inRe_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/ Word32 inIm_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/ Word16 *cldfb_buf_q, const Word16 nBins, const Word16 subframe ); #else void ivas_omasa_preProcessStereoTransportsForMovedObjects_fx( Decoder_Struct *st_ivas, Word32 inRe_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/ Loading @@ -3939,7 +3959,7 @@ void ivas_omasa_preProcessStereoTransportsForMovedObjects_fx( Word16 *cldfb_buf_q, const Word16 nBins, const Word16 subframe ); #endif void ivas_omasa_decode_masa_to_total_fx( UWord16 *bit_stream, Loading Loading
lib_com/common_api_types.h +16 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ typedef struct _IVAS_ISM_METADATA Word32 elevation_fx; /* Q22 */ Word16 radius_fx; /* Q9 */ Word32 spread_fx; /* Q22 */ Word32 gainFactor_fx; /* Q31 */ Word32 gainFactor_fx; /* Q31 */ // TODO: Gain factor can't be Q31, due to the gain editing Word32 yaw_fx; /* Q22 */ Word32 pitch_fx; /* Q22 */ float azimuth; Loading @@ -137,6 +137,10 @@ typedef struct _IVAS_ISM_METADATA float yaw; float pitch; Word16 non_diegetic_flag; #ifdef OBJ_EDITING_API // float gain; Word16 gain_fx; /* Q12 */ #endif } IVAS_ISM_METADATA; Loading @@ -148,6 +152,17 @@ typedef struct } IVAS_QUATERNION; #ifdef OBJ_EDITING_API typedef struct _IVAS_EDITABLE_PARAMETERS { // int16_t num_obj; IVAS_ISM_METADATA ism_metadata[IVAS_MAX_NUM_OBJECTS]; // float gain_bed; Word16 num_obj; Word16 gain_bed; // Q12? } IVAS_EDITABLE_PARAMETERS; #endif typedef struct { Loading
lib_com/ivas_cnst.h +8 −0 Original line number Diff line number Diff line Loading @@ -1329,6 +1329,14 @@ enum #define MASA_INV_ANGLE_AT_EQUATOR_DEG_Q30 (1453366656l) #ifdef OMASA_OBJECT_EDITING #define OMASA_GAIN_EDIT_THR 0.06f /* OMASA gain change threshold */ #define OMASA_GAIN_EDIT_THR_FX 246 /* OMASA gain change threshold, 0.06f in Q12 */ #define OMASA_AZI_EDIT_THR 1.0f /* OMASA-DISC azimuth change threshold */ #define OMASA_AZI_EDIT_THR_FX ONE_IN_Q22 /* OMASA-DISC azimuth change threshold */ #define OMASA_ELE_EDIT_THR 2.0f /* OMASA-DISC elevation change threshold */ #define OMASA_ELE_EDIT_THR_FX ONE_IN_Q23 /* OMASA-DISC elevation change threshold */ #endif #define MASA_JBM_RINGBUFFER_FRAMES 3 #define TOLERANCE_360_Q22 1510033326 /* 360 in Q22 + 0.02 in Q22*/ Loading
lib_com/ivas_error.h +3 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ typedef enum IVAS_ERR_EXT_ORIENTATION_NOT_SUPPORTED, IVAS_ERR_DIRECTIVITY_NOT_SUPPORTED, IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED, #ifdef OBJ_EDIT_BASOP IVAS_ERR_OBJECTS_EDITING_NOT_SUPPORTED, #endif IVAS_ERR_INVALID_HRTF, #ifdef FIX_989_TD_REND_ROM IVAS_ERR_INVALID_HRTF_SAMPLING_RATE, Loading
lib_com/ivas_ism_com_fx.c +12 −0 Original line number Diff line number Diff line Loading @@ -470,6 +470,18 @@ void ivas_ism_reset_metadata( hIsmMeta->non_diegetic_flag = 0; move16(); #ifdef OBJ_EDIT_API hIsmMeta->edited_gain_fx = ONE_IN_Q12; hIsmMeta->edited_azimuth_fx = 0; hIsmMeta->edited_elevation_fx = 0; hIsmMeta->edited_pitch_fx = 0; hIsmMeta->edited_yaw_fx = 0; hIsmMeta->edited_radius_fx = ONE_IN_Q9; hIsmMeta->gain_fx = ONE_IN_Q12; hIsmMeta->non_diegetic_flag = 0; #endif return; } Loading
lib_com/ivas_prot_fx.h +33 −13 Original line number Diff line number Diff line Loading @@ -184,6 +184,15 @@ void ivas_omasa_render_objects_from_mix_fx( ); #ifdef OBJ_EDIT_BASOP void ivas_omasa_gain_masa_tc_fx( Word32 *output[], /* i/o: output synthesis signal */ const Word32 gainMasa, /* i : gain for MASA transport channels */ const Word16 nchan_transport_ism, /* i : number of ISM TCs */ const Word16 output_frame /* i : output frame length per channel */ ); #endif ivas_error ivas_omasa_ism_metadata_dec_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word32 ism_total_brate, /* i : ISM total bitrate */ Loading Loading @@ -3932,6 +3941,17 @@ void ivas_set_ism_importance_interformat_fx( Word16 ism_imp[] /* o : ISM importance flags */ ); #ifdef OMASA_OBJECT_EDITING void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( Decoder_Struct *st_ivas, Word32 inRe_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/ Word32 inIm_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/ Word16 *cldfb_buf_q, const Word16 nBins, const Word16 subframe ); #else void ivas_omasa_preProcessStereoTransportsForMovedObjects_fx( Decoder_Struct *st_ivas, Word32 inRe_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/ Loading @@ -3939,7 +3959,7 @@ void ivas_omasa_preProcessStereoTransportsForMovedObjects_fx( Word16 *cldfb_buf_q, const Word16 nBins, const Word16 subframe ); #endif void ivas_omasa_decode_masa_to_total_fx( UWord16 *bit_stream, Loading