From e77bddf100a05d808906a9d169d54a90fbca9ee3 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 19 Apr 2023 16:10:54 +0200 Subject: [PATCH 1/2] Replace IVAS_POSITION with IVAS_VECTOR3 under FIX_406_IVAS_POSITION --- apps/decoder.c | 4 ++++ apps/renderer.c | 4 ++++ lib_com/common_api_types.h | 2 ++ lib_com/options.h | 1 + lib_dec/lib_dec.c | 4 ++++ lib_dec/lib_dec.h | 4 ++++ lib_rend/ivas_objectRenderer.c | 8 ++++++++ lib_rend/ivas_prot_rend.h | 8 ++++++++ lib_rend/ivas_stat_rend.h | 8 ++++++++ lib_rend/lib_rend.c | 4 ++++ lib_rend/lib_rend.h | 4 ++++ lib_util/head_rotation_file_reader.c | 4 ++++ lib_util/head_rotation_file_reader.h | 6 +++++- 13 files changed, 60 insertions(+), 1 deletion(-) diff --git a/apps/decoder.c b/apps/decoder.c index d2260713c2..e7392477fa 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -1429,7 +1429,11 @@ static ivas_error decodeG192( ivas_error error = IVAS_ERR_UNKNOWN; uint16_t numObj = 0; IVAS_DEC_BS_FORMAT bsFormat = IVAS_DEC_BS_UNKOWN; +#ifdef FIX_406_IVAS_POSITION + IVAS_VECTOR3 Pos[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES]; +#else IVAS_POSITION Pos[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES]; +#endif IsmFileWriter *ismWriters[IVAS_MAX_NUM_OBJECTS]; for ( i = 0; i < IVAS_MAX_NUM_OBJECTS; ++i ) diff --git a/apps/renderer.c b/apps/renderer.c index 726eeb237b..82eaf89a34 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -536,7 +536,11 @@ int main( int32_t delayTimeScale = 0; int16_t i, numChannels; ivas_error error = IVAS_ERR_OK; +#ifdef FIX_406_IVAS_POSITION + IVAS_VECTOR3 Pos[RENDERER_HEAD_POSITIONS_PER_FRAME]; +#else IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME]; +#endif #ifdef WMOPS reset_wmops(); diff --git a/lib_com/common_api_types.h b/lib_com/common_api_types.h index 3e012a6f99..209f5d8963 100644 --- a/lib_com/common_api_types.h +++ b/lib_com/common_api_types.h @@ -93,11 +93,13 @@ typedef struct float x, y, z; } IVAS_VECTOR3; +#ifndef FIX_406_IVAS_POSITION typedef struct { float x, y, z; } IVAS_POSITION; +#endif typedef struct ivas_masa_metadata_frame_struct *IVAS_MASA_METADATA_HANDLE; #ifdef FIX_350_MASA_DELAY_COMP diff --git a/lib_com/options.h b/lib_com/options.h index c188222e22..d4ea004209 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -170,6 +170,7 @@ #define ISSUE_24_CLEANUP_MCT_LFE /* Issue 24: Cleanup LFE path withing MCT */ #define FIX_401_DIRAC_RENDERER_META_READ_INDICES /* Nokia: Issue 401: Fix metadata reading indices in DirAC renderer. */ +#define FIX_406_IVAS_POSITION /* Eri: Issue 406: Unify IVAS_POSITION to use IVAS_VECTOR3 instead */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index a1410c482e..54202d2e37 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -895,7 +895,11 @@ ivas_error IVAS_DEC_GetMasaMetadata( ivas_error IVAS_DEC_FeedHeadTrackData( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_QUATERNION *orientation, /* i : head-tracking data, listener orientation */ +#ifdef FIX_406_IVAS_POSITION + IVAS_VECTOR3 *Pos /* i : listener position */ +#else IVAS_POSITION *Pos /* i : listener position */ +#endif ) { HEAD_TRACK_DATA_HANDLE hHeadTrackData; diff --git a/lib_dec/lib_dec.h b/lib_dec/lib_dec.h index e1e5bfe9f4..5fe89ad2d7 100644 --- a/lib_dec/lib_dec.h +++ b/lib_dec/lib_dec.h @@ -177,7 +177,11 @@ ivas_error IVAS_DEC_GetMasaMetadata( ivas_error IVAS_DEC_FeedHeadTrackData( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_QUATERNION *orientation, /* i : head-tracking data */ +#ifdef FIX_406_IVAS_POSITION + IVAS_VECTOR3 *Pos /* i : listener position */ +#else IVAS_POSITION *Pos /* i : listener position */ +#endif ); /*! r: error code */ diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index ed36fa26b1..d0f1a882bd 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -258,7 +258,11 @@ ivas_error ivas_td_binaural_renderer_unwrap( ISM_METADATA_HANDLE *hIsmMetaData, /* i : ISM metadata handle */ const int16_t Opt_Headrotation, /* i : Head rotation flag */ const IVAS_QUATERNION *Quaternions, /* i : Head tracking data per subframe */ +#ifdef FIX_406_IVAS_POSITION + const IVAS_VECTOR3 *Pos, /* i : Listener position data per subframe */ +#else const IVAS_POSITION *Pos, /* i : Listener position data per subframe */ +#endif float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ const int16_t output_frame /* i : output frame length */ ) @@ -462,7 +466,11 @@ void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ const int16_t headRotEnabled, /* i : Headrotation flag */ const IVAS_QUATERNION *headPosition, /* i : Listener orientation */ +#ifdef FIX_406_IVAS_POSITION + const IVAS_VECTOR3 *Pos /* i : Listener Position */ +#else const IVAS_POSITION *Pos /* i : Listener Position */ +#endif ) { float FrontVec[3]; diff --git a/lib_rend/ivas_prot_rend.h b/lib_rend/ivas_prot_rend.h index 938e8de02c..9d13ba9b36 100644 --- a/lib_rend/ivas_prot_rend.h +++ b/lib_rend/ivas_prot_rend.h @@ -221,7 +221,11 @@ ivas_error ivas_td_binaural_renderer_unwrap( ISM_METADATA_HANDLE *hIsmMetaData, /* i : ISM metadata handle */ const int16_t Opt_Headrotation, /* i : Head rotation flag */ const IVAS_QUATERNION *Quaternions, /* i : Head tracking data per subframe */ +#ifdef FIX_406_IVAS_POSITION + const IVAS_VECTOR3 *Pos, /* i : Listener position data per subframe */ +#else const IVAS_POSITION *Pos, /* i : Listener position data per subframe */ +#endif float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ const int16_t output_frame /* i : output frame length */ ); @@ -273,7 +277,11 @@ void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ const int16_t headRotEnabled, /* i : Headrotation flag */ const IVAS_QUATERNION *headPosition, /* i : Listener orientation */ +#ifdef FIX_406_IVAS_POSITION + const IVAS_VECTOR3 *Pos /* i : Listener Position */ +#else const IVAS_POSITION *Pos /* i : Listener Position */ +#endif ); void TDREND_Update_object_positions( diff --git a/lib_rend/ivas_stat_rend.h b/lib_rend/ivas_stat_rend.h index e7ff9eb0ba..faa22abd56 100644 --- a/lib_rend/ivas_stat_rend.h +++ b/lib_rend/ivas_stat_rend.h @@ -250,7 +250,11 @@ typedef struct { int8_t headRotEnabled; IVAS_QUATERNION headPositions[RENDERER_HEAD_POSITIONS_PER_FRAME]; +#ifdef FIX_406_IVAS_POSITION + IVAS_VECTOR3 Pos[RENDERER_HEAD_POSITIONS_PER_FRAME]; +#else IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME]; +#endif float crossfade[L_FRAME48k / RENDERER_HEAD_POSITIONS_PER_FRAME]; ivas_orient_trk_state_t *hOrientationTracker; @@ -260,7 +264,11 @@ typedef struct ivas_binaural_head_track_struct { int16_t num_quaternions; IVAS_QUATERNION Quaternions[MAX_PARAM_SPATIAL_SUBFRAMES]; +#ifdef FIX_406_IVAS_POSITION + IVAS_VECTOR3 Pos[MAX_PARAM_SPATIAL_SUBFRAMES]; +#else IVAS_POSITION Pos[MAX_PARAM_SPATIAL_SUBFRAMES]; +#endif float Rmat[3][3]; float Rmat_prev[3][3]; diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 3d2420632d..f5c9ebd603 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -3807,7 +3807,11 @@ int16_t IVAS_REND_FeedRenderConfig( ivas_error IVAS_REND_SetHeadRotation( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME], /* i : head orientations for next rendering call */ +#ifdef FIX_406_IVAS_POSITION + const IVAS_VECTOR3 Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ +#else const IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ +#endif ) { int16_t i; diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index ec4c05a6d6..ca5ae9ab26 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -249,7 +249,11 @@ int16_t IVAS_REND_FeedRenderConfig( ivas_error IVAS_REND_SetHeadRotation( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME], /* i : head orientations for next rendering call */ +#ifdef FIX_406_IVAS_POSITION + const IVAS_VECTOR3 Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ +#else const IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ +#endif ); ivas_error IVAS_REND_SetOrientationTrackingMode( diff --git a/lib_util/head_rotation_file_reader.c b/lib_util/head_rotation_file_reader.c index 02f14be924..e206fbdfa3 100644 --- a/lib_util/head_rotation_file_reader.c +++ b/lib_util/head_rotation_file_reader.c @@ -94,7 +94,11 @@ ivas_error HeadRotationFileReader_open( ivas_error HeadRotationFileReading( HeadRotFileReader *headRotReader, /* i/o: HeadRotFileReader handle */ IVAS_QUATERNION *pQuaternion, /* o : head-tracking data */ +#ifdef FIX_406_IVAS_POSITION + IVAS_VECTOR3 *pPos /* o : listener position */ +#else IVAS_POSITION *pPos /* o : listener position */ +#endif ) { float w, x, y, z; diff --git a/lib_util/head_rotation_file_reader.h b/lib_util/head_rotation_file_reader.h index 4794aeba45..2625bbe3f8 100644 --- a/lib_util/head_rotation_file_reader.h +++ b/lib_util/head_rotation_file_reader.h @@ -60,7 +60,11 @@ ivas_error HeadRotationFileReader_open( ivas_error HeadRotationFileReading( HeadRotFileReader *headRotReader, /* i/o: HeadRotFileReader handle */ IVAS_QUATERNION *pQuaternion, /* o : head-tracking data */ - IVAS_POSITION *pPos /* o : listener position */ +#ifdef FIX_406_IVAS_POSITION + IVAS_VECTOR3 *pPos /* o : listener position */ +#else + IVAS_POSITION *pPos /* o : listener position */ +#endif ); /*-----------------------------------------------------------------------* -- GitLab From fdb99bcbe631f2ef6c788aae68955cd7ef26d66e Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 19 Apr 2023 16:42:13 +0200 Subject: [PATCH 2/2] Clang format --- lib_dec/lib_dec.c | 2 +- lib_rend/ivas_objectRenderer.c | 8 ++++---- lib_rend/lib_rend.c | 2 +- lib_util/head_rotation_file_reader.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 54202d2e37..6f385c5066 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -898,7 +898,7 @@ ivas_error IVAS_DEC_FeedHeadTrackData( #ifdef FIX_406_IVAS_POSITION IVAS_VECTOR3 *Pos /* i : listener position */ #else - IVAS_POSITION *Pos /* i : listener position */ + IVAS_POSITION *Pos /* i : listener position */ #endif ) { diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index d0f1a882bd..b454f06179 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -261,10 +261,10 @@ ivas_error ivas_td_binaural_renderer_unwrap( #ifdef FIX_406_IVAS_POSITION const IVAS_VECTOR3 *Pos, /* i : Listener position data per subframe */ #else - const IVAS_POSITION *Pos, /* i : Listener position data per subframe */ + const IVAS_POSITION *Pos, /* i : Listener position data per subframe */ #endif - float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ - const int16_t output_frame /* i : output frame length */ + float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ + const int16_t output_frame /* i : output frame length */ ) { int16_t subframe_length; @@ -469,7 +469,7 @@ void TDREND_Update_listener_orientation( #ifdef FIX_406_IVAS_POSITION const IVAS_VECTOR3 *Pos /* i : Listener Position */ #else - const IVAS_POSITION *Pos /* i : Listener Position */ + const IVAS_POSITION *Pos /* i : Listener Position */ #endif ) { diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index f5c9ebd603..e24c34d73e 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -3810,7 +3810,7 @@ ivas_error IVAS_REND_SetHeadRotation( #ifdef FIX_406_IVAS_POSITION const IVAS_VECTOR3 Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ #else - const IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ + const IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ #endif ) { diff --git a/lib_util/head_rotation_file_reader.c b/lib_util/head_rotation_file_reader.c index e206fbdfa3..fda8154b32 100644 --- a/lib_util/head_rotation_file_reader.c +++ b/lib_util/head_rotation_file_reader.c @@ -97,7 +97,7 @@ ivas_error HeadRotationFileReading( #ifdef FIX_406_IVAS_POSITION IVAS_VECTOR3 *pPos /* o : listener position */ #else - IVAS_POSITION *pPos /* o : listener position */ + IVAS_POSITION *pPos /* o : listener position */ #endif ) { -- GitLab