From 865a4b9f1794096d4178274cd49464c223fb593e Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:31:19 +0200 Subject: [PATCH 01/12] [cleanup] accept FIX_I109_ORIENTATION_TRACKING --- apps/decoder.c | 57 ------- apps/renderer.c | 47 ------ lib_com/ivas_cnst.h | 11 -- lib_com/options.h | 3 - lib_dec/ivas_init_dec.c | 15 -- lib_dec/ivas_ism_dec.c | 3 - lib_dec/ivas_mct_dec.c | 3 - lib_dec/lib_dec.c | 13 -- lib_dec/lib_dec.h | 2 - lib_rend/ivas_crend.c | 27 --- lib_rend/ivas_orient_trk.c | 238 --------------------------- lib_rend/ivas_prot_rend.h | 42 ----- lib_rend/ivas_rotation.c | 104 ------------ lib_rend/ivas_stat_rend.h | 33 ---- lib_rend/lib_rend.c | 40 ----- lib_rend/lib_rend.h | 2 - lib_util/audio_file_writer.c | 4 - lib_util/head_rotation_file_reader.c | 61 ------- lib_util/head_rotation_file_reader.h | 12 -- 19 files changed, 717 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 2b7268854a..fe6456defe 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -72,7 +72,6 @@ static #define MAX_NUM_OUTPUT_CHANNELS 16 #define MAX_OUTPUT_PCM_BUFFER_SIZE ( MAX_NUM_OUTPUT_CHANNELS * MAX_FRAME_SIZE ) -#ifdef FIX_I109_ORIENTATION_TRACKING #define IVAS_PUBLIC_ORIENT_TRK_NONE ( 0 ) #define IVAS_PUBLIC_ORIENT_TRK_REF ( 1 ) #define IVAS_PUBLIC_ORIENT_TRK_AVG ( 2 ) @@ -80,10 +79,6 @@ static #define IVAS_PUBLIC_ORIENT_TRK_REF_VEC ( 3 ) #define IVAS_PUBLIC_ORIENT_TRK_REF_VEC_LEV ( 4 ) #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#else -#define IVAS_PUBLIC_ORIENT_TRK_REF 0 -#define IVAS_PUBLIC_ORIENT_TRK_AVG 1 -#endif typedef struct { @@ -97,10 +92,8 @@ typedef struct bool voipMode; bool enableHeadRotation; char *headrotTrajFileName; -#ifdef FIX_I109_ORIENTATION_TRACKING bool enableReferenceRotation; char *refrotTrajFileName; -#endif #ifdef OTR_REFERENCE_VECTOR_TRACKING bool enableReferenceVectorTracking; char *referenceVectorTrajFileName; @@ -140,15 +133,11 @@ typedef struct static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg ); static void usage_dec( void ); -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); #else /* OTR_REFERENCE_VECTOR_TRACKING */ static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); #endif -#else -static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); -#endif static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec ); #ifdef DEBUGGING static ivas_error printBitstreamInfoVoip( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec ); @@ -174,9 +163,7 @@ int main( LsCustomFileReader *hLsCustomReader = NULL; hrtfFileReader *hrtfReader = NULL; HeadRotFileReader *headRotReader = NULL; -#ifdef FIX_I109_ORIENTATION_TRACKING HeadRotFileReader *refRotReader = NULL; -#endif #ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader *referenceVectorReader = NULL; #endif /* OTR_REFERENCE_VECTOR_TRACKING */ @@ -289,7 +276,6 @@ int main( } } -#ifdef FIX_I109_ORIENTATION_TRACKING /*------------------------------------------------------------------------------------------* * Open reference rotation file *------------------------------------------------------------------------------------------*/ @@ -301,7 +287,6 @@ int main( goto cleanup; } } -#endif #ifdef OTR_REFERENCE_VECTOR_TRACKING /*------------------------------------------------------------------------------------------* * Open reference vector trajectory file @@ -572,15 +557,11 @@ int main( } else { -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING error = decodeG192( arg, hBsReader, headRotReader, refRotReader, referenceVectorReader, hIvasDec, pcmBuf ); #else error = decodeG192( arg, hBsReader, headRotReader, refRotReader, hIvasDec, pcmBuf ); #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#else - error = decodeG192( arg, hBsReader, headRotReader, hIvasDec, pcmBuf ); -#endif } if ( error == IVAS_ERR_OK || error == IVAS_ERR_END_OF_FILE ) @@ -636,9 +617,7 @@ cleanup: CustomLsReader_close( &hLsCustomReader ); hrtfFileReader_close( &hrtfReader ); HeadRotationFileReader_close( &headRotReader ); -#ifdef FIX_I109_ORIENTATION_TRACKING HeadRotationFileReader_close( &refRotReader ); -#endif #ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader_close( &referenceVectorReader ); #endif /* OTR_REFERENCE_VECTOR_TRACKING */ @@ -778,7 +757,6 @@ static bool parseCmdlIVAS_dec( arg->enableHeadRotation = false; arg->headrotTrajFileName = NULL; -#ifdef FIX_I109_ORIENTATION_TRACKING arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_NONE; arg->enableReferenceRotation = false; arg->headrotTrajFileName = NULL; @@ -786,9 +764,6 @@ static bool parseCmdlIVAS_dec( arg->enableReferenceVectorTracking = false; arg->referenceVectorTrajFileName = NULL; #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#else - arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF; -#endif #ifdef SUPPORT_JBM_TRACEFILE arg->jbmTraceFilename = NULL; @@ -963,26 +938,16 @@ static bool parseCmdlIVAS_dec( } else if ( strcmp( argv_to_upper, "-OTR" ) == 0 ) { -#ifndef FIX_I109_ORIENTATION_TRACKING - if ( strlen( argv[i + 1] ) > 3 ) - { - fprintf( stderr, "Error: Invalid orientation tracking type %s \n\n", argv[i + 1] ); - usage_dec(); - return false; - } -#endif strncpy( argv_to_upper, argv[i + 1], sizeof( argv_to_upper ) - 1 ); argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; to_upper( argv_to_upper ); -#ifdef FIX_I109_ORIENTATION_TRACKING if ( strcmp( argv_to_upper, "NONE" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_NONE; } else -#endif if ( strcmp( argv_to_upper, "REF" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF; @@ -1009,7 +974,6 @@ static bool parseCmdlIVAS_dec( } i += 2; } -#ifdef FIX_I109_ORIENTATION_TRACKING else if ( strcmp( argv_to_upper, "-RF" ) == 0 ) { arg->enableReferenceRotation = true; @@ -1025,7 +989,6 @@ static bool parseCmdlIVAS_dec( arg->refrotTrajFileName = argv[i]; i++; } -#endif #ifdef OTR_REFERENCE_VECTOR_TRACKING else if ( strcmp( argv_to_upper, "-RVF" ) == 0 ) { @@ -1235,13 +1198,9 @@ static void usage_dec( void ) fprintf( stdout, " default is OFF, if this option is not used\n" ); fprintf( stdout, "-force R : Force specific binaural rendering mode, R = (TDREND, CLDFBREND),\n" ); #endif -#ifdef FIX_I109_ORIENTATION_TRACKING fprintf( stdout, "-otr tracking_type : head orientation tracking type: 'none', 'ref' or 'avg' (only for binaural rendering)\n" ); fprintf( stdout, "-rf File : Reference rotation specified by external trajectory file\n" ); fprintf( stdout, " works only in combination with -otr ref mode\n" ); -#else - fprintf( stdout, "-otr tracking_type : head orientation tracking type: 'ref' or 'avg' (only for binaural rendering)\n" ); -#endif #ifdef OTR_REFERENCE_VECTOR_TRACKING fprintf( stdout, "-rvf File : Reference vector specified by external trajectory file\n" ); fprintf( stdout, " works only in combination with -otr ref_vec and ref_vec_lev modes\n" ); @@ -1479,12 +1438,10 @@ static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, -#ifdef FIX_I109_ORIENTATION_TRACKING HeadRotFileReader *refRotReader, #ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader *referenceVectorReader, #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#endif IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ) @@ -1584,7 +1541,6 @@ static ivas_error decodeG192( goto cleanup; } -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING /* reference vector */ if ( arg.enableReferenceVectorTracking ) @@ -1623,13 +1579,11 @@ static ivas_error decodeG192( goto cleanup; } } -#endif /* Head-tracking input simulation */ if ( arg.enableHeadRotation ) { IVAS_QUATERNION Quaternions[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES]; -#ifdef FIX_I109_ORIENTATION_TRACKING for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { #ifdef TD5 @@ -1642,17 +1596,6 @@ static ivas_error decodeG192( goto cleanup; } } -#else -#ifdef TD5 - if ( ( error = HeadRotationFileReading( headRotReader, Quaternions, Pos ) ) != IVAS_ERR_OK ) -#else - if ( ( error = HeadRotationFileReading( headRotReader, Quaternions, frame ) ) != IVAS_ERR_OK ) -#endif - { - fprintf( stderr, "\nError %s while reading head orientation from %s\n", IVAS_DEC_GetErrorMessage( error ), HeadRotationFileReader_getFilePath( headRotReader ) ); - goto cleanup; - } -#endif #ifdef TD5 if ( ( error = IVAS_DEC_FeedHeadTrackData( hIvasDec, Quaternions, Pos ) ) != IVAS_ERR_OK ) diff --git a/apps/renderer.c b/apps/renderer.c index 5e8ca98e9c..e28063ff2e 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -133,12 +133,10 @@ typedef struct char inMetadataFilePaths[RENDERER_MAX_ISM_INPUTS][RENDERER_MAX_CLI_ARG_LENGTH]; int16_t numInMetadataFiles; char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING char referenceVectorFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; #endif /* OTR_REFERENCE_VECTOR_TRACKING */ char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; -#endif char customHrtfFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char renderConfigFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; int8_t orientationTracking; @@ -251,15 +249,11 @@ static const CmdLnParser_Option cliOptions[] = { .id = CmdLnOptionId_orientationTracking, .match = "tracking_type", .matchShort = "otr", -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING .description = "Head orientation tracking type: 'none', 'ref', 'avg' or `ref_vec` or `ref_vec_lev` (only for BINAURAL and BINAURAL_ROOM)", #else .description = "Head orientation tracking type: 'none', 'ref' or 'avg' (only for BINAURAL and BINAURAL_ROOM)", #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#else - .description = "Head orientation tracking type: 'ref' or 'avg' (only for BINAURAL and BINAURAL_ROOM)", -#endif }, { .id = CmdlnOptionId_lfePosition, @@ -529,12 +523,10 @@ int main( { IVAS_REND_HANDLE hIvasRend; HeadRotFileReader *headRotReader = NULL; -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader *referenceVectorReader = NULL; #endif /* OTR_REFERENCE_VECTOR_TRACKING */ HeadRotFileReader *referenceRotReader = NULL; -#endif hrtfFileReader *hrtfFileReader = NULL; IsmPositionProvider *positionProvider; RenderConfigReader *renderConfigReader = NULL; @@ -579,20 +571,11 @@ int main( convert_backslash( args.inputFilePath ); convert_backslash( args.outputFilePath ); -#ifndef FIX_I109_ORIENTATION_TRACKING - /* disable 'refrotequal' test cases */ - if ( strstr( args.headRotationFilePath, "azi_plus_2-ele_plus_2-every-100-frames.csv" ) != NULL ) - { - memset( args.headRotationFilePath, '\0', sizeof( args.headRotationFilePath ) ); - } -#endif convert_backslash( args.headRotationFilePath ); -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING convert_backslash( args.referenceVectorFilePath ); #endif /* OTR_REFERENCE_VECTOR_TRACKING */ convert_backslash( args.referenceRotationFilePath ); -#endif convert_backslash( args.inLfePanningMatrixFile ); if ( !isEmptyString( args.headRotationFilePath ) ) @@ -604,7 +587,6 @@ int main( } } -#ifdef FIX_I109_ORIENTATION_TRACKING if ( !isEmptyString( args.referenceRotationFilePath ) ) { if ( HeadRotationFileReader_open( args.referenceRotationFilePath, &referenceRotReader ) != IVAS_ERR_OK ) @@ -623,7 +605,6 @@ int main( } } #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#endif if ( !isEmptyString( args.customHrtfFilePath ) ) { @@ -760,12 +741,10 @@ int main( } } -#ifdef FIX_I109_ORIENTATION_TRACKING if ( ( error = IVAS_REND_SetOrientationTrackingMode( hIvasRend, args.orientationTracking ) ) != IVAS_ERR_OK ) { return error; } -#endif /* Set up output custom layout configuration */ if ( args.outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) @@ -966,7 +945,6 @@ int main( ObjectPositionBuffer mtdBuffer; IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer ); -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING if ( referenceVectorReader != NULL ) { @@ -1003,14 +981,12 @@ int main( exit( -1 ); } } -#endif /* Read from head rotation trajectory file if specified */ if ( headRotReader != NULL ) { IVAS_QUATERNION quatBuffer[RENDERER_HEAD_POSITIONS_PER_FRAME]; -#ifdef FIX_I109_ORIENTATION_TRACKING for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) { #ifdef TD5 @@ -1023,13 +999,6 @@ int main( exit( -1 ); } } -#else -#ifdef TD5 - HeadRotationFileReading( headRotReader, quatBuffer, Pos ); -#else - HeadRotationFileReading( headRotReader, quatBuffer, frame ); -#endif -#endif #ifdef TD5 if ( ( error = IVAS_REND_SetHeadRotation( hIvasRend, quatBuffer, Pos ) ) != IVAS_ERR_OK ) #else @@ -1226,12 +1195,10 @@ int main( AudioFileReader_close( &audioReader ); AudioFileWriter_close( &audioWriter ); HeadRotationFileReader_close( &headRotReader ); -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader_close( &referenceVectorReader ); #endif /* OTR_REFERENCE_VECTOR_TRACKING */ HeadRotationFileReader_close( &referenceRotReader ); -#endif hrtfFileReader_close( &hrtfFileReader ); IVAS_REND_Close( &hIvasRend ); IsmPositionProvider_close( positionProvider ); @@ -1457,15 +1424,11 @@ static bool parseOrientationTracking( to_upper( value ); -#ifdef FIX_I109_ORIENTATION_TRACKING if ( strcmp( value, "NONE" ) == 0 ) { *tracking_type = IVAS_ORIENT_TRK_NONE; } else if ( strcmp( value, "REF" ) == 0 ) -#else - if ( strcmp( value, "REF" ) == 0 ) -#endif { *tracking_type = IVAS_ORIENT_TRK_REF; } @@ -1473,7 +1436,6 @@ static bool parseOrientationTracking( { *tracking_type = IVAS_ORIENT_TRK_AVG; } -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING else if ( strcmp( value, "REF_VEC" ) == 0 ) { @@ -1484,7 +1446,6 @@ static bool parseOrientationTracking( *tracking_type = IVAS_ORIENT_TRK_REF_VEC_LEV; } #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#endif else { fprintf( stderr, "Error: Invalid orientation tracking type %s \n\n", value ); @@ -1702,20 +1663,14 @@ static CmdlnArgs defaultArgs( args.numInMetadataFiles = 0; clearString( args.headRotationFilePath ); -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING clearString( args.referenceVectorFilePath ); #endif /* OTR_REFERENCE_VECTOR_TRACKING */ clearString( args.referenceRotationFilePath ); -#endif clearString( args.customHrtfFilePath ); clearString( args.renderConfigFilePath ); -#ifdef FIX_I109_ORIENTATION_TRACKING args.orientationTracking = IVAS_ORIENT_TRK_NONE; -#else - args.orientationTracking = IVAS_ORIENT_TRK_REF; -#endif args.noDiegeticPan = 0.0f; args.delayCompensationEnabled = true; @@ -1790,7 +1745,6 @@ static void parseOption( assert( numOptionValues == 1 ); strncpy( args->headRotationFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING case CmdLnOptionId_referenceVectorFile: assert( numOptionValues == 1 ); @@ -1801,7 +1755,6 @@ static void parseOption( assert( numOptionValues == 1 ); strncpy( args->referenceRotationFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; -#endif case CmdLnOptionId_customHrtfFile: assert( numOptionValues == 1 ); strncpy( args->customHrtfFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 3f48b0b43e..e97939b8a6 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1508,7 +1508,6 @@ typedef enum *----------------------------------------------------------------------------------*/ /* Orientation tracking types */ -#ifdef FIX_I109_ORIENTATION_TRACKING #define IVAS_ORIENT_TRK_NONE 0 #define IVAS_ORIENT_TRK_REF 1 #define IVAS_ORIENT_TRK_AVG 2 @@ -1516,27 +1515,17 @@ typedef enum #define IVAS_ORIENT_TRK_REF_VEC 3 #define IVAS_ORIENT_TRK_REF_VEC_LEV 4 #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#else -#define IVAS_ORIENT_TRK_REF 0 -#define IVAS_ORIENT_TRK_AVG 1 -#endif typedef enum { -#ifdef FIX_I109_ORIENTATION_TRACKING OTR_TRACKING_NONE = IVAS_ORIENT_TRK_NONE, -#else - OTR_TRACKING_NONE = IVAS_ORIENT_TRK_REF-1, -#endif OTR_TRACKING_REF_ORIENT = IVAS_ORIENT_TRK_REF, /* track orientation relative to external reference orientation (default: no rotation) */ OTR_TRACKING_AVG_ORIENT = IVAS_ORIENT_TRK_AVG /* track orientation relative to average orientation */ -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING , OTR_TRACKING_REF_VEC = IVAS_ORIENT_TRK_REF_VEC, /* track orientation relative to external reference vector */ OTR_TRACKING_REF_VEC_LEV = IVAS_ORIENT_TRK_REF_VEC_LEV /* track orientation relative to level component of external reference vector */ #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#endif } OTR_TRACKING_T; diff --git a/lib_com/options.h b/lib_com/options.h index c054a9b5a7..86f892db4a 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -141,7 +141,6 @@ #define DISABLE_ADAP_RES_COD_TMP /* temporary fix for IVAS-403, disables adaptive residual coding */ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -#define FIX_I109_ORIENTATION_TRACKING /* Issue 109: Harmonize head and orientation tracking */ /*#define SBA_HPF_TUNING_DEC*/ #define BINAURALIZATION_DELAY_REPORT /* VA: Issue 255 - Changes the way the decoder delay is reported */ @@ -154,9 +153,7 @@ #define FIX_371_DELAY_REPORT /* Issue 371: div. by zero with -no_delay_cmp */ #define FIX_373_MASA_DELAY_COMP_MSAN /* Nokia: Issue 373: MASA audio/meta delay compensation. MSAN bugfix */ -#ifdef FIX_I109_ORIENTATION_TRACKING #define OTR_REFERENCE_VECTOR_TRACKING /* FhG: enables the reference position orientation tracking mode */ -#endif #define FIX_380_BFI_PARAMISM /* VA: issue 380 - fix metadata recovery in ParamISM BFI */ #define FIX_MDCT_BASED_BWD /* FhG: fixes for BWD for issues with reaction to transients for MDCT-stereo and MCT */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index bc0a69ae56..53b3216157 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -787,7 +787,6 @@ ivas_error ivas_init_decoder( } } -#ifdef FIX_I109_ORIENTATION_TRACKING /*-----------------------------------------------------------------* * Set head/orientation tracking *-----------------------------------------------------------------*/ @@ -836,7 +835,6 @@ ivas_error ivas_init_decoder( } #endif /* OTR_REFERENCE_VECTOR_TRACKING */ } -#endif /*-----------------------------------------------------------------* * Allocate and initialize SCE/CPE and other handles @@ -1336,13 +1334,8 @@ ivas_error ivas_init_decoder( } } -#ifdef FIX_I109_ORIENTATION_TRACKING if ( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hDecoderConfig->output_config, st_ivas->hRenderConfig, st_ivas->hSetOfHRTF, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hDecoderConfig->output_config, - st_ivas->hRenderConfig, st_ivas->hDecoderConfig->Opt_Headrotation, st_ivas->hSetOfHRTF, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -1817,15 +1810,7 @@ void ivas_destroy_dec( } /* Head track data handle */ -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_headTrack_close( &st_ivas->hHeadTrackData ); -#else - if ( st_ivas->hHeadTrackData != NULL ) - { - free( st_ivas->hHeadTrackData ); - st_ivas->hHeadTrackData = NULL; - } -#endif /* Time Domain binaural renderer handle */ if ( st_ivas->hBinRendererTd != NULL ) diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index 5e0b475e3e..e6571e83d9 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -158,9 +158,6 @@ static ivas_error ivas_ism_bitrate_switching( st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hRenderConfig, -#ifndef FIX_I109_ORIENTATION_TRACKING - st_ivas->hDecoderConfig->Opt_Headrotation, -#endif st_ivas->hSetOfHRTF, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 553cdf2a1b..8c53538dec 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1113,9 +1113,6 @@ static ivas_error ivas_mc_dec_reconfig( st_ivas->intern_config, st_ivas->hDecoderConfig->output_config, st_ivas->hRenderConfig, -#ifndef FIX_I109_ORIENTATION_TRACKING - st_ivas->hDecoderConfig->Opt_Headrotation, -#endif st_ivas->hSetOfHRTF, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 61c9494e30..bcbf60a9d3 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -901,11 +901,7 @@ ivas_error IVAS_DEC_FeedHeadTrackData( HEAD_TRACK_DATA_HANDLE hHeadTrackData; int16_t i; -#ifdef FIX_I109_ORIENTATION_TRACKING if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL || orientation == NULL ) -#else - if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL ) -#endif { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } @@ -920,7 +916,6 @@ ivas_error IVAS_DEC_FeedHeadTrackData( /* Move head-tracking data to the decoder handle */ for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { -#ifdef FIX_I109_ORIENTATION_TRACKING /* check for Euler angle signaling */ if ( orientation[i].w == -3.0f ) { @@ -928,12 +923,6 @@ ivas_error IVAS_DEC_FeedHeadTrackData( } ivas_orient_trk_Process( hHeadTrackData->OrientationTracker, orientation[i], FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES, &hHeadTrackData->Quaternions[i] ); -#else - hHeadTrackData->Quaternions[i].w = orientation[i].w; - hHeadTrackData->Quaternions[i].x = orientation[i].x; - hHeadTrackData->Quaternions[i].y = orientation[i].y; - hHeadTrackData->Quaternions[i].z = orientation[i].z; -#endif #ifdef TD5 hHeadTrackData->Pos[i].x = Pos[i].x; hHeadTrackData->Pos[i].y = Pos[i].y; @@ -946,7 +935,6 @@ ivas_error IVAS_DEC_FeedHeadTrackData( return IVAS_ERR_OK; } -#ifdef FIX_I109_ORIENTATION_TRACKING /*---------------------------------------------------------------------* * IVAS_DEC_FeedRefRotData( ) * @@ -1001,7 +989,6 @@ ivas_error IVAS_DEC_FeedRefVectorData( return ivas_orient_trk_SetReferenceVector( pOtr, listenerPos, refPos ); } #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#endif /*---------------------------------------------------------------------* * IVAS_DEC_FeedCustomLsData( ) diff --git a/lib_dec/lib_dec.h b/lib_dec/lib_dec.h index a717e0002e..db22b6a5c0 100644 --- a/lib_dec/lib_dec.h +++ b/lib_dec/lib_dec.h @@ -184,7 +184,6 @@ ivas_error IVAS_DEC_FeedHeadTrackData( #endif ); -#ifdef FIX_I109_ORIENTATION_TRACKING /*! r: error code */ ivas_error IVAS_DEC_FeedRefRotData( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ @@ -198,7 +197,6 @@ ivas_error IVAS_DEC_FeedRefVectorData( const IVAS_VECTOR3 refPos /* i : Reference position */ ); #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#endif /*! r: error code */ ivas_error IVAS_DEC_VoIP_FeedFrame( diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index c4941b610c..c05ae7c262 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -733,9 +733,6 @@ ivas_error ivas_rend_openCrend( const AUDIO_CONFIG inConfig, const AUDIO_CONFIG outConfig, RENDER_CONFIG_DATA *hRendCfg, -#ifndef FIX_I109_ORIENTATION_TRACKING - int16_t Opt_Headrotation, -#endif HRTFS_CREND_HANDLE hSetOfHRTF, const int32_t output_Fs ) { @@ -1141,30 +1138,6 @@ ivas_error ivas_rend_crendProcess( if ( hDecoderConfig && hDecoderConfig->Opt_Headrotation && hHeadTrackData && hHeadTrackData->num_quaternions >= 0 ) { /* Orientation tracking */ -#ifndef FIX_I109_ORIENTATION_TRACKING - if ( pCrend->hCrend->hTrack != NULL ) - { - if ( hDecoderConfig->orientation_tracking == IVAS_ORIENT_TRK_AVG ) - { - ivas_orient_trk_SetTrackingType( pCrend->hCrend->hTrack, OTR_TRACKING_AVG_ORIENT ); - } - else - { - ivas_orient_trk_SetTrackingType( pCrend->hCrend->hTrack, OTR_TRACKING_REF_ORIENT ); - } - - /* get current subframe quaternion and convert to euler angles */ - Quat2Euler( hHeadTrackData->Quaternions[subframe_idx], &( pCrend->hCrend->m_fYaw ), &( pCrend->hCrend->m_fPitch ), &( pCrend->hCrend->m_fRoll ) ); - ivas_orient_trk_SetAbsoluteOrientation( pCrend->hCrend->hTrack, pCrend->hCrend->m_fYaw, pCrend->hCrend->m_fPitch, pCrend->hCrend->m_fRoll ); - - if ( ( error = ivas_orient_trk_Process( pCrend->hCrend->hTrack ) ) != IVAS_ERR_OK ) - { - return error; - } - - ivas_orient_trk_GetTrackedOrientation( pCrend->hCrend->hTrack, &( pCrend->hCrend->m_fYaw ), &( pCrend->hCrend->m_fPitch ), &( pCrend->hCrend->m_fRoll ) ); - } -#endif /* Rotation in SHD for: MC with elevation (5_1_2 / 5_1_4 / 7_1_4) -> BINAURAL diff --git a/lib_rend/ivas_orient_trk.c b/lib_rend/ivas_orient_trk.c index af71cbf543..b78809a759 100644 --- a/lib_rend/ivas_orient_trk.c +++ b/lib_rend/ivas_orient_trk.c @@ -57,7 +57,6 @@ * Local functions *------------------------------------------------------------------------------------------*/ -#ifdef FIX_I109_ORIENTATION_TRACKING /*------------------------------------------------------------------------------------------* * IdentityQuaternion() * @@ -375,45 +374,6 @@ static void VectorRotationToQuaternion( return; } #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#else -static float ClipAngle( - const float angle, - const float min_angle, - const float max_angle ) -{ - float result = angle; - - /* wrap angle modulo 2*pi into range of [-pi, pi> radians */ - /* 'while' assumed to use comparison to 0 */ - while ( result > EVS_PI ) - { - result -= PI2; - } - /* 'while' assumed to use comparison to 0 */ - while ( result <= -EVS_PI ) - { - result += PI2; - } - - /* Next, clip angle into range */ - /* 'if' assumed to use comparison to 0 */ - if ( result < min_angle ) - { - result = min_angle; - } - else - { - /* 'if' assumed to use comparison to 0 */ - if ( result > max_angle ) - { - result = max_angle; - } - } - - return result; -} - -#endif /*-------------------------------------------------------------------* * ivas_orient_trk_Init() @@ -421,14 +381,9 @@ static float ClipAngle( * *-------------------------------------------------------------------*/ -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error ivas_orient_trk_Init( -#else -void ivas_orient_trk_Init( -#endif ivas_orient_trk_state_t *pOTR ) /* i/o : orientation tracker handle */ { -#ifdef FIX_I109_ORIENTATION_TRACKING IVAS_QUATERNION identity; if ( pOTR == NULL ) @@ -438,10 +393,6 @@ void ivas_orient_trk_Init( identity.w = 1.0f; identity.x = identity.y = identity.z = 0.0f; -#else - /* Track relative to a reference orientation */ - pOTR->trackingType = OTR_TRACKING_REF_ORIENT; -#endif /* configuration parameters */ pOTR->centerAdaptationRate = 1.0f / 30.0f; @@ -451,7 +402,6 @@ void ivas_orient_trk_Init( /* initial adaptivity filter coefficient, will be auto-adapted */ pOTR->alpha = sinf( PI2 * pOTR->offCenterAdaptationRate / OTR_UPDATE_RATE ); /* start adaptation at off-center rate = fastest rate */ -#ifdef FIX_I109_ORIENTATION_TRACKING #ifdef OTR_REFERENCE_VECTOR_TRACKING pOTR->trkRot = identity; #endif /* OTR_REFERENCE_VECTOR_TRACKING */ @@ -463,27 +413,6 @@ void ivas_orient_trk_Init( pOTR->trackingType = OTR_TRACKING_NONE; return IVAS_ERR_OK; -#else - pOTR->absYaw = 0.0f; - pOTR->absPitch = 0.0f; - pOTR->absRoll = 0.0f; - - pOTR->absAvgYaw = 0.0f; - pOTR->absAvgPitch = 0.0f; - pOTR->absAvgRoll = 0.0f; - - /* Use frontal and horiontal orientation as reference orientation, - unless/until overridden by ivas_orient_trk_SetAbsoluteOrientation() */ - pOTR->refYaw = 0.0f; - pOTR->refPitch = 0.0f; - pOTR->refRoll = 0.0f; - - pOTR->trkYaw = 0.0f; - pOTR->trkPitch = 0.0f; - pOTR->trkRoll = 0.0f; - - return; -#endif } @@ -493,7 +422,6 @@ void ivas_orient_trk_Init( * *-------------------------------------------------------------------*/ -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error ivas_orient_trk_SetTrackingType( ivas_orient_trk_state_t *pOTR, /* i/o: orientation tracker handle */ const OTR_TRACKING_T trackingType /* i/o: orientation tracking type */ @@ -507,16 +435,7 @@ ivas_error ivas_orient_trk_SetTrackingType( return IVAS_ERR_OK; } -#else -void ivas_orient_trk_SetTrackingType( - ivas_orient_trk_state_t *pOTR, /* i/o : orientation tracker handle */ - const OTR_TRACKING_T trackingType ) /* i/o : orientation tracking type */ -{ - pOTR->trackingType = trackingType; -} -#endif -#ifdef FIX_I109_ORIENTATION_TRACKING /*-------------------------------------------------------------------* * ivas_orient_trk_SetReferenceRotation() * @@ -664,27 +583,6 @@ ivas_error ivas_orient_trk_SetReferenceVector( return IVAS_ERR_OK; } #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#else -/*-------------------------------------------------------------------* - * ivas_orient_trk_SetAbsoluteOrientation() - * - * - *-------------------------------------------------------------------*/ - -void ivas_orient_trk_SetAbsoluteOrientation( - ivas_orient_trk_state_t *pOTR, - const float yaw, - const float pitch, - const float roll ) -{ - /* TODO implement condition checks */ - pOTR->absYaw = yaw; - pOTR->absPitch = pitch; - pOTR->absRoll = roll; - - return; -} -#endif /*-------------------------------------------------------------------* @@ -693,7 +591,6 @@ void ivas_orient_trk_SetAbsoluteOrientation( * *-------------------------------------------------------------------*/ -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error ivas_orient_trk_Process( ivas_orient_trk_state_t *pOTR, /* i/o: orientation tracker handle */ IVAS_QUATERNION absRot, /* i : absolute head rotation */ @@ -785,138 +682,3 @@ ivas_error ivas_orient_trk_Process( return result; } -#else -ivas_error ivas_orient_trk_Process( - ivas_orient_trk_state_t *pOTR ) -{ - float yaw; - float pitch; - float roll; - - if ( pOTR->trackingType == OTR_TRACKING_AVG_ORIENT ) - { - float normalizedOrientation; - float relativeOrientationRate; - float rateRange; - float cutoffFrequency; - float alpha = pOTR->alpha; - - /* Copy absolute orientation as input to compute further on */ - yaw = pOTR->absYaw; - pitch = pOTR->absPitch; - roll = pOTR->absRoll; - - /* Compute average (low-pass filtered) absolute orientation */ - pOTR->absAvgYaw = ( 1.0f - alpha ) * pOTR->absAvgYaw + alpha * yaw; - pOTR->absAvgPitch = ( 1.0f - alpha ) * pOTR->absAvgPitch + alpha * pitch; - pOTR->absAvgRoll = ( 1.0f - alpha ) * pOTR->absAvgRoll + alpha * roll; - - /* Compute relative orientation = (absolute orientation) - (average absolute orientation) */ - yaw -= pOTR->absAvgYaw; - pitch -= pOTR->absAvgPitch; - roll -= pOTR->absAvgRoll; - - /* Clip tracked relative orientation to avoid wrap around */ - yaw = ClipAngle( yaw, -MAX_TRACKED_ANGLE_AVG_ORIENT, MAX_TRACKED_ANGLE_AVG_ORIENT ); - pitch = ClipAngle( pitch, -MAX_TRACKED_ANGLE_AVG_ORIENT, MAX_TRACKED_ANGLE_AVG_ORIENT ); - roll = ClipAngle( roll, -MAX_TRACKED_ANGLE_AVG_ORIENT, MAX_TRACKED_ANGLE_AVG_ORIENT ); - - /* Store relative orientation result as output */ - pOTR->trkYaw = yaw; - pOTR->trkPitch = pitch; - pOTR->trkRoll = roll; - - /* Reconstruct the mean absolute orientation, compensating for non-linear computation of relative orientation: - take absolute orientation and subtract the *clipped* mean relative orientation */ - pOTR->absAvgYaw = pOTR->absYaw - yaw; - pOTR->absAvgPitch = pOTR->absPitch - pitch; - pOTR->absAvgRoll = pOTR->absRoll - roll; - - /* Adapt LPF constant based on orientation excursion relative to current mean: - - low cutoff (slow adaptation) for small excursions (around center) - - high cutoff (fast adaptation) for large excursions (off-center) - */ - - normalizedOrientation = yaw * yaw; - normalizedOrientation += pitch * pitch; - normalizedOrientation += roll * roll; - - relativeOrientationRate = sqrtf( normalizedOrientation ) / pOTR->adaptationAngle; - /* 'if' assumed to perform comparison to 0 */ - if ( relativeOrientationRate > 1.0f ) - { - relativeOrientationRate = 1.0f; - } - - /* Compute range of the adaptation rate between center = lower rate and off-center = higher rate */ - rateRange = pOTR->offCenterAdaptationRate - pOTR->centerAdaptationRate; - /* 'if' assumed to perform comparison to 0 */ - if ( rateRange < 0.0f ) - { - rateRange = 0.0f; - } - - /* Compute adaptivity cutoff frequency: interpolate between minimum (center) and maximum (off-center) values */ - cutoffFrequency = pOTR->centerAdaptationRate + ( relativeOrientationRate * rateRange ); - - /* Compute filter coefficient corresponding to desired cutoff frequency */ - pOTR->alpha = sinf( 2.0f * EVS_PI * cutoffFrequency / OTR_UPDATE_RATE ); - } - else - { - /* 'if' assumed to perform comparison to 0 */ - if ( pOTR->trackingType == OTR_TRACKING_REF_ORIENT ) - { - /* Reset average orientation */ - pOTR->absAvgYaw = pOTR->absYaw; - pOTR->absAvgPitch = pOTR->absPitch; - pOTR->absAvgRoll = pOTR->absRoll; - - /* Reset adaptation filter - start adaptation at center rate */ - pOTR->alpha = sinf( 2.0f * EVS_PI * pOTR->centerAdaptationRate / OTR_UPDATE_RATE ); - - /* Copy absolute orientation as input to compute further on */ - yaw = pOTR->absYaw; - pitch = pOTR->absPitch; - roll = pOTR->absRoll; - - /* Compute relative orientation = (absolute orientation) - (reference orientation) */ - yaw -= pOTR->refYaw; - pitch -= pOTR->refPitch; - roll -= pOTR->refRoll; - - /* Clip computed relative orientation to avoid wrap around and store as output */ - pOTR->trkYaw = ClipAngle( yaw, -MAX_TRACKED_ANGLE_REF_ORIENT, MAX_TRACKED_ANGLE_REF_ORIENT ); - pOTR->trkPitch = ClipAngle( pitch, -MAX_TRACKED_ANGLE_REF_ORIENT, MAX_TRACKED_ANGLE_REF_ORIENT ); - pOTR->trkRoll = ClipAngle( roll, -MAX_TRACKED_ANGLE_REF_ORIENT, MAX_TRACKED_ANGLE_REF_ORIENT ); - } - - else - { - return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Non-supported orientation tracking adaptation type" ); - } - } - - return IVAS_ERR_OK; -} - - -/*-------------------------------------------------------------------* - * ivas_orient_trk_GetTrackedOrientation() - * - * - *-------------------------------------------------------------------*/ - -void ivas_orient_trk_GetTrackedOrientation( - ivas_orient_trk_state_t *pOTR, - float *yaw, - float *pitch, - float *roll ) -{ - *yaw = pOTR->trkYaw; - *pitch = pOTR->trkPitch; - *roll = pOTR->trkRoll; - - return; -} -#endif diff --git a/lib_rend/ivas_prot_rend.h b/lib_rend/ivas_prot_rend.h index 4c79280a86..d16f231564 100644 --- a/lib_rend/ivas_prot_rend.h +++ b/lib_rend/ivas_prot_rend.h @@ -493,9 +493,6 @@ ivas_error ivas_rend_openCrend( const AUDIO_CONFIG inConfig, const AUDIO_CONFIG outConfig, RENDER_CONFIG_DATA *hRendCfg, -#ifndef FIX_I109_ORIENTATION_TRACKING - int16_t Opt_Headrotation, -#endif HRTFS_CREND_HANDLE hSetOfHRTF, const int32_t output_Fs ); @@ -771,7 +768,6 @@ ivas_error ivas_headTrack_open( HEAD_TRACK_DATA_HANDLE *hHeadTrackData /* o : head track handle */ ); -#ifdef FIX_I109_ORIENTATION_TRACKING void ivas_headTrack_close( HEAD_TRACK_DATA_HANDLE *hHeadTrackData /* i/o: head track handle */ ); @@ -785,14 +781,6 @@ void Euler2Quat( float deg2rad( float degrees ); -#else -void Quat2Euler( - const IVAS_QUATERNION quat, /* i : quaternion describing the rotation */ - float *yaw, /* o : yaw (z) */ - float *pitch, /* o : pitch (y) */ - float *roll /* o : roll (x) */ -); -#endif void QuatToRotMat( @@ -872,24 +860,15 @@ ivas_error ivas_render_config_init_from_rom( * Orientation tracking *----------------------------------------------------------------------------------*/ -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error ivas_orient_trk_Init( -#else -void ivas_orient_trk_Init( -#endif ivas_orient_trk_state_t *pOTR /* i/o: orientation tracker handle */ ); -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error ivas_orient_trk_SetTrackingType( -#else -void ivas_orient_trk_SetTrackingType( -#endif ivas_orient_trk_state_t *pOTR, /* i/o: orientation tracker handle */ const OTR_TRACKING_T trackingType /* i : orientation tracking type */ ); -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error ivas_orient_trk_SetReferenceRotation( ivas_orient_trk_state_t *pOTR, /* i/o: orientatoin trakcer handle */ const IVAS_QUATERNION refRot /* i : reference rotation */ @@ -912,9 +891,7 @@ ivas_error ivas_orient_trk_GetTrackedRotation( ivas_orient_trk_state_t *pOTR, /* i/o: orientation tracker handle */ IVAS_QUATERNION *pRotation /* i/o: processed rotation */ ); -#endif -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error ivas_orient_trk_Process( ivas_orient_trk_state_t *pOTR, /* i/o: orientation tracker handle */ IVAS_QUATERNION absRot, /* i : absolute head rotation */ @@ -922,25 +899,6 @@ ivas_error ivas_orient_trk_Process( IVAS_QUATERNION *pTrkRot /* o : tracked rotation */ ); -#else -void ivas_orient_trk_SetAbsoluteOrientation( - ivas_orient_trk_state_t *pOTR, - const float yaw, - const float pitch, - const float roll -); - -ivas_error ivas_orient_trk_Process( - ivas_orient_trk_state_t *pOTR -); - -void ivas_orient_trk_GetTrackedOrientation( - ivas_orient_trk_state_t *pOTR, - float *yaw, - float *pitch, - float *roll -); -#endif /* clang-format on */ #endif /* IVAS_PROT_REND_H */ diff --git a/lib_rend/ivas_rotation.c b/lib_rend/ivas_rotation.c index 2a45c6d61a..0386a49c7d 100644 --- a/lib_rend/ivas_rotation.c +++ b/lib_rend/ivas_rotation.c @@ -68,7 +68,6 @@ ivas_error ivas_headTrack_open( ( *hHeadTrackData )->lrSwitchInterpVal = 0.0f; ( *hHeadTrackData )->lrSwitchedCurrent = 0; ( *hHeadTrackData )->lrSwitchedNext = 0; -#ifdef FIX_I109_ORIENTATION_TRACKING if ( ( ( *hHeadTrackData )->OrientationTracker = (ivas_orient_trk_state_t *) malloc( sizeof( ivas_orient_trk_state_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Orientation tracking" ); @@ -78,7 +77,6 @@ ivas_error ivas_headTrack_open( { return error; } -#endif /* Initialise Rmat_prev to I, Rmat will be computed later */ for ( i = 0; i < 3; i++ ) @@ -91,7 +89,6 @@ ivas_error ivas_headTrack_open( } -#ifdef FIX_I109_ORIENTATION_TRACKING /*-----------------------------------------------------------------------* * ivas_headTrack_close() * @@ -118,7 +115,6 @@ void ivas_headTrack_close( return; } -#endif /*---------------------------------------------------------------------------------- @@ -132,7 +128,6 @@ void QuatToRotMat( float Rmat[3][3] /* o : real-space rotation matrix for this rotation */ ) { -#ifdef FIX_I109_ORIENTATION_TRACKING Rmat[0][0] = quat.w * quat.w + quat.x * quat.x - quat.y * quat.y - quat.z * quat.z; Rmat[0][1] = 2.0f * ( quat.x * quat.y - quat.w * quat.z ); Rmat[0][2] = 2.0f * ( quat.x * quat.z + quat.w * quat.y ); @@ -144,109 +139,11 @@ void QuatToRotMat( Rmat[2][0] = 2.0f * ( quat.x * quat.z - quat.w * quat.y ); Rmat[2][1] = 2.0f * ( quat.y * quat.z + quat.w * quat.x ); Rmat[2][2] = quat.w * quat.w - quat.x * quat.x - quat.y * quat.y + quat.z * quat.z; -#else - float s1, s2, s3, c1, c2, c3; - -#ifdef DEBUGGING - /* PrintQuat( quat ); */ -#endif - - /* For debugging purposes we can also calculate the rotation matrix from - * Euler angles instead of quaternions. In this case, all the w values must - * be set to -3.0 in the trajectory file to signal switching to Euler angles. - * The x,y, and z components of the quaternion are then interpreted as -#ifdef FIX_I109_ORIENTATION_TRACKING - * yaw-pitch-roll. -#else // see below: "Euler angles in R_X(roll)*R_Y(pitch)*R_Z(yaw) convention" - * roll-pitch-yaw. -#endif - */ - if ( quat.w != -3.0 ) - { - Rmat[0][0] = quat.w * quat.w + quat.x * quat.x - quat.y * quat.y - quat.z * quat.z; - Rmat[0][1] = 2.0f * ( quat.x * quat.y - quat.w * quat.z ); - Rmat[0][2] = 2.0f * ( quat.x * quat.z + quat.w * quat.y ); - - Rmat[1][0] = 2.0f * ( quat.x * quat.y + quat.w * quat.z ); - Rmat[1][1] = quat.w * quat.w - quat.x * quat.x + quat.y * quat.y - quat.z * quat.z; - Rmat[1][2] = 2.0f * ( quat.y * quat.z - quat.w * quat.x ); - - Rmat[2][0] = 2.0f * ( quat.x * quat.z - quat.w * quat.y ); - Rmat[2][1] = 2.0f * ( quat.y * quat.z + quat.w * quat.x ); - Rmat[2][2] = quat.w * quat.w - quat.x * quat.x - quat.y * quat.y + quat.z * quat.z; - } - else - { - /* Euler angles in R_X(roll)*R_Y(pitch)*R_Z(yaw) convention - * - * yaw: rotate scene counter-clockwise in the horizontal plane - * pitch: rotate scene in the median plane, increase elevation with positive values - * roll: rotate scene from the right ear to the top - */ - - c1 = cosf( quat.z / _180_OVER_PI ); - c2 = cosf( quat.y / _180_OVER_PI ); - c3 = cosf( quat.x / _180_OVER_PI ); - - s1 = sinf( quat.z / _180_OVER_PI ); - s2 = sinf( -quat.y / _180_OVER_PI ); - s3 = sinf( quat.x / _180_OVER_PI ); - - Rmat[0][0] = c2 * c3; - Rmat[0][1] = -c2 * s3; - Rmat[0][2] = s2; - - Rmat[1][0] = c1 * s3 + c3 * s1 * s2; - Rmat[1][1] = c1 * c3 - s1 * s2 * s3; - Rmat[1][2] = -c2 * s1; - - Rmat[2][0] = s1 * s3 - c1 * c3 * s2; - Rmat[2][1] = c3 * s1 + c1 * s2 * s3; - Rmat[2][2] = c1 * c2; - } -#endif return; } -#ifndef FIX_I109_ORIENTATION_TRACKING -/*------------------------------------------------------------------------- - * Quat2Euler() - * - * Quaternion handling: calculate corresponding Euler angles in radians - *------------------------------------------------------------------------*/ -void Quat2Euler( - const IVAS_QUATERNION quat, /* i : quaternion describing the rotation */ - float *yaw, /* o : yaw (z) */ - float *pitch, /* o : pitch (y) */ - float *roll /* o : roll (x) */ -) -{ - if ( quat.w != -3.0 ) - { - *yaw = atan2f( 2 * ( quat.w * quat.x + quat.y * quat.z ), 1 - 2 * ( quat.x * quat.x + quat.y * quat.y ) ); - *pitch = asinf( 2 * ( quat.w * quat.y - quat.z * quat.x ) ); - *roll = atan2f( 2 * ( quat.w * quat.z + quat.x * quat.y ), 1 - 2 * ( quat.y * quat.y + quat.z * quat.z ) ); - } - else - { - /* Euler angles in R_X(roll)*R_Y(pitch)*R_Z(yaw) convention - * - * yaw: rotate scene counter-clockwise in the horizontal plane - * pitch: rotate scene in the median plane, increase elevation with positive values - * roll: rotate scene from the right ear to the top - */ - *yaw = quat.z; - *pitch = quat.y; - *roll = quat.x; - } - - return; -} -#endif - -#ifdef FIX_I109_ORIENTATION_TRACKING /*------------------------------------------------------------------------- * Euler2Quat() * @@ -294,7 +191,6 @@ float deg2rad( return PI_OVER_180 * degrees; } -#endif /*------------------------------------------------------------------------- * rotateAziEle() diff --git a/lib_rend/ivas_stat_rend.h b/lib_rend/ivas_stat_rend.h index 13c6084b2d..c0f12ef209 100644 --- a/lib_rend/ivas_stat_rend.h +++ b/lib_rend/ivas_stat_rend.h @@ -225,7 +225,6 @@ typedef struct EFAP * Orientation tracking structure *----------------------------------------------------------------------------------*/ -#ifdef FIX_I109_ORIENTATION_TRACKING typedef struct ivas_orient_trk_state_t { OTR_TRACKING_T trackingType; @@ -239,34 +238,6 @@ typedef struct ivas_orient_trk_state_t IVAS_QUATERNION trkRot; /* tracked rotation */ } ivas_orient_trk_state_t; -#else -typedef struct ivas_orient_trk_state_t -{ - OTR_TRACKING_T trackingType; - float centerAdaptationRate; - float offCenterAdaptationRate; - float adaptationAngle; - - float alpha; - - float absYaw; /* absolute orientation */ - float absPitch; - float absRoll; - - float absAvgYaw; /* average absolute orientation */ - float absAvgPitch; - float absAvgRoll; - - float refYaw; /* reference orientation */ - float refPitch; - float refRoll; - - float trkYaw; /* tracked orientation */ - float trkPitch; - float trkRoll; - -} ivas_orient_trk_state_t; -#endif /*----------------------------------------------------------------------------------* * Head rotation data structure @@ -280,9 +251,7 @@ typedef struct IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME]; #endif float crossfade[L_FRAME48k / RENDERER_HEAD_POSITIONS_PER_FRAME]; -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_orient_trk_state_t *hOrientationTracker; -#endif } IVAS_REND_HeadRotData; @@ -301,9 +270,7 @@ typedef struct ivas_binaural_head_track_struct float lrSwitchInterpVal; int16_t shd_rot_max_order; -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_orient_trk_state_t *OrientationTracker; -#endif } HEAD_TRACK_DATA, *HEAD_TRACK_DATA_HANDLE; diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 1dc1c1f956..dc3911125f 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -901,11 +901,7 @@ static ivas_error getEfapGains( return IVAS_ERR_OK; } -#ifdef FIX_I109_ORIENTATION_TRACKING static ivas_error initHeadRotation( -#else -static void initHeadRotation( -#endif IVAS_REND_HANDLE hIvasRend ) { int16_t i, crossfade_len; @@ -929,7 +925,6 @@ static void initHeadRotation( hIvasRend->headRotData.headPositions[i] = quaternionInit(); } -#ifdef FIX_I109_ORIENTATION_TRACKING if ( ( hIvasRend->headRotData.hOrientationTracker = (ivas_orient_trk_state_t *) malloc( sizeof( ivas_orient_trk_state_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Orientation tracking" ); @@ -941,12 +936,8 @@ static void initHeadRotation( } return IVAS_ERR_OK; -#else - return; -#endif } -#ifdef FIX_I109_ORIENTATION_TRACKING static void closeHeadRotation( IVAS_REND_HANDLE hIvasRend ) { @@ -957,7 +948,6 @@ static void closeHeadRotation( return; } -#endif static void initRotMatrix( rotation_matrix rot_mat ) @@ -1144,9 +1134,6 @@ static ivas_error setRendInputActiveIsm( else { if ( ( error = ivas_rend_openCrend( &inputIsm->crendWrapper, AUDIO_CONFIG_7_1_4, getIvasAudioConfigFromRendAudioConfig( outConfig ), hRendCfg, -#ifndef FIX_I109_ORIENTATION_TRACKING - 0, -#endif NULL, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; @@ -1859,9 +1846,6 @@ static ivas_error initMcBinauralRendering( { if ( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, ( inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) ? AUDIO_CONFIG_7_1_4 : getIvasAudioConfigFromRendAudioConfig( inConfig ), getIvasAudioConfigFromRendAudioConfig( outConfig ), hRendCfg, -#ifndef FIX_I109_ORIENTATION_TRACKING - 0, -#endif NULL, outSampleRate ) ) != IVAS_ERR_OK ) { return error; @@ -2130,9 +2114,6 @@ static ivas_error updateSbaPanGains( getIvasAudioConfigFromRendAudioConfig( inConfig ), getIvasAudioConfigFromRendAudioConfig( outConfig ), hRendCfg, -#ifndef FIX_I109_ORIENTATION_TRACKING - 0, -#endif NULL, *rendCtx.pOutSampleRate ); break; @@ -2146,9 +2127,6 @@ static ivas_error updateSbaPanGains( AUDIO_CONFIG_7_1_4, getIvasAudioConfigFromRendAudioConfig( outConfig ), hRendCfg, -#ifndef FIX_I109_ORIENTATION_TRACKING - 0, -#endif NULL, *rendCtx.pOutSampleRate ); break; @@ -2508,10 +2486,8 @@ static DecoderDummy *initDecoderDummy( decDummy->hHeadTrackData->lrSwitchInterpVal = 0.0f; decDummy->hHeadTrackData->lrSwitchedCurrent = 0; decDummy->hHeadTrackData->lrSwitchedNext = 0; -#ifdef FIX_I109_ORIENTATION_TRACKING decDummy->hHeadTrackData->OrientationTracker = (ivas_orient_trk_state_t *) malloc( sizeof( ivas_orient_trk_state_t ) ); ivas_orient_trk_Init( decDummy->hHeadTrackData->OrientationTracker ); -#endif } else { @@ -2592,12 +2568,10 @@ static void freeDecoderDummy( if ( pDecDummy->hHeadTrackData != NULL ) { -#ifdef FIX_I109_ORIENTATION_TRACKING if ( pDecDummy->hHeadTrackData->OrientationTracker != NULL ) { free( pDecDummy->hHeadTrackData->OrientationTracker ); } -#endif free( pDecDummy->hHeadTrackData ); } ivas_render_config_close( &pDecDummy->hRenderConfig ); @@ -2712,14 +2686,10 @@ ivas_error IVAS_REND_Open( } /* Initialize headrotation data */ -#ifdef FIX_I109_ORIENTATION_TRACKING if ( ( error = initHeadRotation( hIvasRend ) ) != IVAS_ERR_OK ) { return error; } -#else - initHeadRotation( hIvasRend ); -#endif /* Initialize EFAP */ if ( ( error = initEfap( &hIvasRend->efapOutWrapper, outConfig, &hIvasRend->customLsOut ) ) != IVAS_ERR_OK ) @@ -3840,9 +3810,7 @@ ivas_error IVAS_REND_SetHeadRotation( ) { int16_t i; -#ifdef FIX_I109_ORIENTATION_TRACKING IVAS_QUATERNION rotQuat; -#endif /* Validate function arguments */ if ( hIvasRend == NULL ) @@ -3865,7 +3833,6 @@ ivas_error IVAS_REND_SetHeadRotation( hIvasRend->headRotData.headRotEnabled = 1; for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) { -#ifdef FIX_I109_ORIENTATION_TRACKING /* check for Euler angle signaling */ if ( headRot[i].w == -3.0f ) { @@ -3877,9 +3844,6 @@ ivas_error IVAS_REND_SetHeadRotation( } ivas_orient_trk_Process( hIvasRend->headRotData.hOrientationTracker, rotQuat, FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES, &hIvasRend->headRotData.headPositions[i] ); -#else - hIvasRend->headRotData.headPositions[i] = headRot[i]; -#endif #ifdef TD5 hIvasRend->headRotData.Pos[i] = Pos[i]; #endif @@ -3890,7 +3854,6 @@ ivas_error IVAS_REND_SetHeadRotation( } -#ifdef FIX_I109_ORIENTATION_TRACKING /*-------------------------------------------------------------------* * IVAS_REND_SetOrientationTrackingMode() * @@ -4045,7 +4008,6 @@ ivas_error IVAS_REND_SetReferenceVector( return ivas_orient_trk_SetReferenceVector( hIvasRend->headRotData.hOrientationTracker, listenerPos, refPos ); } #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#endif /*-------------------------------------------------------------------* @@ -5659,9 +5621,7 @@ void IVAS_REND_Close( ivas_limiter_close( &hIvasRend->hLimiter ); -#ifdef FIX_I109_ORIENTATION_TRACKING closeHeadRotation( hIvasRend ); -#endif free( hIvasRend ); *phIvasRend = NULL; diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index b313bea5c1..3bd575adc2 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -252,7 +252,6 @@ ivas_error IVAS_REND_SetHeadRotation( #endif ); -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error IVAS_REND_SetOrientationTrackingMode( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ const uint8_t otrMode /* i : Orientation tracking mode */ @@ -280,7 +279,6 @@ ivas_error IVAS_REND_SetReferenceVector( const IVAS_VECTOR3 refPos /* i : Reference position */ ); #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#endif /* FIX_I109_ORIENTATION_TRACKING */ ivas_error IVAS_REND_GetSamples( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ diff --git a/lib_util/audio_file_writer.c b/lib_util/audio_file_writer.c index b27a8ceca6..81084dbd95 100644 --- a/lib_util/audio_file_writer.c +++ b/lib_util/audio_file_writer.c @@ -98,11 +98,7 @@ ivas_error AudioFileWriter_open( int8_t retCode; -#ifdef FIX_I109_ORIENTATION_TRACKING if ( ( fileNameLen > wavSuffixLen ) && ( strncmp( fileName + fileNameLen - wavSuffixLen, wavSuffix, wavSuffixLen ) == 0 ) ) -#else - if ( fileNameLen > wavSuffixLen && strncmp( fileName + fileNameLen - wavSuffixLen, wavSuffix, wavSuffixLen ) == 0 ) -#endif { retCode = AudioFileWriter_open_wav( self, fileName, sampleRate, numChannels ); } diff --git a/lib_util/head_rotation_file_reader.c b/lib_util/head_rotation_file_reader.c index 500fdd2b7a..b8f81d318d 100644 --- a/lib_util/head_rotation_file_reader.c +++ b/lib_util/head_rotation_file_reader.c @@ -91,7 +91,6 @@ ivas_error HeadRotationFileReader_open( * Read values from the trajectory file *-----------------------------------------------------------------------*/ -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error HeadRotationFileReading( HeadRotFileReader *headRotReader, /* i/o: HeadRotFileReader handle */ #ifdef TD5 @@ -150,66 +149,6 @@ ivas_error HeadRotationFileReading( return IVAS_ERR_OK; } -#else -ivas_error HeadRotationFileReading( - HeadRotFileReader *headRotReader, /* i/o: HeadRotFileReader handle */ - IVAS_QUATERNION *Quaternions, /* o : head-tracking data, listener orientation */ -#ifdef TD5 - IVAS_POSITION *Pos /* o : listener position */ -#else - const int32_t frame_dec /* i : decoded frame number */ -#endif -) -{ - uint16_t i; - float w, x, y, z; -#ifdef TD5 - float posx, posy, posz; - int32_t read_values; - - posx = 0.0f; - posy = 0.0f; - posz = 0.0f; -#endif - - for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) - { -#ifdef TD5 - read_values = fscanf( headRotReader->trajFile, "%f,%f,%f,%f,%f,%f,%f", &w, &x, &y, &z, &posx, &posy, &posz ); - if ( ( read_values != 4 ) && ( read_values != 7 ) ) /* Allow either orientation (4) or orientation+position (4+3) */ -#else - if ( 4 != fscanf( headRotReader->trajFile, "%f,%f,%f,%f", &w, &x, &y, &z ) ) -#endif - { - if ( feof( headRotReader->trajFile ) ) - { - rewind( headRotReader->trajFile ); - headRotReader->fileRewind = true; -#ifdef TD5 - return HeadRotationFileReading( headRotReader, Quaternions, Pos ); -#else - return HeadRotationFileReading( headRotReader, Quaternions, frame_dec ); -#endif - } - return IVAS_ERR_FAILED_FILE_PARSE; - } - - ( headRotReader->frameCounter )++; - - Quaternions[i].w = w; - Quaternions[i].x = x; - Quaternions[i].y = y; - Quaternions[i].z = z; -#ifdef TD5 - Pos[i].x = posx; - Pos[i].y = posy; - Pos[i].z = posz; -#endif - } - - return IVAS_ERR_OK; -} -#endif /*-----------------------------------------------------------------------* diff --git a/lib_util/head_rotation_file_reader.h b/lib_util/head_rotation_file_reader.h index d735423e2c..a4b87c6750 100644 --- a/lib_util/head_rotation_file_reader.h +++ b/lib_util/head_rotation_file_reader.h @@ -57,7 +57,6 @@ ivas_error HeadRotationFileReader_open( * Read values from the trajectory file *-----------------------------------------------------------------------*/ -#ifdef FIX_I109_ORIENTATION_TRACKING ivas_error HeadRotationFileReading( HeadRotFileReader *headRotReader, /* i/o: HeadRotFileReader handle */ #ifdef TD5 @@ -67,17 +66,6 @@ ivas_error HeadRotationFileReading( IVAS_QUATERNION *pQuaternion /* o : head-tracking data */ #endif ); -#else -ivas_error HeadRotationFileReading( - HeadRotFileReader *headRotReader, /* i/o: HeadRotFileReader handle */ - IVAS_QUATERNION *Quaternions, /* o : head-tracking data */ -#ifdef TD5 - IVAS_POSITION *Pos /* o : listener position */ -#else - const int32_t frame_dec /* i : decoded frame number */ -#endif -); -#endif /*-----------------------------------------------------------------------* * HeadRotationFileReader_close() -- GitLab From 94bbfb7ddd3af03d1b543570e18207f6a04d9d3e Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:32:03 +0200 Subject: [PATCH 02/12] [cleanup] accept BINAURALIZATION_DELAY_REPORT --- apps/decoder.c | 50 -------------------------------------------- lib_com/delay_comp.c | 8 ------- lib_com/options.h | 1 - lib_com/prot.h | 4 ---- lib_dec/lib_dec.c | 4 ---- lib_enc/lib_enc.c | 4 ---- 6 files changed, 71 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index fe6456defe..02da1fb01f 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -1263,11 +1263,7 @@ static ivas_error initOnFirstGoodFrame( if ( !arg.delayCompensationEnabled ) { -#ifdef BINAURALIZATION_DELAY_REPORT pFullDelayNumSamples[0] = 0; -#else - *pFullDelayNumSamples = 0; -#endif } #else if ( arg.delayCompensationEnabled ) @@ -1280,18 +1276,10 @@ static ivas_error initOnFirstGoodFrame( } else { -#ifdef BINAURALIZATION_DELAY_REPORT pFullDelayNumSamples[0] = 0; -#else - *pFullDelayNumSamples = 0; -#endif } #endif -#ifdef BINAURALIZATION_DELAY_REPORT *pRemainingDelayNumSamples = pFullDelayNumSamples[0]; -#else - *pRemainingDelayNumSamples = *pFullDelayNumSamples; -#endif if ( ( error = IVAS_DEC_GetNumOutputChannels( hIvasDec, pNumOutChannels ) ) != IVAS_ERR_OK ) { @@ -1459,11 +1447,7 @@ static ivas_error decodeG192( int16_t numInitialBadFrames = 0; /* Number of bad frames received until first good frame is decoded */ int16_t nOutChannels = 0; int16_t delayNumSamples = -1; -#ifdef BINAURALIZATION_DELAY_REPORT int16_t delayNumSamples_orig[3]; /* stores: overall delay, dec+rend delay, and binauralization delay */ -#else - int16_t delayNumSamples_orig = 0; -#endif int16_t nOutSamples = 0; int32_t delayTimeScale = 0; ivas_error error = IVAS_ERR_UNKNOWN; @@ -1489,9 +1473,7 @@ static ivas_error decodeG192( fprintf( stdout, "\n-- Start the decoder (quiet mode) --\n\n" ); } -#ifdef BINAURALIZATION_DELAY_REPORT delayNumSamples_orig[0] = -1; -#endif #ifdef WMOPS reset_stack(); @@ -1631,11 +1613,7 @@ static ivas_error decodeG192( arg, numInitialBadFrames, nOutSamples, -#ifdef BINAURALIZATION_DELAY_REPORT delayNumSamples_orig, -#else - &delayNumSamples_orig, -#endif &delayNumSamples, &delayTimeScale, &bsFormat, @@ -1749,13 +1727,8 @@ static ivas_error decodeG192( * Add zeros at the end to have equal length of synthesized signals *------------------------------------------------------------------------------------------*/ -#ifdef BINAURALIZATION_DELAY_REPORT memset( pcmBuf, 0, delayNumSamples_orig[0] * nOutChannels * sizeof( int16_t ) ); if ( ( error = AudioFileWriter_write( afWriter, pcmBuf, delayNumSamples_orig[0] * nOutChannels ) ) != IVAS_ERR_OK ) -#else - memset( pcmBuf, 0, delayNumSamples_orig * nOutChannels * sizeof( int16_t ) ); - if ( ( error = AudioFileWriter_write( afWriter, pcmBuf, delayNumSamples_orig * nOutChannels ) ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "\nError writing output file: %s\n", ivas_error_to_string( error ) ); goto cleanup; @@ -1767,7 +1740,6 @@ static ivas_error decodeG192( if ( !arg.quietModeEnabled ) { -#ifdef BINAURALIZATION_DELAY_REPORT printf( "\n\nDecoder+renderer delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * delayNumSamples_orig[1] / (float) delayTimeScale, delayNumSamples_orig[1], delayTimeScale ); if ( delayNumSamples_orig[2] > 0 ) @@ -1779,9 +1751,6 @@ static ivas_error decodeG192( printf( "Total delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * delayNumSamples_orig[0] / (float) delayTimeScale, delayNumSamples_orig[0], delayTimeScale ); #endif } -#else - fprintf( stdout, "\nDecoder delay: %-5u [samples] - Timescale: %5u\n", delayNumSamples_orig, delayTimeScale ); -#endif } /* Print output metadata file name(s) */ @@ -1970,11 +1939,7 @@ static ivas_error decodeVoIP( #endif JbmOffsetFileWriter *jbmOffsetWriter = NULL; -#ifdef BINAURALIZATION_DELAY_REPORT int16_t delayNumSamples_orig[3]; /* stores: overall delay, dec+rend delay, and binauralization delay */ -#else - int16_t delayNumSamples_orig = -1; -#endif int16_t delayNumSamples = -1; int32_t delayTimeScale = -1; @@ -1994,9 +1959,7 @@ static ivas_error decodeVoIP( ismWriters[i] = NULL; } -#ifdef BINAURALIZATION_DELAY_REPORT delayNumSamples_orig[0] = -1; -#endif rtpdumpDepacker.rtpdump = NULL; switch ( arg.inputFormat ) @@ -2193,11 +2156,7 @@ static ivas_error decodeVoIP( arg, numInitialBadFrames, nOutSamples, -#ifdef BINAURALIZATION_DELAY_REPORT delayNumSamples_orig, -#else - &delayNumSamples_orig, -#endif &delayNumSamples, &delayTimeScale, &bsFormat, @@ -2254,13 +2213,8 @@ static ivas_error decodeVoIP( * Add zeros at the end to have equal length of synthesized signals *------------------------------------------------------------------------------------------*/ -#ifdef BINAURALIZATION_DELAY_REPORT memset( pcmBuf, 0, delayNumSamples_orig[0] * nOutChannels * sizeof( int16_t ) ); if ( ( error = AudioFileWriter_write( afWriter, pcmBuf, delayNumSamples_orig[0] * nOutChannels ) ) != IVAS_ERR_OK ) -#else - memset( pcmBuf, 0, delayNumSamples_orig * nOutChannels * sizeof( int16_t ) ); - if ( ( error = AudioFileWriter_write( afWriter, pcmBuf, delayNumSamples_orig * nOutChannels ) ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "\nError writing output file: %s\n", ivas_error_to_string( error ) ); goto cleanup; @@ -2272,7 +2226,6 @@ static ivas_error decodeVoIP( if ( !arg.quietModeEnabled ) { -#ifdef BINAURALIZATION_DELAY_REPORT printf( "\n\nDecoder+renderer delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * delayNumSamples_orig[1] / (float) delayTimeScale, delayNumSamples_orig[1], delayTimeScale ); if ( delayNumSamples_orig[2] > 0 ) @@ -2284,9 +2237,6 @@ static ivas_error decodeVoIP( printf( "Total delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * delayNumSamples_orig[0] / (float) delayTimeScale, delayNumSamples_orig[0], delayTimeScale ); #endif } -#else - printf( "\nDecoder delay: %5u [samples] - Timescale: %5u\n", delayNumSamples_orig, delayTimeScale ); -#endif } /*------------------------------------------------------------------------------------------* diff --git a/lib_com/delay_comp.c b/lib_com/delay_comp.c index 9f8c1c7b9b..b96798815e 100644 --- a/lib_com/delay_comp.c +++ b/lib_com/delay_comp.c @@ -55,10 +55,6 @@ int32_t get_delay( const int32_t io_fs, /* i : input/output sampling frequency */ const IVAS_FORMAT ivas_format, /* i : IVAS format */ HANDLE_CLDFB_FILTER_BANK hCldfb /* i : Handle of Cldfb analysis */ -#ifndef BINAURALIZATION_DELAY_REPORT - , - const int32_t binaural_latency_ns /* i : binaural renderer HRTF delay in ns */ -#endif ) { int32_t delay = 0; @@ -110,10 +106,6 @@ int32_t get_delay( delay += IVAS_FB_DEC_DELAY_NS; } -#ifndef BINAURALIZATION_DELAY_REPORT - /* compensate for binauralization delay */ - delay += binaural_latency_ns; -#endif #ifdef FIX_350_MASA_DELAY_COMP if ( ivas_format == MASA_FORMAT ) diff --git a/lib_com/options.h b/lib_com/options.h index 86f892db4a..bc1db07c2b 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -143,7 +143,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define SBA_HPF_TUNING_DEC*/ -#define BINAURALIZATION_DELAY_REPORT /* VA: Issue 255 - Changes the way the decoder delay is reported */ #define TUNE_360_OBJECT_WITH_NOISE /* VA: issue 360: consider objects being speech+noise for active speech coding */ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ #define FIX_372_LIB_REND_VALIDATE_IO /* FhG: Issue 372: IVAS_rend segfaults with unsupported I/O configs - add validation checks of I/O config */ diff --git a/lib_com/prot.h b/lib_com/prot.h index c8f69fe832..e89037076e 100644 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -681,10 +681,6 @@ int32_t get_delay( const int32_t io_fs, /* i : input/output sampling frequency */ const IVAS_FORMAT ivas_format, /* i : IVAS format */ HANDLE_CLDFB_FILTER_BANK hCldfb /* i : Handle of Cldfb analysis */ -#ifndef BINAURALIZATION_DELAY_REPORT - , - const int32_t binaural_latency_ns /* i : binauralization delay in ns */ -#endif ); void decision_matrix_enc( diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index bcbf60a9d3..2939b352c6 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1256,13 +1256,9 @@ ivas_error IVAS_DEC_GetDelay( st_ivas = hIvasDec->st_ivas; hDecoderConfig = st_ivas->hDecoderConfig; -#ifdef BINAURALIZATION_DELAY_REPORT nSamples[1] = NS2SA( hDecoderConfig->output_Fs, get_delay( DEC, hDecoderConfig->output_Fs, st_ivas->ivas_format, st_ivas->cldfbAnaDec[0] ) ); nSamples[2] = (int16_t) roundf( (float) st_ivas->binaural_latency_ns * hDecoderConfig->output_Fs / 1000000000.f ); nSamples[0] = nSamples[1] + nSamples[2]; -#else - *nSamples = (int16_t) roundf( (float) get_delay( DEC, hDecoderConfig->output_Fs, st_ivas->ivas_format, st_ivas->cldfbAnaDec[0], st_ivas->binaural_latency_ns ) * hDecoderConfig->output_Fs / 1000000000.f ); -#endif *timeScale = hDecoderConfig->output_Fs; diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 50052cda3c..6f5af7c231 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -978,11 +978,7 @@ ivas_error IVAS_ENC_GetDelay( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } -#ifdef BINAURALIZATION_DELAY_REPORT *delay = NS2SA( hEncoderConfig->input_Fs, get_delay( ENC, hEncoderConfig->input_Fs, hEncoderConfig->ivas_format, NULL ) ); -#else - *delay = NS2SA( hEncoderConfig->input_Fs, get_delay( ENC, hEncoderConfig->input_Fs, hEncoderConfig->ivas_format, NULL, 0 ) ); -#endif *delay *= hEncoderConfig->nchan_inp; -- GitLab From 5f300f7af316e2ee1c31371e91fd612502517ae4 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:33:08 +0200 Subject: [PATCH 03/12] [cleanup] accept TUNE_360_OBJECT_WITH_NOISE --- lib_com/options.h | 1 - lib_enc/ivas_ism_metadata_enc.c | 63 --------------------------------- 2 files changed, 64 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index bc1db07c2b..caa19025cc 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -143,7 +143,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define SBA_HPF_TUNING_DEC*/ -#define TUNE_360_OBJECT_WITH_NOISE /* VA: issue 360: consider objects being speech+noise for active speech coding */ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ #define FIX_372_LIB_REND_VALIDATE_IO /* FhG: Issue 372: IVAS_rend segfaults with unsupported I/O configs - add validation checks of I/O config */ #define FIX_376_SBA_ROTATE /*DLB: Fix for issue 376*/ diff --git a/lib_enc/ivas_ism_metadata_enc.c b/lib_enc/ivas_ism_metadata_enc.c index 1540e35ce4..640ee49fbf 100644 --- a/lib_enc/ivas_ism_metadata_enc.c +++ b/lib_enc/ivas_ism_metadata_enc.c @@ -196,11 +196,7 @@ ivas_error ivas_ism_metadata_enc( ) { #ifdef TD5 -#ifdef TUNE_360_OBJECT_WITH_NOISE int16_t i, ch, nb_bits_start = 0; -#else - int16_t i, ch, nb_bits_start = 0, diff; -#endif int16_t idx_azimuth_abs = 0, flag_abs_azimuth[MAX_NUM_OBJECTS]; int16_t idx_elevation_abs = 0, flag_abs_elevation[MAX_NUM_OBJECTS]; int16_t flag_abs_azimuth_orientation[MAX_NUM_OBJECTS]; @@ -274,7 +270,6 @@ ivas_error ivas_ism_metadata_enc( else if ( ism_mode == ISM_MODE_DISC ) { #ifdef TD5 -#ifdef TUNE_360_OBJECT_WITH_NOISE #ifdef DISCRETE_ISM_DTX_CNG hIsmMeta[ch]->ism_metadata_flag = localVAD[ch] || hSCE[ch]->hCoreCoder[0]->lp_noise > 10; #else @@ -285,44 +280,7 @@ ivas_error ivas_ism_metadata_enc( } #endif #else - if ( hIsmMeta[ch]->ism_metadata_flag ) - { - /* at highest bitrates (with TCX core only) metadata are sent also for inactive frames */ - if ( localVAD[ch] == 0 && !( hSCE[ch]->hCoreCoder[0]->tcxonly ) ) - { - /* send metadata even in inactive segments when noise is audible and metadata are changing */ - diff = (int16_t) fabsf( hIsmMeta[ch]->azimuth - ism_dequant_meta( hIsmMeta[ch]->angle[0].last_azimuth_idx, ism_azimuth_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_AZIMUTH_NBITS ) ); - diff = max( diff, (int16_t) fabsf( hIsmMeta[ch]->elevation - ism_dequant_meta( hIsmMeta[ch]->angle[0].last_elevation_idx, ism_elevation_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_ELEVATION_NBITS ) ) ); - if ( ism_total_brate >= ISM_EXTENDED_METADATA_BRATE && ism_extended_metadata_flag ) - { - diff = max( diff, (int16_t) fabsf( hIsmMeta[ch]->yaw - ism_dequant_meta( hIsmMeta[ch]->angle[1].last_azimuth_idx, ism_azimuth_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_AZIMUTH_NBITS ) ) ); - diff = max( diff, (int16_t) fabsf( hIsmMeta[ch]->pitch - ism_dequant_meta( hIsmMeta[ch]->angle[1].last_elevation_idx, ism_elevation_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_ELEVATION_NBITS ) ) ); - } - if ( !( hSCE[ch]->hCoreCoder[0]->lp_noise > 15 && diff >= 10 ) ) - { - hIsmMeta[ch]->ism_metadata_flag = 0; - } - } - } -#endif -#else -#ifdef TUNE_360_OBJECT_WITH_NOISE hIsmMeta[ch]->ism_metadata_flag = localVAD[ch] || hSCE[ch]->hCoreCoder[0]->lp_noise > 10; -#else - hIsmMeta[ch]->ism_metadata_flag = localVAD[ch]; - - if ( hIsmMeta[ch]->ism_metadata_flag == 0 ) - { - /* send metadata even in inactive segments when noise is audible and metadata are changing */ - diff = (int16_t) fabsf( hIsmMeta[ch]->azimuth - ism_dequant_meta( hIsmMeta[ch]->last_azimuth_idx, ism_azimuth_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_AZIMUTH_NBITS ) ); - diff = max( diff, (int16_t) fabsf( hIsmMeta[ch]->elevation - ism_dequant_meta( hIsmMeta[ch]->last_elevation_idx, ism_elevation_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_ELEVATION_NBITS ) ) ); - - if ( hSCE[ch]->hCoreCoder[0]->lp_noise > 15 && diff >= 10 ) - { - hIsmMeta[ch]->ism_metadata_flag = 1; - } - } -#endif if ( hSCE[ch]->hCoreCoder[0]->tcxonly ) { @@ -339,27 +297,6 @@ ivas_error ivas_ism_metadata_enc( rate_ism_importance( nchan_transport, hIsmMeta, hSCE, ism_imp ); -#ifndef TUNE_360_OBJECT_WITH_NOISE - /* relax the importance decision in "stereo" coding for noisy audio */ - if ( ism_mode == ISM_MODE_DISC && nchan_ism == 2 ) - { - float diff_F; - - if ( hIsmMeta[0]->ism_metadata_flag ^ hIsmMeta[1]->ism_metadata_flag ) - { - for ( ch = 0; ch < nchan_ism; ch++ ) - { - diff_F = hSCE[ch]->hCoreCoder[0]->lp_speech - hSCE[ch]->hCoreCoder[0]->lp_noise; - - if ( hIsmMeta[ch]->ism_metadata_flag == 0 && diff_F < 25.0f ) - { - hIsmMeta[ch]->ism_metadata_flag = 1; - ism_imp[ch] = ISM_LOW_IMP; - } - } - } - } -#endif /*----------------------------------------------------------------* * Write ISM common signaling -- GitLab From dcdae3bbaa93c152e7f05ae1ff84cbc6f5fb24d4 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:35:58 +0200 Subject: [PATCH 04/12] [cleanup] accept FIX_372_LIB_REND_VALIDATE_IO --- lib_com/options.h | 1 - 1 file changed, 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index caa19025cc..646e28712f 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define SBA_HPF_TUNING_DEC*/ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ -#define FIX_372_LIB_REND_VALIDATE_IO /* FhG: Issue 372: IVAS_rend segfaults with unsupported I/O configs - add validation checks of I/O config */ #define FIX_376_SBA_ROTATE /*DLB: Fix for issue 376*/ #define TD5 /* Eri: Contribution 17: Extended metadata for 6 DoF rendering in TD renderer */ #define TD5_FIX_INVALID_MEMORY_ACCESS /* FhG: Resolves segfault in case IVAS_REND_InitConfig gets initialized with rendererConfigEnabled:=false && ISM are being rendered */ -- GitLab From 2f1c8b423206927973fe5a12fae4930581488edf Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:36:32 +0200 Subject: [PATCH 05/12] [cleanup] accept FIX_376_SBA_ROTATE --- lib_com/options.h | 1 - lib_rend/lib_rend.c | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 646e28712f..fd3ec5b506 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define SBA_HPF_TUNING_DEC*/ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ -#define FIX_376_SBA_ROTATE /*DLB: Fix for issue 376*/ #define TD5 /* Eri: Contribution 17: Extended metadata for 6 DoF rendering in TD renderer */ #define TD5_FIX_INVALID_MEMORY_ACCESS /* FhG: Resolves segfault in case IVAS_REND_InitConfig gets initialized with rendererConfigEnabled:=false && ISM are being rendered */ #define FIX_371_DELAY_REPORT /* Issue 371: div. by zero with -no_delay_cmp */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index dc3911125f..4e6ec67da7 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -4285,7 +4285,6 @@ static ivas_error rotateFrameSba( ( 1 - headRotData->crossfade[i] ) * gains_prev[n][m] * ( *readPtr ); } } -#ifdef FIX_376_SBA_ROTATE /* write back the result */ for ( n = m1; n < m2; n++ ) { @@ -4294,18 +4293,7 @@ static ivas_error rotateFrameSba( } m1 = m2; m2 += 2 * ( l + 1 ) + 1; -#endif - } -#ifndef FIX_376_SBA_ROTATE - /* write back the result */ - for ( n = m1; n < m2; n++ ) - { - writePtr = getSmplPtr( outAudio, n, subframe_idx * subframe_len + i ); - ( *writePtr ) = tmpRot[n - m1]; } - m1 = m2; - m2 += 2 * ( l + 1 ) + 1; -#endif } /*unoptimized code for reference (full matrix multiplication)*/ -- GitLab From de26f332467a66f533d2a042a8c46ad983ab884a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:37:43 +0200 Subject: [PATCH 06/12] [cleanup] accept TD5_FIX_INVALID_MEMORY_ACCESS TD5 --- apps/decoder.c | 22 -- apps/encoder.c | 15 -- apps/renderer.c | 65 ----- lib_com/common_api_types.h | 8 - lib_com/ivas_cnst.h | 8 - lib_com/ivas_ism_com.c | 4 - lib_com/ivas_prot.h | 8 - lib_com/ivas_stat_com.h | 9 - lib_com/options.h | 2 - lib_dec/ivas_ism_metadata_dec.c | 190 --------------- lib_dec/ivas_objectRenderer_internal.c | 9 - lib_dec/lib_dec.c | 14 -- lib_dec/lib_dec.h | 4 - lib_enc/ivas_ism_enc.c | 16 -- lib_enc/ivas_ism_metadata_enc.c | 316 ------------------------- lib_enc/ivas_stat_enc.h | 2 - lib_enc/lib_enc.c | 14 -- lib_enc/lib_enc.h | 4 - lib_rend/ivas_objectRenderer.c | 77 ------ lib_rend/ivas_objectRenderer_hrFilt.c | 7 - lib_rend/ivas_objectRenderer_sfx.c | 8 - lib_rend/ivas_objectRenderer_sources.c | 14 -- lib_rend/ivas_objectRenderer_vec.c | 17 -- lib_rend/ivas_prot_rend.h | 18 -- lib_rend/ivas_render_config.c | 2 - lib_rend/ivas_stat_rend.h | 6 - lib_rend/lib_rend.c | 22 -- lib_rend/lib_rend.h | 4 - lib_util/head_rotation_file_reader.c | 16 -- lib_util/head_rotation_file_reader.h | 4 - lib_util/ism_file_reader.c | 23 -- lib_util/ism_file_writer.c | 11 - lib_util/render_config_reader.c | 2 - 33 files changed, 941 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 02da1fb01f..7eb003fbe4 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -444,17 +444,9 @@ int main( IVAS_RENDER_CONFIG_DATA renderConfig; /* sanity check */ -#ifdef TD5 if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL ) -#else - if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM ) -#endif { -#ifdef TD5 fprintf( stderr, "\nExternal Renderer Config is supported only for BINAURAL and BINAURAL_ROOM. Exiting. \n\n" ); -#else - fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n\n" ); -#endif goto cleanup; } @@ -1453,9 +1445,7 @@ static ivas_error decodeG192( ivas_error error = IVAS_ERR_UNKNOWN; uint16_t numObj = 0; IVAS_DEC_BS_FORMAT bsFormat = IVAS_DEC_BS_UNKOWN; -#ifdef TD5 IVAS_POSITION Pos[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES]; -#endif IsmFileWriter *ismWriters[IVAS_MAX_NUM_OBJECTS]; for ( i = 0; i < IVAS_MAX_NUM_OBJECTS; ++i ) @@ -1545,11 +1535,7 @@ static ivas_error decodeG192( if ( arg.enableReferenceRotation ) { IVAS_QUATERNION quaternion; -#ifdef TD5 if ( ( error = HeadRotationFileReading( refRotReader, &quaternion, NULL ) ) != IVAS_ERR_OK ) -#else - if ( ( error = HeadRotationFileReading( refRotReader, &quaternion ) ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "\nError %s while reading reference rotation from %s\n", IVAS_DEC_GetErrorMessage( error ), HeadRotationFileReader_getFilePath( refRotReader ) ); goto cleanup; @@ -1568,22 +1554,14 @@ static ivas_error decodeG192( for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { -#ifdef TD5 if ( ( error = HeadRotationFileReading( headRotReader, &Quaternions[i], &Pos[i] ) ) != IVAS_ERR_OK ) -#else - if ( ( error = HeadRotationFileReading( headRotReader, &Quaternions[i] ) ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "\nError %s while reading head orientation from %s\n", IVAS_DEC_GetErrorMessage( error ), HeadRotationFileReader_getFilePath( headRotReader ) ); goto cleanup; } } -#ifdef TD5 if ( ( error = IVAS_DEC_FeedHeadTrackData( hIvasDec, Quaternions, Pos ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_FeedHeadTrackData( hIvasDec, Quaternions ) ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "\nIVAS_DEC_FeedHeadTrackData failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; diff --git a/apps/encoder.c b/apps/encoder.c index ff6f461838..aae2e1e88e 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -126,9 +126,7 @@ typedef struct #endif #endif bool pca; -#ifdef TD5 bool ism_extended_metadata; -#endif } EncArguments; @@ -381,11 +379,7 @@ int main( } break; case IVAS_ENC_INPUT_ISM: -#ifdef TD5 if ( ( error = IVAS_ENC_ConfigureForObjects( hIvasEnc, arg.inputFs, totalBitrate, arg.max_bwidth_user, bandwidth, arg.dtxConfig, arg.inputFormatConfig.ism.numObjects, arg.ism_extended_metadata ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_ENC_ConfigureForObjects( hIvasEnc, arg.inputFs, totalBitrate, arg.max_bwidth_user, bandwidth, arg.dtxConfig, arg.inputFormatConfig.ism.numObjects ) ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "\nIVAS_ENC_ConfigureForObjects failed: %s\n\n", IVAS_ENC_GetErrorMessage( error ) ); goto cleanup; @@ -883,9 +877,7 @@ static void initArgStruct( EncArguments *arg ) arg->caConfig = IVAS_ENC_GetDefaultChannelAwareConfig(); arg->ca_config_file = NULL; arg->mimeOutput = false; -#ifdef TD5 arg->ism_extended_metadata = false; -#endif #ifdef DEBUGGING arg->forcedMode = IVAS_ENC_FORCE_UNFORCED; @@ -1273,13 +1265,11 @@ static bool parseCmdlIVAS_enc( if ( i < argc - 4 ) { -#ifdef TD5 if ( argv[i][0] == '+' ) { argv[i]++; arg->ism_extended_metadata = true; } -#endif if ( !is_digits_only( argv[i] ) ) { fprintf( stderr, "Error: Number of ISM channels must be an integer number!\n\n" ); @@ -1660,14 +1650,9 @@ static void usage_enc( void ) fprintf( stdout, "EVS mono is default, for IVAS choose one of the following: -stereo, -ism, -sba, -masa, -mc\n" ); fprintf( stdout, "-stereo [Mode] : Stereo format, default is unified stereo \n" ); fprintf( stdout, " optional for Mode: 1: DFT Stereo, 2: TD Stereo, 3: MDCT Stereo\n" ); -#ifdef TD5 fprintf( stdout, "-ism (+)Ch Files : ISM format \n" ); fprintf( stdout, " where Ch specifies the number of ISMs (1-4)\n" ); fprintf( stdout, " where positive (+) means extended metadata format is used (including orientation and radius) \n" ); -#else - fprintf( stdout, "-ism Channels Files : ISM format \n" ); - fprintf( stdout, " where Channels specifies the number of ISMs (1-4)\n" ); -#endif fprintf( stdout, " and Files specify input files containing metadata, one file per object\n" ); fprintf( stdout, " (use NULL for no input metadata)\n" ); fprintf( stdout, "-sba +/-Order : Scene Based Audio input format (Ambisonics ACN/SN3D),\n" ); diff --git a/apps/renderer.c b/apps/renderer.c index e28063ff2e..d4671ae656 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -550,9 +550,7 @@ int main( int32_t delayTimeScale = 0; int16_t i, numChannels; ivas_error error = IVAS_ERR_OK; -#ifdef TD5 IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME]; -#endif #ifdef WMOPS reset_wmops(); @@ -693,11 +691,7 @@ int main( } /* === Configure === */ -#ifdef TD5 if ( ( error = IVAS_REND_InitConfig( hIvasRend, ( args.outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) || ( args.outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL ) ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_REND_InitConfig( hIvasRend, strlen( args.renderConfigFilePath ) != 0 ) ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "Error in Renderer Config Init\n" ); exit( -1 ); @@ -708,17 +702,9 @@ int main( IVAS_RENDER_CONFIG_DATA renderConfig; /* sanity check */ -#ifdef TD5 if ( ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) && ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL ) ) -#else - if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) -#endif { -#ifdef TD5 fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL or BINAURAL_ROOM is used as output. Exiting. \n" ); -#else - fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" ); -#endif exit( -1 ); } @@ -965,11 +951,7 @@ int main( if ( referenceRotReader != NULL ) { IVAS_QUATERNION quaternion; -#ifdef TD5 if ( ( error = HeadRotationFileReading( referenceRotReader, &quaternion, NULL ) ) != IVAS_ERR_OK ) -#else - if ( HeadRotationFileReading( referenceRotReader, &quaternion ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "Error in Head Rotation File Reading: %s\n", ivas_error_to_string( error ) ); exit( -1 ); @@ -989,21 +971,13 @@ int main( for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) { -#ifdef TD5 if ( ( error = HeadRotationFileReading( headRotReader, &quatBuffer[i], &Pos[i] ) ) != IVAS_ERR_OK ) -#else - if ( HeadRotationFileReading( headRotReader, &quatBuffer[i] ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "Error in Head Rotation File Reading: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } } -#ifdef TD5 if ( ( error = IVAS_REND_SetHeadRotation( hIvasRend, quatBuffer, Pos ) ) != IVAS_ERR_OK ) -#else - if ( IVAS_REND_SetHeadRotation( hIvasRend, quatBuffer ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "Error setting Head Rotation: %s\n", ivas_error_to_string( error ) ); exit( -1 ); @@ -1011,11 +985,7 @@ int main( } else { -#ifdef TD5 if ( ( ( error = IVAS_REND_SetHeadRotation( hIvasRend, NULL, NULL ) ) != IVAS_ERR_OK ) && ( IVAS_REND_SetHeadRotation( hIvasRend, NULL, NULL ) != IVAS_ERR_INVALID_OUTPUT_FORMAT ) ) // VE: TBC -#else - if ( ( IVAS_REND_SetHeadRotation( hIvasRend, NULL ) != IVAS_ERR_OK ) && ( IVAS_REND_SetHeadRotation( hIvasRend, NULL ) != IVAS_ERR_INVALID_OUTPUT_FORMAT ) ) -#endif { fprintf( stderr, "Error setting Head Rotation: %s\n", ivas_error_to_string( error ) ); exit( -1 ); @@ -1877,11 +1847,9 @@ void getMetadataFromFileReader( objectMetadataBuffer->positions[objIdx].azimuth = ismMetadata.azimuth; objectMetadataBuffer->positions[objIdx].elevation = ismMetadata.elevation; -#ifdef TD5 objectMetadataBuffer->positions[objIdx].radius = ismMetadata.radius; objectMetadataBuffer->positions[objIdx].yaw = ismMetadata.yaw; objectMetadataBuffer->positions[objIdx].pitch = ismMetadata.pitch; -#endif return; } @@ -1936,11 +1904,9 @@ static void IsmPositionProvider_getNextFrame( { objectMetadataBuffer->positions[objIdx].azimuth = 0.0f; objectMetadataBuffer->positions[objIdx].elevation = 0.0f; -#ifdef TD5 objectMetadataBuffer->positions[objIdx].radius = 1.0f; objectMetadataBuffer->positions[objIdx].yaw = 0.0f; objectMetadataBuffer->positions[objIdx].pitch = 0.0f; -#endif } /* Wrap azimuth to lie within (-180, 180] range */ @@ -1955,7 +1921,6 @@ static void IsmPositionProvider_getNextFrame( /* Clamp elevation to lie within [-90, 90] range (can't be wrapped easily) */ objectMetadataBuffer->positions[objIdx].elevation = min( max( objectMetadataBuffer->positions[objIdx].elevation, -90 ), 90 ); -#ifdef TD5 /* Wrap yaw to lie within (-180, 180] range */ while ( objectMetadataBuffer->positions[objIdx].yaw < 0.0f ) { @@ -1968,7 +1933,6 @@ static void IsmPositionProvider_getNextFrame( /* Clamp pitch to lie within [-90, 90] range (can't be wrapped easily) */ objectMetadataBuffer->positions[objIdx].pitch = min( max( objectMetadataBuffer->positions[objIdx].pitch, -90 ), 90 ); -#endif } ++positionProvider->frameCounter; @@ -2203,7 +2167,6 @@ static void parseObjectPosition( uint16_t *positionDuration ) { char *endptr; -#ifdef TD5 int16_t read_values; float meta_prm[7] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f }; @@ -2224,34 +2187,6 @@ static void parseObjectPosition( position->radius = meta_prm[2]; position->yaw = meta_prm[5]; position->pitch = meta_prm[6]; -#else - - readNextMetadataChunk( line, "," ); - *positionDuration = (uint16_t) strtol( line, &endptr, 10 ); - - if ( *endptr != '\0' ) - { - fprintf( stderr, "Error reading metadata\n" ); - exit( -1 ); - } - - readNextMetadataChunk( line, "," ); - position->azimuth = strtof( line, &endptr ); - - if ( *endptr != '\0' ) - { - fprintf( stderr, "Error reading metadata\n" ); - exit( -1 ); - } - - readNextMetadataChunk( line, "\n" ); - position->elevation = strtof( line, &endptr ); - if ( *endptr != '\0' ) - { - fprintf( stderr, "Error reading metadata\n" ); - exit( -1 ); - } -#endif return; } diff --git a/lib_com/common_api_types.h b/lib_com/common_api_types.h index 0ca4d6b461..24811daca1 100644 --- a/lib_com/common_api_types.h +++ b/lib_com/common_api_types.h @@ -78,10 +78,8 @@ typedef struct _IVAS_ISM_METADATA float radius; float spread; float gainFactor; -#ifdef TD5 float yaw; float pitch; -#endif } IVAS_ISM_METADATA; typedef struct @@ -97,13 +95,11 @@ typedef struct } IVAS_VECTOR3; #endif /* OTR_REFERENCE_VECTOR_TRACKING */ -#ifdef TD5 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 @@ -130,11 +126,9 @@ typedef struct { float azimuth; float elevation; -#ifdef TD5 float radius; float yaw; float pitch; -#endif } IVAS_REND_AudioObjectPosition; typedef struct _IVAS_ROOM_ACOUSTICS_CONFIG @@ -156,9 +150,7 @@ typedef struct _IVAS_RENDER_CONFIG IVAS_RENDER_TYPE_OVERRIDE renderer_type_override; #endif IVAS_ROOM_ACOUSTICS_CONFIG_DATA room_acoustics; -#ifdef TD5 float directivity[3]; -#endif } IVAS_RENDER_CONFIG_DATA, *IVAS_RENDER_CONFIG_HANDLE; typedef struct _IVAS_LS_CUSTOM_LAYOUT diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index e97939b8a6..7f434feccd 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -320,13 +320,11 @@ typedef enum #define ISM_Q_STEP 2.5f #define ISM_Q_STEP_BORDER 5.0f -#ifdef TD5 #define ISM_RADIUS_NBITS 6 #define ISM_RADIUS_MIN 0.0f #define ISM_RADIUS_DELTA 0.25f /* Max radius = (2^ISM_RADIUS_NBITS-1)*0.25 = 15.75 */ #define ISM_EXTENDED_METADATA_BRATE IVAS_64k #define ISM_EXTENDED_METADATA_BITS 1 -#endif /* Parametric ISM */ #define MAX_PARAM_ISM_NBANDS 11 @@ -374,12 +372,8 @@ typedef enum enum { IND_ISM_NUM_OBJECTS, -#ifdef TD5 IND_ISM_EXTENDED_FLAG = IND_ISM_NUM_OBJECTS + MAX_NUM_OBJECTS, IND_ISM_METADATA_FLAG = IND_ISM_EXTENDED_FLAG + MAX_NUM_OBJECTS, /* EN2VE: Is this not supposed to be in the loop part below, since it is one per ISM? */ -#else - IND_ISM_METADATA_FLAG = IND_ISM_NUM_OBJECTS + MAX_NUM_OBJECTS, -#endif IND_ISM_VAD_FLAG = IND_ISM_METADATA_FLAG + MAX_NUM_OBJECTS, #ifdef DISCRETE_ISM_DTX_CNG IND_ISM_NOISY_SPEECH_FLAG = IND_ISM_VAD_FLAG + MAX_NUM_OBJECTS, @@ -396,10 +390,8 @@ enum IND_ISM_AZIMUTH = TAG_ISM_LOOP_START, IND_ISM_ELEVATION_DIFF_FLAG = TAG_ISM_LOOP_START, IND_ISM_ELEVATION = TAG_ISM_LOOP_START, -#ifdef TD5 IND_ISM_RADIUS_DIFF_FLAG = TAG_ISM_LOOP_START, IND_ISM_RADIUS = TAG_ISM_LOOP_START, -#endif TAG_ISM_LOOP_END = TAG_ISM_LOOP_START + 100, /* IVAS_fmToDo: to be reviewed once the final metadata are defined */ /* --------- end of loop for objects ----------- */ diff --git a/lib_com/ivas_ism_com.c b/lib_com/ivas_ism_com.c index cdcb3a9b1c..297e2cfb45 100644 --- a/lib_com/ivas_ism_com.c +++ b/lib_com/ivas_ism_com.c @@ -132,12 +132,10 @@ ivas_error ivas_ism_config( /* count ISM common signaling bits */ if ( hIsmMeta != NULL ) { -#ifdef TD5 if ( ism_total_brate >= ISM_EXTENDED_METADATA_BRATE ) { nb_bits_metadata[0] += ISM_EXTENDED_METADATA_BITS; } -#endif nb_bits_metadata[0] += n_ISms * ISM_METADATA_FLAG_BITS + nchan_ism; for ( ch = 0; ch < n_ISms; ch++ ) @@ -336,11 +334,9 @@ void ivas_ism_reset_metadata( { hIsmMeta->azimuth = 0.0f; hIsmMeta->elevation = 0.0f; -#ifdef TD5 hIsmMeta->yaw = 0.0f; hIsmMeta->pitch = 0.0f; hIsmMeta->radius = 1.0f; -#endif return; } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 72975e1f9f..f4adee3cb1 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -786,14 +786,10 @@ float ism_dequant_meta( ivas_error ivas_set_ism_metadata( ISM_METADATA_HANDLE hIsmMeta, /* o : ISM metadata handle */ const float azimuth, /* i : azimuth value */ -#ifdef TD5 const float elevation, /* i : elevation value */ const float radius_meta, /* i : radius */ const float yaw, /* i : yaw */ const float pitch /* i : pitch */ -#else - const float elevation /* i : elevation value */ -#endif ); ivas_error ivas_ism_metadata_enc_create( @@ -827,12 +823,8 @@ ivas_error ivas_ism_metadata_enc( int16_t nb_bits_metadata[], /* o : number of metadata bits */ const int16_t localVAD[], /* i : VAD flag */ const int16_t ism_mode, /* i : ISM mode */ -#ifdef TD5 const PARAM_ISM_CONFIG_HANDLE hParamIsm, /* i : Param ISM Config Handle */ const int16_t ism_extended_metadata_flag /* i : Extended metadata flag */ -#else - const PARAM_ISM_CONFIG_HANDLE hParamIsm /* i : Param ISM Config Handle */ -#endif ); ivas_error ivas_ism_metadata_dec( diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index b445ac6f04..eedb65dbf3 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -44,7 +44,6 @@ * Declaration of ISM common (encoder & decoder) structure *----------------------------------------------------------------------------------*/ -#ifdef TD5 typedef struct { int16_t last_azimuth_idx; /* last frame index of coded azimuth */ @@ -53,7 +52,6 @@ typedef struct int16_t elevation_diff_cnt; /* FEC counter of consecutive differentially elevation coded frames */ } ISM_METADATA_ANGLE, *ISM_METADATA_ANGLE_HANDLE; -#endif /* ISM metadata handle (storage for one frame of read ISM metadata) */ typedef struct @@ -63,19 +61,12 @@ typedef struct float azimuth; /* azimuth value read from the input metadata file */ float elevation; /* azimuth value read from the input metadata file */ -#ifdef TD5 float radius; float yaw; /* azimuth orientation value read from the input metadata file */ float pitch; /* elevation orientation value read from the input metadata file */ ISM_METADATA_ANGLE angle[2]; /* Angle structs for [0] azimuth/elevation and [1] yaw/pitch */ int16_t last_radius_idx; /* last frame index of coded radius */ int16_t radius_diff_cnt; /* FEC counter of consecutive differentially radius coded frames */ -#else - int16_t last_azimuth_idx; /* last frame index of coded azimuth */ - int16_t azimuth_diff_cnt; /* FEC counter of consecutive differentially azimuth coded frames */ - int16_t last_elevation_idx; /* last frame index of coded elevation */ - int16_t elevation_diff_cnt; /* FEC counter of consecutive differentially elevation coded frames */ -#endif #ifdef DISCRETE_ISM_DTX_CNG float last_azimuth; /* MD smoothing in DTX- last Q azimuth value */ diff --git a/lib_com/options.h b/lib_com/options.h index fd3ec5b506..ea487c3f23 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,8 +144,6 @@ /*#define SBA_HPF_TUNING_DEC*/ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ -#define TD5 /* Eri: Contribution 17: Extended metadata for 6 DoF rendering in TD renderer */ -#define TD5_FIX_INVALID_MEMORY_ACCESS /* FhG: Resolves segfault in case IVAS_REND_InitConfig gets initialized with rendererConfigEnabled:=false && ISM are being rendered */ #define FIX_371_DELAY_REPORT /* Issue 371: div. by zero with -no_delay_cmp */ #define FIX_373_MASA_DELAY_COMP_MSAN /* Nokia: Issue 373: MASA audio/meta delay compensation. MSAN bugfix */ diff --git a/lib_dec/ivas_ism_metadata_dec.c b/lib_dec/ivas_ism_metadata_dec.c index 99f94fa536..f8a5bea72b 100644 --- a/lib_dec/ivas_ism_metadata_dec.c +++ b/lib_dec/ivas_ism_metadata_dec.c @@ -46,7 +46,6 @@ #include "wmc_auto.h" -#ifdef TD5 /*-----------------------------------------------------------------------* * Local functions *-----------------------------------------------------------------------*/ @@ -54,7 +53,6 @@ static void decode_angle_indices( DEC_CORE_HANDLE st0, ISM_METADATA_ANGLE_HANDLE angle, int16_t *flag_abs_azimuth ); static int16_t decode_radius( DEC_CORE_HANDLE st0, int16_t *last_radius_idx, int16_t *flag_abs_radius ); -#endif #ifdef DISCRETE_ISM_DTX_CNG /*-------------------------------------------------------------------------* @@ -159,24 +157,15 @@ ivas_error ivas_ism_metadata_dec( const PARAM_ISM_CONFIG_HANDLE hParamIsm /* i : Param ISM Config Handle */ ) { -#ifdef TD5 int16_t ch, nb_bits_start = 0, last_bit_pos; int16_t idx_radius; -#else - int16_t ch, nb_bits_start = 0, last_bit_pos, sgn, diff; -#endif int32_t element_brate[MAX_NUM_OBJECTS], total_brate[MAX_NUM_OBJECTS]; DEC_CORE_HANDLE st0; -#ifdef TD5 int16_t ism_extended_metadata_flag; int16_t flag_abs_radius; int16_t flag_abs_orientation; int16_t idx_azimuth, flag_abs_azimuth; int16_t idx_elevation; -#else - int16_t idx_azimuth, nbits_diff_azimuth, flag_abs_azimuth; - int16_t idx_elevation, nbits_diff_elevation; -#endif int16_t next_bit_pos_orig; uint16_t i, bstr_meta[MAX_BITS_METADATA], *bstr_orig; ISM_METADATA_HANDLE hIsmMetaData; @@ -229,9 +218,7 @@ ivas_error ivas_ism_metadata_dec( bstr_orig = st0->bit_stream; next_bit_pos_orig = st0->next_bit_pos; st0->next_bit_pos = 0; -#ifdef TD5 ism_extended_metadata_flag = 0; -#endif /* reverse the bitstream for easier reading of indices */ for ( i = 0; i < min( MAX_BITS_METADATA, last_bit_pos ); i++ ) @@ -280,13 +267,11 @@ ivas_error ivas_ism_metadata_dec( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "wrong number of objects signalled!" ); } -#ifdef TD5 /* read extended metadata presence flag */ if ( ism_total_brate >= ISM_EXTENDED_METADATA_BRATE ) { ism_extended_metadata_flag = get_next_indice( st0, ISM_EXTENDED_METADATA_BITS ); } -#endif /* Read ISM present flags (one per object) */ for ( ch = 0; ch < *nchan_transport; ch++ ) @@ -347,14 +332,11 @@ ivas_error ivas_ism_metadata_dec( } flag_abs_azimuth = 0; -#ifdef TD5 flag_abs_orientation = 0; flag_abs_radius = 0; -#endif if ( hIsmMeta[ch]->ism_metadata_flag ) { -#ifdef TD5 decode_angle_indices( st0, &( hIsmMetaData->angle[0] ), &flag_abs_azimuth ); idx_azimuth = hIsmMetaData->angle[0].last_azimuth_idx; idx_elevation = hIsmMetaData->angle[0].last_elevation_idx; @@ -388,156 +370,6 @@ ivas_error ivas_ism_metadata_dec( hIsmMetaData->radius = 1.0f; } } -#else - /*----------------------------------------------------------------* - * Azimuth decoding and dequantization - *----------------------------------------------------------------*/ - - /* Decode azimuth index */ - if ( get_next_indice( st0, 1 ) == 1 ) /* azimuth_abs_flag */ - { - idx_azimuth = get_next_indice( st0, ISM_AZIMUTH_NBITS ); - flag_abs_azimuth = 1; - } - else - { - diff = 0; - sgn = 1; - - if ( get_next_indice( st0, 1 ) == 0 ) - { - nbits_diff_azimuth = 1; - } - else - { - nbits_diff_azimuth = 1; - - if ( get_next_indice( st0, 1 ) == 1 ) /* negative sign */ - { - sgn = -1; - } - - nbits_diff_azimuth++; - - /* read until the stop bit */ - while ( ( nbits_diff_azimuth < ISM_AZIMUTH_NBITS - 1 ) && ( get_next_indice( st0, 1 ) == 1 ) ) - { - diff++; - nbits_diff_azimuth++; - } - - if ( nbits_diff_azimuth < ISM_AZIMUTH_NBITS - 1 ) - { - /* count stop bit */ - nbits_diff_azimuth++; - } - } - - idx_azimuth = hIsmMetaData->last_azimuth_idx + sgn * diff; - } - - /* azimuth is on a circle - check for diff coding for -180° -> 180° and vice versa changes */ - if ( idx_azimuth > ( 1 << ISM_AZIMUTH_NBITS ) - 1 ) - { - idx_azimuth -= ( 1 << ISM_AZIMUTH_NBITS ) - 1; /* +180° -> -180° */ - } - else if ( idx_azimuth < 0 ) - { - idx_azimuth += ( 1 << ISM_AZIMUTH_NBITS ) - 1; /* -180° -> +180° */ - } - - /* +180° == -180° */ - if ( idx_azimuth == ( 1 << ISM_AZIMUTH_NBITS ) - 1 ) - { - idx_azimuth = 0; - } - - /* sanity check in case of FER or BER */ - if ( idx_azimuth < 0 || idx_azimuth > ( 1 << ISM_AZIMUTH_NBITS ) - 1 ) - { - idx_azimuth = hIsmMetaData->last_azimuth_idx; - } - - /* Azimuth dequantization */ - if ( ism_mode == ISM_MODE_PARAM ) - { - hParamIsm->azi_index[ch] = idx_azimuth; - } - else /* ISM_MODE_DISC */ - { - hIsmMetaData->azimuth = ism_dequant_meta( idx_azimuth, ism_azimuth_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_AZIMUTH_NBITS ); - } - - /*----------------------------------------------------------------* - * Elevation decoding and dequantization - *----------------------------------------------------------------*/ - - /* Decode elevation index */ - if ( flag_abs_azimuth == 0 && get_next_indice( st0, 1 ) == 1 ) /* elevation_abs_flag */ - { - idx_elevation = get_next_indice( st0, ISM_ELEVATION_NBITS ); - } - else - { - diff = 0; - sgn = 1; - - if ( get_next_indice( st0, 1 ) == 0 ) - { - nbits_diff_elevation = 1; - } - else - { - nbits_diff_elevation = 1; - - if ( get_next_indice( st0, 1 ) == 1 ) /* negative sign */ - { - sgn = -1; - } - - nbits_diff_elevation++; - - /* read until the stop bit */ - while ( ( nbits_diff_elevation < ISM_ELEVATION_NBITS ) && ( get_next_indice( st0, 1 ) == 1 ) ) - { - diff++; - nbits_diff_elevation++; - } - - if ( nbits_diff_elevation < ISM_ELEVATION_NBITS ) - { - /* count stop bit */ - nbits_diff_elevation++; - } - } - - idx_elevation = hIsmMetaData->last_elevation_idx + sgn * diff; - } - - /* sanity check in case of FER or BER */ - if ( idx_elevation < 0 || idx_elevation > ( 1 << ISM_ELEVATION_NBITS ) - 1 ) - { - idx_elevation = hIsmMetaData->last_elevation_idx; - } - - /* Elevation dequantization */ - if ( ism_mode == ISM_MODE_PARAM ) - { - hParamIsm->ele_index[ch] = idx_elevation; - } - else /* ISM_MODE_DISC */ - { - hIsmMetaData->elevation = ism_dequant_meta( idx_elevation, ism_elevation_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_ELEVATION_NBITS ); - } - - /*----------------------------------------------------------------* - * Final updates - *----------------------------------------------------------------*/ - - /* updates */ - hIsmMetaData->last_azimuth_idx = idx_azimuth; - hIsmMetaData->last_elevation_idx = idx_elevation; -#endif #ifdef DISCRETE_ISM_DTX_CNG /* save for smoothing metadata evolution */ hIsmMetaData->last_true_azimuth = hIsmMetaData->azimuth; @@ -647,13 +479,8 @@ ivas_error ivas_ism_metadata_dec( /*hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] % hParamIsm->ele_alpha;*/ hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch]; #endif -#ifdef TD5 hIsmMeta[ch]->angle[0].last_azimuth_idx = hParamIsm->azi_index[ch]; hIsmMeta[ch]->angle[0].last_elevation_idx = hParamIsm->ele_index[ch]; -#else - hIsmMeta[ch]->last_azimuth_idx = hParamIsm->azi_index[ch]; - hIsmMeta[ch]->last_elevation_idx = hParamIsm->ele_index[ch]; -#endif } } } @@ -767,16 +594,11 @@ ivas_error ivas_ism_metadata_dec_create( } st_ivas->hIsmMetaData[ch]->last_ism_metadata_flag = 0; -#ifdef TD5 st_ivas->hIsmMetaData[ch]->angle[0].last_azimuth_idx = 0; st_ivas->hIsmMetaData[ch]->angle[0].last_elevation_idx = 1 << ( ISM_ELEVATION_NBITS - 1 ); st_ivas->hIsmMetaData[ch]->angle[1].last_azimuth_idx = 0; st_ivas->hIsmMetaData[ch]->angle[1].last_elevation_idx = 1 << ( ISM_ELEVATION_NBITS - 1 ); st_ivas->hIsmMetaData[ch]->last_radius_idx = 8; /* Init to radius 1.0 */ -#else - st_ivas->hIsmMetaData[ch]->last_azimuth_idx = 0; - st_ivas->hIsmMetaData[ch]->last_elevation_idx = 1 << ( ISM_ELEVATION_NBITS - 1 ); -#endif #ifdef DISCRETE_ISM_DTX_CNG st_ivas->hIsmMetaData[ch]->last_true_azimuth = 0; @@ -799,7 +621,6 @@ ivas_error ivas_ism_metadata_dec_create( } -#ifdef TD5 /*------------------------------------------------------------------------- * decode_angle_indices() * @@ -1013,7 +834,6 @@ static int16_t decode_radius( return idx_radius; } -#endif #ifdef DISCRETE_ISM_DTX_CNG @@ -1163,23 +983,13 @@ void ivas_ism_metadata_sid_dec( /* update last indexes to correspond to active frames coding */ if ( nBits_azimuth > ISM_AZIMUTH_NBITS ) { -#ifdef TD5 hIsmMetaData->angle[0].last_azimuth_idx = idx_azimuth >> ( nBits_azimuth - ISM_AZIMUTH_NBITS ); hIsmMetaData->angle[0].last_elevation_idx = idx_elevation >> ( nBits_elevation - ISM_ELEVATION_NBITS ); -#else - hIsmMetaData->last_azimuth_idx = idx_azimuth >> ( nBits_azimuth - ISM_AZIMUTH_NBITS ); - hIsmMetaData->last_elevation_idx = idx_elevation >> ( nBits_elevation - ISM_ELEVATION_NBITS ); -#endif } else { -#ifdef TD5 hIsmMetaData->angle[0].last_azimuth_idx = idx_azimuth << ( ISM_AZIMUTH_NBITS - nBits_azimuth ); hIsmMetaData->angle[0].last_elevation_idx = idx_elevation << ( ISM_ELEVATION_NBITS - nBits_elevation ); -#else - hIsmMetaData->last_azimuth_idx = idx_azimuth << ( ISM_AZIMUTH_NBITS - nBits_azimuth ); - hIsmMetaData->last_elevation_idx = idx_elevation << ( ISM_ELEVATION_NBITS - nBits_elevation ); -#endif } /* save for smoothing metadata evolution */ diff --git a/lib_dec/ivas_objectRenderer_internal.c b/lib_dec/ivas_objectRenderer_internal.c index d06a2b8f5b..f1c1fc04f2 100644 --- a/lib_dec/ivas_objectRenderer_internal.c +++ b/lib_dec/ivas_objectRenderer_internal.c @@ -53,13 +53,8 @@ ivas_error ivas_td_binaural_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ) { -#ifdef TD5 return ivas_td_binaural_open_unwrap( &st_ivas->hHrtfTD, st_ivas->hDecoderConfig->output_Fs, st_ivas->nchan_transport, st_ivas->ivas_format, st_ivas->transport_config, st_ivas->hRenderConfig->directivity, st_ivas->hTransSetup, &st_ivas->hBinRendererTd, &st_ivas->binaural_latency_ns ); -#else - return ivas_td_binaural_open_unwrap( &st_ivas->hHrtfTD, st_ivas->hDecoderConfig->output_Fs, st_ivas->nchan_transport, st_ivas->ivas_format, - st_ivas->transport_config, st_ivas->hTransSetup, &st_ivas->hBinRendererTd, &st_ivas->binaural_latency_ns ); -#endif } @@ -80,10 +75,6 @@ ivas_error ivas_td_binaural_renderer( st_ivas->hReverb, st_ivas->transport_config, st_ivas->hBinRendererTd, st_ivas->nchan_transport, LFE_CHANNEL, st_ivas->ivas_format, -#ifdef TD5 st_ivas->hIsmMetaData, st_ivas->hDecoderConfig->Opt_Headrotation, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->Quaternions : NULL, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->Pos : NULL, output, output_frame ); -#else - st_ivas->hIsmMetaData, st_ivas->hDecoderConfig->Opt_Headrotation, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->Quaternions : NULL, output, output_frame ); -#endif } diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 2939b352c6..ff0b5ab59a 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -833,13 +833,9 @@ ivas_error IVAS_DEC_GetObjectMetadata( { metadata->azimuth = hIsmMeta->azimuth; metadata->elevation = hIsmMeta->elevation; -#ifdef TD5 metadata->radius = hIsmMeta->radius; metadata->yaw = hIsmMeta->yaw; metadata->pitch = hIsmMeta->pitch; -#else - metadata->radius = 0.f; -#endif metadata->spread = 0.f; metadata->gainFactor = 1.f; } @@ -890,12 +886,8 @@ ivas_error IVAS_DEC_GetMasaMetadata( ivas_error IVAS_DEC_FeedHeadTrackData( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ -#ifdef TD5 IVAS_QUATERNION *orientation, /* i : head-tracking data, listener orientation */ IVAS_POSITION *Pos /* i : listener position */ -#else - IVAS_QUATERNION *orientation /* i : head-tracking data, listener orientation */ -#endif ) { HEAD_TRACK_DATA_HANDLE hHeadTrackData; @@ -923,11 +915,9 @@ ivas_error IVAS_DEC_FeedHeadTrackData( } ivas_orient_trk_Process( hHeadTrackData->OrientationTracker, orientation[i], FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES, &hHeadTrackData->Quaternions[i] ); -#ifdef TD5 hHeadTrackData->Pos[i].x = Pos[i].x; hHeadTrackData->Pos[i].y = Pos[i].y; hHeadTrackData->Pos[i].z = Pos[i].z; -#endif } hIvasDec->st_ivas->hHeadTrackData->num_quaternions = 0; @@ -1172,9 +1162,7 @@ ivas_error IVAS_DEC_GetRenderConfig( mvr2r( hRCin->roomAcoustics.pFc_input, hRCout->room_acoustics.pFc_input, CLDFB_NO_CHANNELS_MAX ); mvr2r( hRCin->roomAcoustics.pAcoustic_rt60, hRCout->room_acoustics.pAcoustic_rt60, CLDFB_NO_CHANNELS_MAX ); mvr2r( hRCin->roomAcoustics.pAcoustic_dsr, hRCout->room_acoustics.pAcoustic_dsr, CLDFB_NO_CHANNELS_MAX ); -#ifdef TD5 mvr2r( hRCin->directivity, hRCout->directivity, 3 ); -#endif return IVAS_ERR_OK; } @@ -1219,9 +1207,7 @@ ivas_error IVAS_DEC_FeedRenderConfig( mvr2r( renderConfig.room_acoustics.pFc_input, hRenderConfig->roomAcoustics.pFc_input, CLDFB_NO_CHANNELS_MAX ); mvr2r( renderConfig.room_acoustics.pAcoustic_rt60, hRenderConfig->roomAcoustics.pAcoustic_rt60, CLDFB_NO_CHANNELS_MAX ); mvr2r( renderConfig.room_acoustics.pAcoustic_dsr, hRenderConfig->roomAcoustics.pAcoustic_dsr, CLDFB_NO_CHANNELS_MAX ); -#ifdef TD5 mvr2r( renderConfig.directivity, hRenderConfig->directivity, 3 ); -#endif return IVAS_ERR_OK; } diff --git a/lib_dec/lib_dec.h b/lib_dec/lib_dec.h index db22b6a5c0..91bbc2f8e9 100644 --- a/lib_dec/lib_dec.h +++ b/lib_dec/lib_dec.h @@ -176,12 +176,8 @@ ivas_error IVAS_DEC_GetMasaMetadata( /*! r: error code */ ivas_error IVAS_DEC_FeedHeadTrackData( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ -#ifdef TD5 IVAS_QUATERNION *orientation, /* i : head-tracking data */ IVAS_POSITION *Pos /* i : listener position */ -#else - IVAS_QUATERNION *orientation /* i : head-tracking data */ -#endif ); /*! r: error code */ diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 25ce78ff2e..f073609b8a 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -270,35 +270,19 @@ ivas_error ivas_ism_enc( else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { // VE: call ivas_ism_metadata_enc() with 'st_ivas' - TBD -#ifdef TD5 ivas_ism_metadata_enc( st_ivas->hEncoderConfig->ivas_total_brate, #ifdef NCHAN_ISM_PARAMETER nchan_ism, #endif st_ivas->nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hDirAC->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag ); -#else - ivas_ism_metadata_enc( st_ivas->hEncoderConfig->ivas_total_brate, -#ifdef NCHAN_ISM_PARAMETER - nchan_ism, -#endif - st_ivas->nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hDirAC->hParamIsm ); -#endif } else /* ISM_MODE_DISC */ { -#ifdef TD5 ivas_ism_metadata_enc( st_ivas->hEncoderConfig->ivas_total_brate, #ifdef NCHAN_ISM_PARAMETER nchan_ism, #endif st_ivas->nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag ); -#else - ivas_ism_metadata_enc( st_ivas->hEncoderConfig->ivas_total_brate, -#ifdef NCHAN_ISM_PARAMETER - nchan_ism, -#endif - st_ivas->nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL ); -#endif } #ifdef DISCRETE_ISM_DTX_CNG diff --git a/lib_enc/ivas_ism_metadata_enc.c b/lib_enc/ivas_ism_metadata_enc.c index 640ee49fbf..da1a568a94 100644 --- a/lib_enc/ivas_ism_metadata_enc.c +++ b/lib_enc/ivas_ism_metadata_enc.c @@ -49,24 +49,17 @@ * Local constants *-----------------------------------------------------------------------*/ -#ifdef TD5 #define ISM_NUM_PARAM 5 /* number of coded metadata parameters */ -#else -#define ISM_NUM_PARAM 2 /* number of coded metadata parameters */ -#endif #define ISM_MAX_AZIMUTH_DIFF_IDX ( ISM_AZIMUTH_NBITS - 1 /*zero*/ - 1 /*sign*/ ) #define ISM_MAX_ELEVATION_DIFF_IDX ( ISM_ELEVATION_NBITS - 1 /*zero*/ - 1 /*sign*/ ) -#ifdef TD5 #define ISM_MAX_RADIUS_DIFF_IDX ( ISM_RADIUS_NBITS - 1 /*zero*/ - 1 /*sign*/ ) -#endif #define ISM_FEC_MAX 10 #define INTER_OBJECT_PARAM_CHECK ( ( ISM_FEC_MAX / 2 ) - 2 ) /* note: constant must be less than (ISM_FEC_MAX / number of coded parameters) */ -#ifdef TD5 /*-----------------------------------------------------------------------* * Local function declarations *-----------------------------------------------------------------------*/ @@ -75,7 +68,6 @@ static void encode_angle_indices( BSTR_ENC_HANDLE hBstr, ISM_METADATA_ANGLE_HAND static void encode_radius( BSTR_ENC_HANDLE hBstr, int16_t *last_radius_idx, int16_t *radius_diff_cnt, const int16_t last_ism_metadata_flag, const int16_t idx_radius_abs, int16_t *flag_abs_radius ); -#endif /*-------------------------------------------------------------------------* * ivas_set_ism_metadata() @@ -86,14 +78,10 @@ static void encode_radius( BSTR_ENC_HANDLE hBstr, int16_t *last_radius_idx, int1 ivas_error ivas_set_ism_metadata( ISM_METADATA_HANDLE hIsmMeta, /* o : ISM metadata handle */ const float azimuth, /* i : azimuth value */ -#ifdef TD5 const float elevation, /* i : elevation */ const float radius_meta, /* i : radius */ const float yaw, /* i : yaw */ const float pitch /* i : pitch */ -#else - const float elevation /* i : elevation value */ -#endif ) { if ( hIsmMeta == NULL ) @@ -106,11 +94,9 @@ ivas_error ivas_set_ism_metadata( /* save read metadata parameters to the internal codec structure */ hIsmMeta->azimuth = azimuth; hIsmMeta->elevation = elevation; -#ifdef TD5 hIsmMeta->radius = radius_meta; hIsmMeta->yaw = yaw; hIsmMeta->pitch = pitch; -#endif return IVAS_ERR_OK; } @@ -187,25 +173,15 @@ ivas_error ivas_ism_metadata_enc( int16_t nb_bits_metadata[], /* o : number of metadata bits */ const int16_t localVAD[], /* i : VAD flag */ const int16_t ism_mode, /* i : ISM mode */ -#ifdef TD5 const PARAM_ISM_CONFIG_HANDLE hParamIsm, /* i : Param ISM Enc Handle */ const int16_t ism_extended_metadata_flag /* i : Extended metadata flag */ -#else - const PARAM_ISM_CONFIG_HANDLE hParamIsm /* i : Param ISM Enc Handle */ -#endif ) { -#ifdef TD5 int16_t i, ch, nb_bits_start = 0; int16_t idx_azimuth_abs = 0, flag_abs_azimuth[MAX_NUM_OBJECTS]; int16_t idx_elevation_abs = 0, flag_abs_elevation[MAX_NUM_OBJECTS]; int16_t flag_abs_azimuth_orientation[MAX_NUM_OBJECTS]; int16_t idx_radius_abs = 0, flag_abs_radius[MAX_NUM_OBJECTS]; -#else - int16_t i, ch, nb_bits_start = 0, diff; - int16_t idx_azimuth, idx_azimuth_abs = 0, flag_abs_azimuth[MAX_NUM_OBJECTS], nbits_diff_azimuth; - int16_t idx_elevation, idx_elevation_abs = 0, flag_abs_elevation[MAX_NUM_OBJECTS], nbits_diff_elevation; -#endif float valQ; ISM_METADATA_HANDLE hIsmMetaData; int32_t element_brate[MAX_NUM_OBJECTS], total_brate[MAX_NUM_OBJECTS]; @@ -252,10 +228,8 @@ ivas_error ivas_ism_metadata_enc( set_s( nb_bits_metadata, 0, nchan_transport ); set_s( flag_abs_azimuth, 0, nchan_ism ); set_s( flag_abs_elevation, 0, nchan_ism ); -#ifdef TD5 set_s( flag_abs_azimuth_orientation, 0, nchan_ism ); set_s( flag_abs_radius, 0, nchan_ism ); -#endif /*----------------------------------------------------------------* * Set Metadata presence / importance flag @@ -269,7 +243,6 @@ ivas_error ivas_ism_metadata_enc( } else if ( ism_mode == ISM_MODE_DISC ) { -#ifdef TD5 #ifdef DISCRETE_ISM_DTX_CNG hIsmMeta[ch]->ism_metadata_flag = localVAD[ch] || hSCE[ch]->hCoreCoder[0]->lp_noise > 10; #else @@ -278,15 +251,6 @@ ivas_error ivas_ism_metadata_enc( { hIsmMeta[ch]->ism_metadata_flag = 0; } -#endif -#else - hIsmMeta[ch]->ism_metadata_flag = localVAD[ch] || hSCE[ch]->hCoreCoder[0]->lp_noise > 10; - - if ( hSCE[ch]->hCoreCoder[0]->tcxonly ) - { - /* at highest bitrates (with TCX core only) metadata are sent in every frame */ - hIsmMeta[ch]->ism_metadata_flag = 1; - } #endif } } @@ -309,13 +273,11 @@ ivas_error ivas_ism_metadata_enc( } push_indice( hBstr, IND_ISM_NUM_OBJECTS, 0, 1 ); -#ifdef TD5 /* write extended metadata presence flag */ if ( ism_total_brate >= ISM_EXTENDED_METADATA_BRATE ) { push_indice( hBstr, IND_ISM_EXTENDED_FLAG, ism_extended_metadata_flag, ISM_EXTENDED_METADATA_BITS ); } -#endif /* write ISM metadata flag (one per object) */ for ( ch = 0; ch < nchan_transport; ch++ ) @@ -365,7 +327,6 @@ ivas_error ivas_ism_metadata_enc( if ( hIsmMeta[ch]->ism_metadata_flag ) { -#ifdef TD5 /*----------------------------------------------------------------* * Quantize and encode azimuth and elevation *----------------------------------------------------------------*/ @@ -401,252 +362,6 @@ ivas_error ivas_ism_metadata_enc( { nb_bits_metadata[ch] = hBstr->nb_bits_tot - nb_bits_start; } -#else - /*----------------------------------------------------------------* - * Azimuth quantization and encoding - *----------------------------------------------------------------*/ - - /* Azimuth quantization (quantize azimuth to the AZIMUTH_NBITS-bit index */ - if ( ism_mode == ISM_MODE_DISC ) - { - idx_azimuth_abs = ism_quant_meta( hIsmMetaData->azimuth, &valQ, ism_azimuth_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_AZIMUTH_NBITS ); - } - else if ( ism_mode == ISM_MODE_PARAM ) - { - idx_azimuth_abs = hParamIsm->azi_index[ch]; - } - idx_azimuth = idx_azimuth_abs; - - nbits_diff_azimuth = 0; - - flag_abs_azimuth[ch] = 0; /* differential coding by default */ - if ( hIsmMetaData->azimuth_diff_cnt == ISM_FEC_MAX /* make differential encoding in ISM_FEC_MAX consecutive frames at maximum (in order to control the decoding in FEC) */ - || hIsmMetaData->last_ism_metadata_flag == 0 /* If last frame had no metadata coded, do not use differential coding */ - ) - { - flag_abs_azimuth[ch] = 1; - } - - /* try differential coding */ - if ( flag_abs_azimuth[ch] == 0 ) - { - diff = idx_azimuth_abs - hIsmMetaData->last_azimuth_idx; - - /* azimuth is on a circle - check for diff coding for -180° -> 180° and vice versa changes */ - if ( abs( diff ) > ( ( 1 << ISM_AZIMUTH_NBITS ) - 1 ) - ISM_MAX_AZIMUTH_DIFF_IDX ) - { - if ( diff > 0 ) - { - diff -= ( 1 << ISM_AZIMUTH_NBITS ) - 1; - } - else - { - diff += ( 1 << ISM_AZIMUTH_NBITS ) - 1; - } - } - - if ( diff == 0 ) - { - idx_azimuth = 0; - nbits_diff_azimuth = 1; - } - else if ( ABSVAL( diff ) < ISM_MAX_AZIMUTH_DIFF_IDX ) /* when diff bits >= abs bits, prefer abs */ - { - idx_azimuth = 1 << 1; - nbits_diff_azimuth = 1; - - if ( diff < 0 ) - { - idx_azimuth += 1; /* negative sign */ - diff *= -1; - } - else - { - idx_azimuth += 0; /* positive sign */ - } - - idx_azimuth = idx_azimuth << diff; - nbits_diff_azimuth++; - - /* unary coding of "diff */ - idx_azimuth += ( ( 1 << diff ) - 1 ); - nbits_diff_azimuth += diff; - - if ( nbits_diff_azimuth < ISM_AZIMUTH_NBITS - 1 ) - { - /* add stop bit - only for codewords shorter than ISM_AZIMUTH_NBITS */ - idx_azimuth = idx_azimuth << 1; - nbits_diff_azimuth++; - } - } - else - { - flag_abs_azimuth[ch] = 1; - } - } - - /* update counter */ - if ( flag_abs_azimuth[ch] == 0 ) - { - hIsmMetaData->azimuth_diff_cnt++; - hIsmMetaData->elevation_diff_cnt = min( hIsmMetaData->elevation_diff_cnt, ISM_FEC_MAX ); - } - else - { - hIsmMetaData->azimuth_diff_cnt = 0; - } - - /* Write azimuth */ - push_indice( hBstr, IND_ISM_AZIMUTH_DIFF_FLAG, flag_abs_azimuth[ch], 1 ); - - if ( flag_abs_azimuth[ch] ) - { - push_indice( hBstr, IND_ISM_AZIMUTH, idx_azimuth, ISM_AZIMUTH_NBITS ); - } - else - { - push_indice( hBstr, IND_ISM_AZIMUTH, idx_azimuth, nbits_diff_azimuth ); - } - - /*----------------------------------------------------------------* - * Elevation quantization and encoding - *----------------------------------------------------------------*/ - - /* Elevation quantization (quantize azimuth to the ELEVATION_NBITS-bit index */ - if ( ism_mode == ISM_MODE_DISC ) - { - idx_elevation_abs = ism_quant_meta( hIsmMetaData->elevation, &valQ, ism_elevation_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_ELEVATION_NBITS ); - } - else /* ISM_MODE_PARAM */ - { - idx_elevation_abs = hParamIsm->ele_index[ch]; - } - idx_elevation = idx_elevation_abs; - - nbits_diff_elevation = 0; - - flag_abs_elevation[ch] = 0; /* differential coding by default */ - if ( hIsmMetaData->elevation_diff_cnt == ISM_FEC_MAX /* make differential encoding in ISM_FEC_MAX consecutive frames at maximum (in order to control the decoding in FEC) */ - || hIsmMetaData->last_ism_metadata_flag == 0 /* If last frame had no metadata coded, do not use differential coding */ - ) - { - flag_abs_elevation[ch] = 1; - } - - /* note: elevation is coded starting from the second frame only (it is meaningless in the init_frame) */ - if ( hSCE[0]->hCoreCoder[0]->ini_frame == 0 ) - { - flag_abs_elevation[ch] = 1; - hIsmMetaData->last_elevation_idx = idx_elevation_abs; - } - - diff = idx_elevation_abs - hIsmMetaData->last_elevation_idx; - - /* avoid absolute coding of elevation if absolute coding was already used for azimuth */ - if ( flag_abs_azimuth[ch] == 1 ) - { - int16_t diff_orig = diff; - - flag_abs_elevation[ch] = 0; - - - if ( diff >= 0 ) - { - diff = min( diff, ISM_MAX_ELEVATION_DIFF_IDX ); - } - else - { - diff = -1 * min( -diff, ISM_MAX_ELEVATION_DIFF_IDX ); - } - - if ( hIsmMetaData->last_ism_metadata_flag == 0 || abs( diff_orig - diff ) > ISM_MAX_ELEVATION_DIFF_IDX ) - { - hIsmMetaData->elevation_diff_cnt = ISM_FEC_MAX - 1; - } - } - - /* try differential coding */ - if ( flag_abs_elevation[ch] == 0 ) - { - if ( diff == 0 ) - { - idx_elevation = 0; - nbits_diff_elevation = 1; - } - else if ( ABSVAL( diff ) <= ISM_MAX_ELEVATION_DIFF_IDX ) - { - idx_elevation = 1 << 1; - nbits_diff_elevation = 1; - - if ( diff < 0 ) - { - idx_elevation += 1; /* negative sign */ - diff *= -1; - } - else - { - idx_elevation += 0; /* positive sign */ - } - - idx_elevation = idx_elevation << diff; - nbits_diff_elevation++; - - /* unary coding of "diff */ - idx_elevation += ( ( 1 << diff ) - 1 ); - nbits_diff_elevation += diff; - - if ( nbits_diff_elevation < ISM_ELEVATION_NBITS ) - { - /* add stop bit */ - idx_elevation = idx_elevation << 1; - nbits_diff_elevation++; - } - } - else - { - flag_abs_elevation[ch] = 1; - } - } - - /* update counter */ - if ( flag_abs_elevation[ch] == 0 ) - { - hIsmMetaData->elevation_diff_cnt++; - hIsmMetaData->elevation_diff_cnt = min( hIsmMetaData->elevation_diff_cnt, ISM_FEC_MAX ); - } - else - { - hIsmMetaData->elevation_diff_cnt = 0; - } - - /* Write elevation */ - if ( flag_abs_azimuth[ch] == 0 ) /* do not write "flag_abs_elevation" if "flag_abs_azimuth == 1" */ - { - push_indice( hBstr, IND_ISM_ELEVATION_DIFF_FLAG, flag_abs_elevation[ch], 1 ); - } - - if ( flag_abs_elevation[ch] ) - { - push_indice( hBstr, IND_ISM_ELEVATION, idx_elevation, ISM_ELEVATION_NBITS ); - } - else - { - push_indice( hBstr, IND_ISM_ELEVATION, idx_elevation, nbits_diff_elevation ); - } - - /*----------------------------------------------------------------* - * Updates - *----------------------------------------------------------------*/ - - hIsmMetaData->last_azimuth_idx = idx_azimuth_abs; - hIsmMetaData->last_elevation_idx = idx_elevation_abs; - - /* save number of metadata bits written */ - if ( ism_mode == ISM_MODE_DISC ) - { - nb_bits_metadata[ch] = hBstr->nb_bits_tot - nb_bits_start; - } -#endif } } @@ -659,11 +374,7 @@ ivas_error ivas_ism_metadata_enc( while ( i == 0 || i < nchan_ism / INTER_OBJECT_PARAM_CHECK ) { int16_t num, abs_num, abs_first, abs_next, pos_zero; -#ifdef TD5 int16_t abs_matrice[INTER_OBJECT_PARAM_CHECK * ISM_NUM_PARAM]; -#else - int16_t abs_matrice[INTER_OBJECT_PARAM_CHECK * 2]; -#endif num = min( INTER_OBJECT_PARAM_CHECK, nchan_ism - i * INTER_OBJECT_PARAM_CHECK ); i++; @@ -711,20 +422,12 @@ ivas_error ivas_ism_metadata_enc( if ( abs_next % ISM_NUM_PARAM == 0 ) { -#ifdef TD5 hIsmMeta[ch]->angle[0].azimuth_diff_cnt = abs_num - 1; -#else - hIsmMeta[ch]->azimuth_diff_cnt = abs_num - 1; -#endif } if ( abs_next % ISM_NUM_PARAM == 1 ) { -#ifdef TD5 hIsmMeta[ch]->angle[0].elevation_diff_cnt = abs_num - 1; -#else - hIsmMeta[ch]->elevation_diff_cnt = abs_num - 1; -#endif /*hIsmMeta[ch]->elevation_diff_cnt = min( hIsmMeta[ch]->elevation_diff_cnt, ISM_FEC_MAX );*/ } @@ -860,7 +563,6 @@ ivas_error ivas_ism_metadata_enc_create( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for ISM MetaData\n" ) ); } -#ifdef TD5 st_ivas->hIsmMetaData[ch]->angle[0].last_azimuth_idx = 0; st_ivas->hIsmMetaData[ch]->angle[0].azimuth_diff_cnt = ISM_FEC_MAX; st_ivas->hIsmMetaData[ch]->angle[0].last_elevation_idx = 0; @@ -871,12 +573,6 @@ ivas_error ivas_ism_metadata_enc_create( st_ivas->hIsmMetaData[ch]->angle[1].azimuth_diff_cnt = ISM_FEC_MAX - 2; st_ivas->hIsmMetaData[ch]->angle[1].last_elevation_idx = 0; st_ivas->hIsmMetaData[ch]->angle[1].elevation_diff_cnt = ISM_FEC_MAX - 2; -#else - st_ivas->hIsmMetaData[ch]->last_azimuth_idx = 0; - st_ivas->hIsmMetaData[ch]->azimuth_diff_cnt = ISM_FEC_MAX; - st_ivas->hIsmMetaData[ch]->last_elevation_idx = 0; - st_ivas->hIsmMetaData[ch]->elevation_diff_cnt = ISM_FEC_MAX - 1; -#endif st_ivas->hIsmMetaData[ch]->last_ism_metadata_flag = 0; ivas_ism_reset_metadata( st_ivas->hIsmMetaData[ch] ); @@ -896,7 +592,6 @@ ivas_error ivas_ism_metadata_enc_create( } -#ifdef TD5 /*------------------------------------------------------------------------- * encode_radius() * @@ -1241,7 +936,6 @@ static void encode_angle_indices( return; } -#endif #ifdef DISCRETE_ISM_DTX_CNG @@ -1362,23 +1056,13 @@ void ivas_ism_metadata_sid_enc( /* update last indexes to correspond to active frames coding */ if ( nBits_azimuth > ISM_AZIMUTH_NBITS ) { -#ifdef TD5 hIsmMetaData->angle[0].last_azimuth_idx = idx_azimuth >> ( nBits_azimuth - ISM_AZIMUTH_NBITS ); hIsmMetaData->angle[0].last_elevation_idx = idx_elevation >> ( nBits_elevation - ISM_ELEVATION_NBITS ); -#else - hIsmMetaData->last_azimuth_idx = idx_azimuth >> ( nBits_azimuth - ISM_AZIMUTH_NBITS ); - hIsmMetaData->last_elevation_idx = idx_elevation >> ( nBits_elevation - ISM_ELEVATION_NBITS ); -#endif } else { -#ifdef TD5 hIsmMetaData->angle[0].last_azimuth_idx = idx_azimuth << ( ISM_AZIMUTH_NBITS - nBits_azimuth ); hIsmMetaData->angle[0].last_elevation_idx = idx_elevation << ( ISM_ELEVATION_NBITS - nBits_elevation ); -#else - hIsmMetaData->last_azimuth_idx = idx_azimuth << ( ISM_AZIMUTH_NBITS - nBits_azimuth ); - hIsmMetaData->last_elevation_idx = idx_elevation << ( ISM_ELEVATION_NBITS - nBits_elevation ); -#endif } } } diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index a56f6423d3..598a618ee8 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -1020,9 +1020,7 @@ typedef struct encoder_config_structure int16_t sba_order; /* Ambisonic (SBA) order */ int16_t sba_planar; /* Ambisonic (SBA) planar flag */ MC_LS_SETUP mc_input_setup; /* multichannel input ls setup */ -#ifdef TD5 int16_t ism_extended_metadata_flag; /* flag indicating extended metadata encoding, including radius and orientation (yaw, pitch) in ISM format */ -#endif int16_t Opt_AMR_WB; /* flag indicating AMR-WB IO mode */ diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 6f5af7c231..dfc467b7a9 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -366,12 +366,8 @@ ivas_error IVAS_ENC_ConfigureForObjects( const bool max_bwidth_user, /* i : shows if bandwidth limitation was set by the user (true) or if default bandwidth was used (false) */ const IVAS_ENC_BANDWIDTH maxBandwidth, /* i : bandwidth limitation */ const IVAS_ENC_DTX_CONFIG dtxConfig, /* i : configuration of DTX, can by set to default by using IVAS_ENC_GetDefaultDtxConfig() */ -#ifdef TD5 const uint16_t numObjects, /* i : number of objects to be encoded */ const bool ism_extended_metadata /* i : Extended metadata used (true/false), where extended metadata includes radius and orientation */ -#else - const uint16_t numObjects /* i : number of objects to be encoded */ -#endif ) { Encoder_Struct *st_ivas; @@ -394,9 +390,7 @@ ivas_error IVAS_ENC_ConfigureForObjects( #ifdef NCHAN_ISM_PARAMETER st_ivas->hEncoderConfig->nchan_ism = numObjects; #endif -#ifdef TD5 st_ivas->hEncoderConfig->ism_extended_metadata_flag = ism_extended_metadata; -#endif hIvasEnc->maxBandwidthUser = max_bwidth_user; error = configureEncoder( hIvasEnc, inputFs, bitrate, maxBandwidth, dtxConfig, IVAS_ENC_GetDefaultChannelAwareConfig() ); @@ -436,11 +430,7 @@ ivas_error IVAS_ENC_FeedObjectMetadata( return IVAS_ERR_INDEX_OUT_OF_BOUNDS; } -#ifdef TD5 error = ivas_set_ism_metadata( hIvasEnc->st_ivas->hIsmMetaData[ismIndex], metadata.azimuth, metadata.elevation, metadata.radius, metadata.yaw, metadata.pitch ); -#else - error = ivas_set_ism_metadata( hIvasEnc->st_ivas->hIsmMetaData[ismIndex], metadata.azimuth, metadata.elevation ); -#endif if ( error != IVAS_ERR_OK ) { @@ -2018,12 +2008,10 @@ static ivas_error sanitizeBitrateISM( return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 4 ISM specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); } -#ifdef TD5 if ( hEncoderConfig->ivas_total_brate < ISM_EXTENDED_METADATA_BRATE && hEncoderConfig->ism_extended_metadata_flag == 1 ) { return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for extended metadata format specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); } -#endif return IVAS_ERR_OK; } @@ -2285,9 +2273,7 @@ static void init_encoder_config( #endif hEncoderConfig->sba_order = 0; hEncoderConfig->sba_planar = 0; -#ifdef TD5 hEncoderConfig->ism_extended_metadata_flag = 0; -#endif #ifdef DEBUGGING hEncoderConfig->stereo_mode_cmdl = 0; hEncoderConfig->force = -1; diff --git a/lib_enc/lib_enc.h b/lib_enc/lib_enc.h index 37fd4b4dee..349c41ebef 100644 --- a/lib_enc/lib_enc.h +++ b/lib_enc/lib_enc.h @@ -180,12 +180,8 @@ ivas_error IVAS_ENC_ConfigureForObjects( const bool max_bwidth_user, /* i : shows if bandwidth limitation was set by the user (true) or if default bandwidth was used (false) */ const IVAS_ENC_BANDWIDTH maxBandwidth, /* i : bandwidth limitation */ const IVAS_ENC_DTX_CONFIG dtxConfig, /* i : configuration of DTX, can by set to default by using IVAS_ENC_GetDefaultDtxConfig() */ -#ifdef TD5 const uint16_t numObjects, /* i : number of objects to be encoded */ const bool ism_extended_metadata /* i : Extended metadata used (true/false), where extended metadata includes radius and orientation */ -#else - const uint16_t numObjects /* i : number of objects to be encoded */ -#endif ); /*! r: error code */ diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index 67f73fab30..b3add4dad3 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -48,9 +48,7 @@ *---------------------------------------------------------------------*/ static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); -#ifdef TD5 static void angles_to_vec( const float radius, const float azimuth, const float elevation, float *vec ); -#endif /*---------------------------------------------------------------------* * ivas_td_binaural_open_unwrap() @@ -64,9 +62,7 @@ ivas_error ivas_td_binaural_open_unwrap( const int16_t nchan_transport, /* i : Number of channels */ const IVAS_FORMAT ivas_format, /* i : IVAS format (ISM/MC) */ const AUDIO_CONFIG transport_config, /* i : Transport configuration */ -#ifdef TD5 const float *directivity, /* i : Directivity pattern (used for ISM) */ -#endif const IVAS_OUTPUT_SETUP hTransSetup, /* i : Loudspeaker layout */ BINAURAL_TD_OBJECT_RENDERER_HANDLE *hBinRendererTd, /* o : TD renderer handle */ int32_t *binaural_latency_ns /* i : Binauralization delay */ @@ -175,13 +171,7 @@ ivas_error ivas_td_binaural_open_unwrap( for ( nS = 0; nS < nchan_rend; nS++ ) { /* Set source positions according to loudspeaker layout */ -#ifdef TD5 angles_to_vec( 1.0f, ls_azimuth[nS], ls_elevation[nS], Pos ); -#else - Pos[0] = cosf( ls_elevation[nS] * PI_OVER_180 ) * cosf( ls_azimuth[nS] * PI_OVER_180 ); - Pos[1] = cosf( ls_elevation[nS] * PI_OVER_180 ) * sinf( ls_azimuth[nS] * PI_OVER_180 ); - Pos[2] = sinf( ls_elevation[nS] * PI_OVER_180 ); -#endif Dir[0] = 1.0f; Dir[1] = 0.0f; Dir[2] = 0.0f; @@ -197,11 +187,9 @@ ivas_error ivas_td_binaural_open_unwrap( TDREND_MIX_SRC_SetDirAtten( pBinRendTd, nS, DirAtten_p ); } } -#ifdef TD5 if ( ivas_format == ISM_FORMAT ) { DirAtten_p = pBinRendTd->DirAtten_p; -#ifdef TD5_FIX_INVALID_MEMORY_ACCESS if ( NULL == directivity ) { DirAtten_p->ConeInnerAngle = 360.0f; /* Front cone */ @@ -214,18 +202,12 @@ ivas_error ivas_td_binaural_open_unwrap( DirAtten_p->ConeOuterAngle = directivity[1]; DirAtten_p->ConeOuterGain = directivity[2]; } -#else - DirAtten_p->ConeInnerAngle = directivity[0]; - DirAtten_p->ConeOuterAngle = directivity[1]; - DirAtten_p->ConeOuterGain = directivity[2]; -#endif for ( nS = 0; nS < nchan_rend; nS++ ) { TDREND_MIX_SRC_SetDirAtten( pBinRendTd, nS, DirAtten_p ); } } -#endif *hBinRendererTd = pBinRendTd; *binaural_latency_ns = (int32_t) ( ( *hBinRendererTd )->HrFiltSet_p->latency_s * 1000000000.f ); @@ -276,9 +258,7 @@ 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 TD5 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 */ ) @@ -296,11 +276,7 @@ ivas_error ivas_td_binaural_renderer_unwrap( for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { /* Update the listener's location/orientation */ -#ifdef TD5 TDREND_Update_listener_orientation( hBinRendererTd, Opt_Headrotation, ( Quaternions != NULL ) ? &Quaternions[subframe_idx] : NULL, ( Pos != NULL ) ? &Pos[subframe_idx] : NULL ); -#else - TDREND_Update_listener_orientation( hBinRendererTd, Opt_Headrotation, ( Quaternions != NULL ) ? &Quaternions[subframe_idx] : NULL ); -#endif if ( hReverb != NULL && hReverb->pConfig.roomAcoustics.late_reverb_on ) { @@ -457,18 +433,8 @@ void TDREND_Update_object_positions( /* Update the source positions */ /* Source position and direction */ -#ifdef TD5 angles_to_vec( hIsmMetaData[nS]->radius, hIsmMetaData[nS]->azimuth, hIsmMetaData[nS]->elevation, Pos ); angles_to_vec( 1.0f, hIsmMetaData[nS]->yaw, hIsmMetaData[nS]->pitch, Dir ); -#else - Pos[0] = cosf( hIsmMetaData[nS]->elevation * PI_OVER_180 ) * cosf( hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[1] = cosf( hIsmMetaData[nS]->elevation * PI_OVER_180 ) * sinf( hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[2] = sinf( hIsmMetaData[nS]->elevation * PI_OVER_180 ); - Dir[0] = 1.0f; - Dir[1] = 0.0f; - Dir[2] = 0.0f; - -#endif /* Source directivity info */ DirAtten_p->ConeInnerAngle = 360.0f; DirAtten_p->ConeOuterAngle = 360.0f; @@ -495,29 +461,14 @@ void TDREND_Update_object_positions( void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ const int16_t headRotEnabled, /* i : Headrotation flag */ -#ifdef TD5 const IVAS_QUATERNION *headPosition, /* i : Listener orientation */ const IVAS_POSITION *Pos /* i : Listener Position */ -#else - const IVAS_QUATERNION *headPosition /* i : Head Position */ -#endif ) { -#ifndef TD5 - float Pos[3]; -#endif float FrontVec[3]; float UpVec[3]; float Rmat[3][3]; -#ifdef TD5 float Pos_p[3]; -#else - /* Update the listener's location/orientation */ - /* Listener at the origin */ - Pos[0] = 0.0f; - Pos[1] = 0.0f; - Pos[2] = 0.0f; -#endif if ( headRotEnabled ) { @@ -531,12 +482,10 @@ void TDREND_Update_listener_orientation( UpVec[0] = Rmat[2][0]; UpVec[1] = Rmat[2][1]; UpVec[2] = Rmat[2][2]; -#ifdef TD5 /* Input position */ Pos_p[0] = ( *Pos ).x; Pos_p[1] = ( *Pos ).y; Pos_p[2] = ( *Pos ).z; -#endif } else { @@ -548,20 +497,14 @@ void TDREND_Update_listener_orientation( UpVec[0] = 0.0f; UpVec[1] = 0.0f; UpVec[2] = 1.0f; -#ifdef TD5 /* Listener at the origin */ Pos_p[0] = 0.0f; Pos_p[1] = 0.0f; Pos_p[2] = 0.0f; -#endif } /* Set the listener position and orientation:*/ -#ifdef TD5 TDREND_MIX_LIST_SetPos( hBinRendererTd, Pos_p ); -#else - TDREND_MIX_LIST_SetPos( hBinRendererTd, Pos ); -#endif TDREND_MIX_LIST_SetOrient( hBinRendererTd, FrontVec, UpVec ); return; @@ -577,9 +520,7 @@ void TDREND_Update_listener_orientation( ivas_error ivas_td_binaural_open_ext( TDREND_WRAPPER *pTDRend, IVAS_REND_AudioConfig inConfig, -#ifdef TD5 RENDER_CONFIG_DATA *hRendCfg, /* i : Renderer configuration */ -#endif LSSETUP_CUSTOM_STRUCT *customLsInput, const int32_t outFs ) { @@ -588,9 +529,7 @@ ivas_error ivas_td_binaural_open_ext( IVAS_FORMAT ivas_format; IVAS_OUTPUT_SETUP hTransSetup; ivas_error error; -#ifdef TD5_FIX_INVALID_MEMORY_ACCESS float *directivity = NULL; -#endif if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { @@ -609,20 +548,12 @@ ivas_error ivas_td_binaural_open_ext( hTransSetup.ls_azimuth = customLsInput->ls_azimuth; hTransSetup.ls_elevation = customLsInput->ls_elevation; -#ifdef TD5 -#ifdef TD5_FIX_INVALID_MEMORY_ACCESS if ( NULL != hRendCfg ) { directivity = hRendCfg->directivity; } return ivas_td_binaural_open_unwrap( &pTDRend->hHrtfTD, outFs, nchan_transport, ivas_format, transport_config, directivity, hTransSetup, &pTDRend->hBinRendererTd, &pTDRend->binaural_latency_ns ); -#else - return ivas_td_binaural_open_unwrap( &pTDRend->hHrtfTD, outFs, nchan_transport, ivas_format, transport_config, hRendCfg->directivity, hTransSetup, &pTDRend->hBinRendererTd, &pTDRend->binaural_latency_ns ); -#endif -#else - return ivas_td_binaural_open_unwrap( &pTDRend->hHrtfTD, outFs, nchan_transport, ivas_format, transport_config, hTransSetup, &pTDRend->hBinRendererTd, &pTDRend->binaural_latency_ns ); -#endif } @@ -684,20 +615,14 @@ ivas_error ivas_td_binaural_renderer_ext( hIsmMetaData[0] = &hIsmMetaDataFrame; hIsmMetaData[0]->azimuth = currentPos->azimuth; hIsmMetaData[0]->elevation = currentPos->elevation; -#ifdef TD5 hIsmMetaData[0]->yaw = currentPos->yaw; hIsmMetaData[0]->pitch = currentPos->pitch; hIsmMetaData[0]->radius = currentPos->radius; -#endif } if ( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled, ( headRotData != NULL ) ? headRotData->headPositions : NULL, -#ifdef TD5 ( headRotData != NULL ) ? headRotData->Pos : NULL, output, output_frame ) ) != IVAS_ERR_OK ) -#else - output, output_frame ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -707,7 +632,6 @@ ivas_error ivas_td_binaural_renderer_ext( return IVAS_ERR_OK; } -#ifdef TD5 /*---------------------------------------------------------------------* * angles_to_vec() * @@ -727,4 +651,3 @@ static void angles_to_vec( return; } -#endif diff --git a/lib_rend/ivas_objectRenderer_hrFilt.c b/lib_rend/ivas_objectRenderer_hrFilt.c index d28abdba30..91b018b148 100644 --- a/lib_rend/ivas_objectRenderer_hrFilt.c +++ b/lib_rend/ivas_objectRenderer_hrFilt.c @@ -69,20 +69,13 @@ ivas_error TDREND_REND_RenderSourceHRFilt( { float LeftOutputFrame[L_SPATIAL_SUBFR_48k]; float RightOutputFrame[L_SPATIAL_SUBFR_48k]; -#ifdef TD5 float Gain; Gain = ( *Src_p->SrcRend_p->DirGain_p ) * ( *Src_p->SrcRend_p->DistGain_p ); -#endif TDREND_Apply_ITD( Src_p->InputFrame_p, LeftOutputFrame, RightOutputFrame, &Src_p->previtd, Src_p->itd, Src_p->mem_itd, subframe_length ); -#ifdef TD5 TDREND_firfilt( LeftOutputFrame, Src_p->hrf_left_prev, hrf_left_delta, intp_count, Src_p->mem_hrf_left, subframe_length, Src_p->filterlength, Gain ); TDREND_firfilt( RightOutputFrame, Src_p->hrf_right_prev, hrf_right_delta, intp_count, Src_p->mem_hrf_right, subframe_length, Src_p->filterlength, Gain ); -#else - TDREND_firfilt( LeftOutputFrame, Src_p->hrf_left_prev, hrf_left_delta, intp_count, Src_p->mem_hrf_left, subframe_length, Src_p->filterlength ); - TDREND_firfilt( RightOutputFrame, Src_p->hrf_right_prev, hrf_right_delta, intp_count, Src_p->mem_hrf_right, subframe_length, Src_p->filterlength ); -#endif /* Copy to accumulative output frame */ v_add( LeftOutputFrame, output_buf[0], output_buf[0], subframe_length ); diff --git a/lib_rend/ivas_objectRenderer_sfx.c b/lib_rend/ivas_objectRenderer_sfx.c index 72493b0501..c6645f783a 100644 --- a/lib_rend/ivas_objectRenderer_sfx.c +++ b/lib_rend/ivas_objectRenderer_sfx.c @@ -235,12 +235,8 @@ void TDREND_firfilt( const int16_t intp_count, /* i : interpolation count */ float *mem, /* i/o: filter memory */ const int16_t subframe_length, /* i : Length of signal */ -#ifdef TD5 const int16_t filterlength, /* i : Filter length */ const float Gain /* i : Gain */ -#else - const int16_t filterlength /* i : Filter length */ -#endif ) { float buffer[SFX_SPAT_BIN_MAX_FILTER_LENGTH - 1 + L_SUBFRAME5MS_48k]; @@ -266,11 +262,7 @@ void TDREND_firfilt( { tmp += ( *p_filter++ ) * ( *p_tmp-- ); } -#ifdef TD5 signal[i] = tmp * Gain; -#else - signal[i] = tmp; -#endif if ( i < intp_count ) { diff --git a/lib_rend/ivas_objectRenderer_sources.c b/lib_rend/ivas_objectRenderer_sources.c index 2a13efc24c..4449945711 100644 --- a/lib_rend/ivas_objectRenderer_sources.c +++ b/lib_rend/ivas_objectRenderer_sources.c @@ -266,9 +266,7 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( TDREND_MIX_Listener_t *Listener_p; TDREND_HRFILT_FiltSet_t *HrFiltSet_p; float ListRelPos[3], ListRelDist; -#ifdef TD5 float ListRelPosAbs[3]; /* Relative position, ignoring orientation of listener */ -#endif float Azim, Elev; float hrf_left[SFX_SPAT_BIN_MAX_FILTER_LENGTH]; float hrf_right[SFX_SPAT_BIN_MAX_FILTER_LENGTH]; @@ -290,22 +288,14 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( break; case TDREND_POSTYPE_ABSOLUTE: /* Absolute position */ -#ifdef TD5 TDREND_SPATIAL_VecMapToNewCoordSystem( SrcSpatial_p->Pos_p, Listener_p->Pos, Listener_p->Front, Listener_p->Up, Listener_p->Right, ListRelPos, ListRelPosAbs ); -#else - TDREND_SPATIAL_VecMapToNewCoordSystem( SrcSpatial_p->Pos_p, Listener_p->Pos, Listener_p->Front, Listener_p->Up, Listener_p->Right, ListRelPos ); -#endif break; default: /* Illegal position type */ #ifdef DEBUGGING printf( "Warning! TDREND_SRC_REND_UpdateFiltersFromSpatialParams: Invalid position type. Assuming absolute position!\n" ); #endif /* Assume absolute position */ -#ifdef TD5 TDREND_SPATIAL_VecMapToNewCoordSystem( SrcSpatial_p->Pos_p, Listener_p->Pos, Listener_p->Front, Listener_p->Up, Listener_p->Right, ListRelPos, ListRelPosAbs ); -#else - TDREND_SPATIAL_VecMapToNewCoordSystem( SrcSpatial_p->Pos_p, Listener_p->Pos, Listener_p->Front, Listener_p->Up, Listener_p->Right, ListRelPos ); -#endif break; } @@ -331,11 +321,7 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( *SrcRend_p->DirGain_p = 1.0f; if ( SrcSpatial_p->DirAttenEnabled ) { -#ifdef TD5 *SrcRend_p->DirGain_p = TDREND_SRC_SPATIAL_GetDirGain( &SrcSpatial_p->DirAtten, SrcSpatial_p->Front_p, ListRelPosAbs ); -#else - *SrcRend_p->DirGain_p = TDREND_SRC_SPATIAL_GetDirGain( &SrcSpatial_p->DirAtten, SrcSpatial_p->Front_p, ListRelPos ); -#endif } /* Distance gain */ diff --git a/lib_rend/ivas_objectRenderer_vec.c b/lib_rend/ivas_objectRenderer_vec.c index f17d769821..0b04e4b877 100644 --- a/lib_rend/ivas_objectRenderer_vec.c +++ b/lib_rend/ivas_objectRenderer_vec.c @@ -111,33 +111,16 @@ void TDREND_SPATIAL_VecMapToNewCoordSystem( const float *DirVec_p, /* i : Direction vector */ const float *UpVec_p, /* i : Up vector */ const float *RightVec_p, /* i : Right vector */ -#ifdef TD5 float *MappedVec_p, /* o : Transformed vector */ float *LisRelPosAbs /* o : Transformed vector ignoring orientation */ -#else - float *MappedVec_p /* o : Transformed vector */ -#endif ) { -#ifdef TD5 v_sub( Vec_p, TranslVec_p, LisRelPosAbs, 3 ); /* Evalute the relative Vec in the coordinates of the Orientation vectors, */ /* which form an orthonormal basis */ MappedVec_p[0] = dotp( LisRelPosAbs, DirVec_p, 3 ); MappedVec_p[1] = dotp( LisRelPosAbs, RightVec_p, 3 ); MappedVec_p[2] = dotp( LisRelPosAbs, UpVec_p, 3 ); -#else - float RelVec[3]; - - /* Evaluate Vec relative to the new origin given by TranslVec */ - v_sub( Vec_p, TranslVec_p, RelVec, 3 ); - - /* Evalute the relative Vec in the coordinates of the Orientation vectors, */ - /* which form an orthonormal basis */ - MappedVec_p[0] = dotp( RelVec, DirVec_p, 3 ); - MappedVec_p[1] = dotp( RelVec, RightVec_p, 3 ); - MappedVec_p[2] = dotp( RelVec, UpVec_p, 3 ); -#endif return; } diff --git a/lib_rend/ivas_prot_rend.h b/lib_rend/ivas_prot_rend.h index d16f231564..7fe8392ba9 100644 --- a/lib_rend/ivas_prot_rend.h +++ b/lib_rend/ivas_prot_rend.h @@ -221,9 +221,7 @@ 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 TD5 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 */ ); @@ -245,9 +243,7 @@ ivas_error ivas_td_binaural_open_unwrap( const int16_t nchan_transport, /* i : Number of channels */ const IVAS_FORMAT ivas_format, /* i : IVAS format (ISM/MC) */ const AUDIO_CONFIG transport_config, /* i : Transport configuration */ -#ifdef TD5 const float *directivity, /* i : Directivity pattern (used for ISM) */ -#endif const IVAS_OUTPUT_SETUP hTransSetup, /* i : Loudspeaker layout */ BINAURAL_TD_OBJECT_RENDERER_HANDLE *hBinRendererTd, /* o : TD renderer handle */ int32_t *binaural_latency_ns /* i : Binauralization delay */ @@ -256,9 +252,7 @@ ivas_error ivas_td_binaural_open_unwrap( ivas_error ivas_td_binaural_open_ext( TDREND_WRAPPER *pTDRend, const IVAS_REND_AudioConfig inConfig, -#ifdef TD5 RENDER_CONFIG_DATA *hRendCfg, /* i : Renderer configuration */ -#endif LSSETUP_CUSTOM_STRUCT *customLsInput, const int32_t output_Fs ); @@ -278,12 +272,8 @@ ivas_error TDREND_GetMix( void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ const int16_t headRotEnabled, /* i : Headrotation flag */ -#ifdef TD5 const IVAS_QUATERNION *headPosition, /* i : Listener orientation */ const IVAS_POSITION *Pos /* i : Listener Position */ -#else - const IVAS_QUATERNION *headPosition /* i : Head Position */ -#endif ); void TDREND_Update_object_positions( @@ -404,12 +394,8 @@ void TDREND_SPATIAL_VecMapToNewCoordSystem( const float *DirVec_p, /* i : Direction vector */ const float *UpVec_p, /* i : Up vector */ const float *RightVec_p, /* i : Right vector */ -#ifdef TD5 float *MappedVec_p, /* o : Transformed vector */ float *LisRelPosAbs /* o : Transformed vector ignoring orientation */ -#else - float *MappedVec_p /* o : Transformed vector */ -#endif ); /*! r: Flag if the orientation has been updated */ @@ -475,12 +461,8 @@ void TDREND_firfilt( const int16_t intp_count, /* i : interpolation count */ float *mem, /* i/o: filter memory */ const int16_t subframe_length, /* i : Length of signal */ -#ifdef TD5 const int16_t filterlength, /* i : Filter length */ const float Gain /* i : Gain */ -#else - const int16_t filterlength /* i : Filter length */ -#endif ); diff --git a/lib_rend/ivas_render_config.c b/lib_rend/ivas_render_config.c index 2fdbeff0eb..efd866ccec 100644 --- a/lib_rend/ivas_render_config.c +++ b/lib_rend/ivas_render_config.c @@ -126,11 +126,9 @@ ivas_error ivas_render_config_init_from_rom( mvr2r( ivas_reverb_default_RT60, ( *hRenderConfig )->roomAcoustics.pAcoustic_rt60, IVAS_REVERB_DEFAULT_N_BANDS ); mvr2r( ivas_reverb_default_DSR, ( *hRenderConfig )->roomAcoustics.pAcoustic_dsr, IVAS_REVERB_DEFAULT_N_BANDS ); -#ifdef TD5 ( *hRenderConfig )->directivity[0] = 360.0f; /* Front cone */ ( *hRenderConfig )->directivity[1] = 360.0f; /* Back cone */ ( *hRenderConfig )->directivity[2] = 1.0f; /* Back attenuation */ -#endif return IVAS_ERR_OK; } diff --git a/lib_rend/ivas_stat_rend.h b/lib_rend/ivas_stat_rend.h index c0f12ef209..226b9fcd32 100644 --- a/lib_rend/ivas_stat_rend.h +++ b/lib_rend/ivas_stat_rend.h @@ -247,9 +247,7 @@ typedef struct { int8_t headRotEnabled; IVAS_QUATERNION headPositions[RENDERER_HEAD_POSITIONS_PER_FRAME]; -#ifdef TD5 IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME]; -#endif float crossfade[L_FRAME48k / RENDERER_HEAD_POSITIONS_PER_FRAME]; ivas_orient_trk_state_t *hOrientationTracker; @@ -259,9 +257,7 @@ typedef struct ivas_binaural_head_track_struct { int16_t num_quaternions; IVAS_QUATERNION Quaternions[MAX_PARAM_SPATIAL_SUBFRAMES]; -#ifdef TD5 IVAS_POSITION Pos[MAX_PARAM_SPATIAL_SUBFRAMES]; -#endif float Rmat[3][3]; float Rmat_prev[3][3]; @@ -300,9 +296,7 @@ typedef struct ivas_render_config_t ivas_renderTypeOverride renderer_type_override; #endif ivas_roomAcoustics_t roomAcoustics; -#ifdef TD5 float directivity[3]; -#endif } RENDER_CONFIG_DATA, *RENDER_CONFIG_HANDLE; diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 4e6ec67da7..50f5a83581 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -1007,11 +1007,9 @@ static IVAS_REND_AudioObjectPosition defaultObjectPosition( pos.azimuth = 0.0f; pos.elevation = 0.0f; -#ifdef TD5 pos.radius = 1.0f; pos.yaw = 0.0f; pos.pitch = 0.0f; -#endif return pos; } @@ -1104,11 +1102,7 @@ static ivas_error setRendInputActiveIsm( error = IVAS_ERR_OK; if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL ) { -#ifdef TD5 if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, NULL, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -1117,11 +1111,7 @@ static ivas_error setRendInputActiveIsm( { if ( hRendCfg != NULL && hRendCfg->roomAcoustics.use_brir == 0 && hRendCfg->roomAcoustics.late_reverb_on ) { -#ifdef TD5 if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, NULL, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -1826,11 +1816,7 @@ static ivas_error initMcBinauralRendering( // if ( initTDRend ) { -#ifdef TD5 if ( ( error = ivas_td_binaural_open_ext( &inputMc->tdRendWrapper, inConfig, hRendCfg, &inputMc->customLsInput, outSampleRate ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_td_binaural_open_ext( &inputMc->tdRendWrapper, inConfig, &inputMc->customLsInput, outSampleRate ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -3765,9 +3751,7 @@ int16_t IVAS_REND_FeedRenderConfig( } hRenderConfig = hIvasRend->hRendererConfig; -#ifdef TD5 mvr2r( renderConfig.directivity, hRenderConfig->directivity, 3 ); -#endif #ifdef DEBUGGING hRenderConfig->renderer_type_override = RENDER_TYPE_OVERRIDE_NONE; if ( renderConfig.renderer_type_override == IVAS_RENDER_TYPE_OVERRIDE_FASTCONV ) @@ -3801,12 +3785,8 @@ int16_t IVAS_REND_FeedRenderConfig( ivas_error IVAS_REND_SetHeadRotation( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ -#ifdef TD5 const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME], /* i : head orientations for next rendering call */ const IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ -#else - const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : head positions for next rendering call */ -#endif ) { int16_t i; @@ -3844,9 +3824,7 @@ ivas_error IVAS_REND_SetHeadRotation( } ivas_orient_trk_Process( hIvasRend->headRotData.hOrientationTracker, rotQuat, FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES, &hIvasRend->headRotData.headPositions[i] ); -#ifdef TD5 hIvasRend->headRotData.Pos[i] = Pos[i]; -#endif } } diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 3bd575adc2..b1f7361fec 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -244,12 +244,8 @@ int16_t IVAS_REND_FeedRenderConfig( ivas_error IVAS_REND_SetHeadRotation( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ -#ifdef TD5 const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME], /* i : head orientations for next rendering call */ const IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ -#else - const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : head 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 b8f81d318d..fcc822cb76 100644 --- a/lib_util/head_rotation_file_reader.c +++ b/lib_util/head_rotation_file_reader.c @@ -93,40 +93,26 @@ ivas_error HeadRotationFileReader_open( ivas_error HeadRotationFileReading( HeadRotFileReader *headRotReader, /* i/o: HeadRotFileReader handle */ -#ifdef TD5 IVAS_QUATERNION *pQuaternion, /* o : head-tracking data */ IVAS_POSITION *pPos /* o : listener position */ -#else - IVAS_QUATERNION *pQuaternion /* o : head-tracking data */ -#endif ) { float w, x, y, z; -#ifdef TD5 float posx, posy, posz; int32_t read_values; posx = 0.0f; posy = 0.0f; posz = 0.0f; -#endif -#ifdef TD5 read_values = fscanf( headRotReader->trajFile, "%f,%f,%f,%f,%f,%f,%f", &w, &x, &y, &z, &posx, &posy, &posz ); if ( ( read_values != 4 ) && ( read_values != 7 ) ) /* Allow either orientation (4) or orientation+position (4+3) */ -#else - if ( 4 != fscanf( headRotReader->trajFile, "%f,%f,%f,%f", &w, &x, &y, &z ) ) -#endif { if ( feof( headRotReader->trajFile ) ) { rewind( headRotReader->trajFile ); headRotReader->fileRewind = true; -#ifdef TD5 return HeadRotationFileReading( headRotReader, pQuaternion, pPos ); -#else - return HeadRotationFileReading( headRotReader, pQuaternion ); -#endif } return IVAS_ERR_FAILED_FILE_PARSE; } @@ -137,14 +123,12 @@ ivas_error HeadRotationFileReading( pQuaternion->x = x; pQuaternion->y = y; pQuaternion->z = z; -#ifdef TD5 if ( pPos != NULL ) { pPos->x = posx; pPos->y = posy; pPos->z = posz; } -#endif return IVAS_ERR_OK; } diff --git a/lib_util/head_rotation_file_reader.h b/lib_util/head_rotation_file_reader.h index a4b87c6750..ac4117180b 100644 --- a/lib_util/head_rotation_file_reader.h +++ b/lib_util/head_rotation_file_reader.h @@ -59,12 +59,8 @@ ivas_error HeadRotationFileReader_open( ivas_error HeadRotationFileReading( HeadRotFileReader *headRotReader, /* i/o: HeadRotFileReader handle */ -#ifdef TD5 IVAS_QUATERNION *pQuaternion, /* o : head-tracking data */ IVAS_POSITION *pPos /* o : listener position */ -#else - IVAS_QUATERNION *pQuaternion /* o : head-tracking data */ -#endif ); /*-----------------------------------------------------------------------* diff --git a/lib_util/ism_file_reader.c b/lib_util/ism_file_reader.c index d60a7c1984..702c90c0f6 100644 --- a/lib_util/ism_file_reader.c +++ b/lib_util/ism_file_reader.c @@ -37,12 +37,8 @@ #define META_LINE_LENGTH 200 /* max number of characters at one line of metadata input/output file */ -#ifdef TD5 #define NUM_ISM_METADATA_PER_LINE 7 /* Number of ISM metadata per line in a metadata file */ #define NUM_MIN_ISM_METADATA 2 /* Minimum number of metadata parameters (azimuth and elevation) */ -#else -#define NUM_ISM_METADATA_PER_LINE 5 /* Number of ISM metadata per line in a metadata file */ -#endif struct IsmFileReader @@ -100,20 +96,16 @@ ivas_error IsmFileReader_readNextFrame( { char char_buff[META_LINE_LENGTH]; float meta_prm[NUM_ISM_METADATA_PER_LINE]; -#ifdef TD5 const float meta_prm_default[NUM_ISM_METADATA_PER_LINE] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f }; -#endif char *char_ptr; int16_t i; FILE *file; -#ifdef TD5 /* Set default metadata parameters */ for ( i = 0; i < NUM_ISM_METADATA_PER_LINE; i++ ) { meta_prm[i] = meta_prm_default[i]; } -#endif if ( ismMetadata == NULL || self->file == NULL ) { @@ -143,34 +135,21 @@ ivas_error IsmFileReader_readNextFrame( meta_prm[i++] = (float) atof( char_ptr ); } -#ifdef TD5 /* Check if minimum number of metadata values were read. Additional values are ignored. */ if ( i < NUM_MIN_ISM_METADATA ) -#else - if ( i != NUM_ISM_METADATA_PER_LINE ) -#endif { /* Not enough values provided in one line */ return IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT; } -#ifndef TD5 - if ( char_ptr != NULL ) - { - /* Too many values provided in one line */ - return IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT; - } -#endif ismMetadata->azimuth = meta_prm[0]; ismMetadata->elevation = meta_prm[1]; ismMetadata->radius = meta_prm[2]; ismMetadata->spread = meta_prm[3]; ismMetadata->gainFactor = meta_prm[4]; -#ifdef TD5 ismMetadata->yaw = meta_prm[5]; ismMetadata->pitch = meta_prm[6]; -#endif /* verify whether the read metadata values are in an expected range */ if ( ismMetadata->azimuth > 180 || ismMetadata->azimuth < -180 ) @@ -197,7 +176,6 @@ ivas_error IsmFileReader_readNextFrame( { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } -#ifdef TD5 if ( ismMetadata->yaw > 180 || ismMetadata->yaw < -180 ) { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; @@ -207,7 +185,6 @@ ivas_error IsmFileReader_readNextFrame( { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } -#endif return IVAS_ERR_OK; } diff --git a/lib_util/ism_file_writer.c b/lib_util/ism_file_writer.c index 870cf33586..b29386282b 100644 --- a/lib_util/ism_file_writer.c +++ b/lib_util/ism_file_writer.c @@ -36,9 +36,6 @@ #define META_LINE_LENGTH 200 /* max number of characters at one line of metadata input/output file */ -#ifndef TD5 -#define NUM_ISM_METADATA_PER_LINE 5 /* Number of ISM metadata per line in a metadata file */ -#endif struct IsmFileWriter @@ -118,17 +115,9 @@ ivas_error IsmFileWriter_writeFrame( /* IVAS_fmToDo: work in progress; currently position_azimuth, position_elevation, position_radius, spread, gain_factor */ #ifdef FIX_293_EXT_RENDERER_CLI -#ifdef TD5 sprintf( char_buff, "%+07.2f,%+06.2f,%05.2f,%06.2f,%04.2f,%+07.2f,%+06.2f\n", ismMetadata.azimuth, ismMetadata.elevation, ismMetadata.radius, ismMetadata.spread, ismMetadata.gainFactor, ismMetadata.yaw, ismMetadata.pitch ); -#else - sprintf( char_buff, "%+07.2f,%+06.2f,%05.2f,%06.2f,%04.2f\n", ismMetadata.azimuth, ismMetadata.elevation, ismMetadata.radius, ismMetadata.spread, ismMetadata.gainFactor ); -#endif #endif -#ifdef TD5 snprintf( char_buff, sizeof( char_buff ), "%+07.2f,%+06.2f,%05.2f,%06.2f,%04.2f,%+07.2f,%+06.2f\n", ismMetadata.azimuth, ismMetadata.elevation, ismMetadata.radius, ismMetadata.spread, ismMetadata.gainFactor, ismMetadata.yaw, ismMetadata.pitch ); -#else - snprintf( char_buff, sizeof( char_buff ), "%+07.2f,%+06.2f,%05.2f,%06.2f,%04.2f\n", ismMetadata.azimuth, ismMetadata.elevation, ismMetadata.radius, ismMetadata.spread, ismMetadata.gainFactor ); -#endif if ( file ) { diff --git a/lib_util/render_config_reader.c b/lib_util/render_config_reader.c index 907d148a6e..54f2d012ce 100644 --- a/lib_util/render_config_reader.c +++ b/lib_util/render_config_reader.c @@ -522,7 +522,6 @@ ivas_error RenderConfigReader_read( errorHandler( pValue, ERROR_VALUE_INVALID ); } } -#ifdef TD5 else if ( strcmp( item, "DIRECTIVITY" ) == 0 ) { if ( read_vector( pValue, 3, hRenderConfig->directivity ) ) @@ -530,7 +529,6 @@ ivas_error RenderConfigReader_read( errorHandler( item, ERROR_VALUE_INVALID ); } } -#endif #ifdef DEBUGGING else { -- GitLab From 1cbc09dbf400833ac709e3ab9213134af751772c Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:39:26 +0200 Subject: [PATCH 07/12] [cleanup] accept FIX_371_DELAY_REPORT --- apps/decoder.c | 23 ----------------------- lib_com/options.h | 1 - 2 files changed, 24 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 7eb003fbe4..9560751228 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -1246,7 +1246,6 @@ static ivas_error initOnFirstGoodFrame( ivas_error error = IVAS_ERR_UNKNOWN; /* Now delay, number of output channels and frame size are known */ -#ifdef FIX_371_DELAY_REPORT if ( ( error = IVAS_DEC_GetDelay( hIvasDec, pFullDelayNumSamples, delayTimeScale ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nUnable to get delay of decoder: %s\n", ivas_error_to_string( error ) ); @@ -1257,20 +1256,6 @@ static ivas_error initOnFirstGoodFrame( { pFullDelayNumSamples[0] = 0; } -#else - if ( arg.delayCompensationEnabled ) - { - if ( ( error = IVAS_DEC_GetDelay( hIvasDec, pFullDelayNumSamples, delayTimeScale ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nUnable to get delay of decoder: %s\n", ivas_error_to_string( error ) ); - return error; - } - } - else - { - pFullDelayNumSamples[0] = 0; - } -#endif *pRemainingDelayNumSamples = pFullDelayNumSamples[0]; if ( ( error = IVAS_DEC_GetNumOutputChannels( hIvasDec, pNumOutChannels ) ) != IVAS_ERR_OK ) @@ -1723,11 +1708,7 @@ static ivas_error decodeG192( if ( delayNumSamples_orig[2] > 0 ) { printf( "HRIR/BRIR delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * delayNumSamples_orig[2] / (float) delayTimeScale, delayNumSamples_orig[2], delayTimeScale ); -#ifdef FIX_371_DELAY_REPORT printf( "Total delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * ( delayNumSamples_orig[1] + delayNumSamples_orig[2] ) / (float) delayTimeScale, delayNumSamples_orig[1] + delayNumSamples_orig[2], delayTimeScale ); -#else - printf( "Total delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * delayNumSamples_orig[0] / (float) delayTimeScale, delayNumSamples_orig[0], delayTimeScale ); -#endif } } @@ -2209,11 +2190,7 @@ static ivas_error decodeVoIP( if ( delayNumSamples_orig[2] > 0 ) { printf( "HRIR/BRIR delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * delayNumSamples_orig[2] / (float) delayTimeScale, delayNumSamples_orig[2], delayTimeScale ); -#ifdef FIX_371_DELAY_REPORT printf( "Total delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * ( delayNumSamples_orig[1] + delayNumSamples_orig[2] ) / (float) delayTimeScale, delayNumSamples_orig[1] + delayNumSamples_orig[2], delayTimeScale ); -#else - printf( "Total delay: %4.2f ms (%3u samples at timescale %5u)\n", 1000.f * delayNumSamples_orig[0] / (float) delayTimeScale, delayNumSamples_orig[0], delayTimeScale ); -#endif } } diff --git a/lib_com/options.h b/lib_com/options.h index ea487c3f23..a90cf9d56c 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define SBA_HPF_TUNING_DEC*/ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ -#define FIX_371_DELAY_REPORT /* Issue 371: div. by zero with -no_delay_cmp */ #define FIX_373_MASA_DELAY_COMP_MSAN /* Nokia: Issue 373: MASA audio/meta delay compensation. MSAN bugfix */ #define OTR_REFERENCE_VECTOR_TRACKING /* FhG: enables the reference position orientation tracking mode */ -- GitLab From 3fb4027d8aebd59ed772ec9b6240245fde2d106a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:46:13 +0200 Subject: [PATCH 08/12] [cleanup] merge FIX_373_MASA_DELAY_COMP_MSAN into FIX_373_MASA_DELAY_COMP --- lib_com/ivas_cnst.h | 2 -- lib_com/ivas_masa_com.c | 4 ++-- lib_com/ivas_prot.h | 2 +- lib_com/options.h | 1 - lib_dec/ivas_masa_dec.c | 2 +- lib_enc/ivas_masa_enc.c | 2 +- lib_util/masa_file_writer.c | 2 -- 7 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 7f434feccd..76b19f5fc1 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -956,10 +956,8 @@ typedef enum #ifdef FIX_350_MASA_DELAY_COMP #define DELAY_MASA_PARAM_DEC_SFR 2 /* Delay to be compensation for MASA parameters in the decoder (subframes) */ -#ifdef FIX_373_MASA_DELAY_COMP_MSAN #define SPH_IDX_FRONT ( MASA_NO_POINTS_EQUATOR / 2 ) /* Spherical index corresponding to front direction for setting as default value */ #endif -#endif #define DIRAC_SLOT_NS 1250000L /* time duration of a time slot, 1.25ms (==DELAY_RENERER_NS/MAX_PARAM_SPATIAL_SUBFRAMES) */ #define DIRAC_SLOT_ENC_NS 5000000L diff --git a/lib_com/ivas_masa_com.c b/lib_com/ivas_masa_com.c index bd0336ad43..5bfbd00939 100644 --- a/lib_com/ivas_masa_com.c +++ b/lib_com/ivas_masa_com.c @@ -314,7 +314,7 @@ void masa_sample_rate_band_correction( int16_t *band_mapping, /* i/o: Band mapping used and modified */ IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: QMetadata structure for modification */ const int32_t sampling_rate /* i : Sampling rate */ -#ifdef FIX_373_MASA_DELAY_COMP_MSAN +#ifdef FIX_373_MASA_DELAY_COMP , MASA_DECODER_EXT_OUT_META_HANDLE hExtOutMeta /* i/o: MASA decoder metadata ext out buffer */ #endif @@ -390,7 +390,7 @@ void masa_sample_rate_band_correction( hQMetaData->twoDirBands[band] = 0; } } -#ifdef FIX_373_MASA_DELAY_COMP_MSAN +#ifdef FIX_373_MASA_DELAY_COMP if ( hExtOutMeta != NULL ) { /* in decoder, zero the EXT out MASA meta buffer */ diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index f4adee3cb1..c51321d667 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4619,7 +4619,7 @@ void masa_sample_rate_band_correction( int16_t *band_mapping, /* i/o: Band mapping used and modified */ IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: QMetadata structure for modification */ const int32_t sampling_rate /* i : sampling rate */ -#ifdef FIX_373_MASA_DELAY_COMP_MSAN +#ifdef FIX_373_MASA_DELAY_COMP , MASA_DECODER_EXT_OUT_META_HANDLE hExtOutMeta /* i/o: MASA decoder metadata ext out buffer */ #endif ); diff --git a/lib_com/options.h b/lib_com/options.h index a90cf9d56c..84bde4b7e7 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define SBA_HPF_TUNING_DEC*/ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ -#define FIX_373_MASA_DELAY_COMP_MSAN /* Nokia: Issue 373: MASA audio/meta delay compensation. MSAN bugfix */ #define OTR_REFERENCE_VECTOR_TRACKING /* FhG: enables the reference position orientation tracking mode */ diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index 5b0223a9be..9e2540e968 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -501,7 +501,7 @@ static ivas_error ivas_masa_dec_config( ivas_set_qmetadata_maxbit_req( st_ivas->hQMetaData, st_ivas->ivas_format ); -#ifdef FIX_373_MASA_DELAY_COMP_MSAN +#ifdef FIX_373_MASA_DELAY_COMP if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) { /* need to apply the sampling rate correction also for the EXT output MASA meta buffer */ diff --git a/lib_enc/ivas_masa_enc.c b/lib_enc/ivas_masa_enc.c index 337753925c..3655c1994a 100644 --- a/lib_enc/ivas_masa_enc.c +++ b/lib_enc/ivas_masa_enc.c @@ -595,7 +595,7 @@ ivas_error ivas_masa_enc_config( ivas_set_qmetadata_maxbit_req( hQMetaData, ivas_format ); -#ifdef FIX_373_MASA_DELAY_COMP_MSAN +#ifdef FIX_373_MASA_DELAY_COMP masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, hQMetaData, st_ivas->hEncoderConfig->input_Fs, NULL ); #else masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, hQMetaData, st_ivas->hEncoderConfig->input_Fs ); diff --git a/lib_util/masa_file_writer.c b/lib_util/masa_file_writer.c index 74429f9185..5667968ece 100644 --- a/lib_util/masa_file_writer.c +++ b/lib_util/masa_file_writer.c @@ -67,10 +67,8 @@ struct MasaFileWriter *-----------------------------------------------------------------------*/ #ifndef FIX_350_MASA_DELAY_COMP -#ifndef FIX_373_MASA_DELAY_COMP_MSAN #define SPH_IDX_FRONT ( MASA_NO_POINTS_EQUATOR / 2 ) /* Spherical index corresponding to front direction for setting as default value */ #endif -#endif /*-----------------------------------------------------------------------* * Local functions -- GitLab From ae6f33c731c7e19c8146596fdbc3392be1fb740a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:48:14 +0200 Subject: [PATCH 09/12] [cleanup] accept OTR_REFERENCE_VECTOR_TRACKING --- apps/decoder.c | 32 ----------------------------- apps/renderer.c | 28 ------------------------- lib_com/common_api_types.h | 2 -- lib_com/ivas_cnst.h | 4 ---- lib_com/options.h | 1 - lib_dec/ivas_init_dec.c | 2 -- lib_dec/lib_dec.c | 2 -- lib_dec/lib_dec.h | 2 -- lib_rend/ivas_orient_trk.c | 10 --------- lib_rend/ivas_prot_rend.h | 2 -- lib_rend/lib_rend.c | 4 ---- lib_rend/lib_rend.h | 2 -- lib_util/vector3_pair_file_reader.c | 2 -- lib_util/vector3_pair_file_reader.h | 2 -- 14 files changed, 95 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 9560751228..43e8750c7a 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -42,9 +42,7 @@ #include "ls_custom_file_reader.h" #include "hrtf_file_reader.h" #include "head_rotation_file_reader.h" -#ifdef OTR_REFERENCE_VECTOR_TRACKING #include "vector3_pair_file_reader.h" -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ #include "jbm_file_writer.h" #include "evs_rtp_payload.h" #ifdef DEBUGGING @@ -75,10 +73,8 @@ static #define IVAS_PUBLIC_ORIENT_TRK_NONE ( 0 ) #define IVAS_PUBLIC_ORIENT_TRK_REF ( 1 ) #define IVAS_PUBLIC_ORIENT_TRK_AVG ( 2 ) -#ifdef OTR_REFERENCE_VECTOR_TRACKING #define IVAS_PUBLIC_ORIENT_TRK_REF_VEC ( 3 ) #define IVAS_PUBLIC_ORIENT_TRK_REF_VEC_LEV ( 4 ) -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ typedef struct { @@ -94,10 +90,8 @@ typedef struct char *headrotTrajFileName; bool enableReferenceRotation; char *refrotTrajFileName; -#ifdef OTR_REFERENCE_VECTOR_TRACKING bool enableReferenceVectorTracking; char *referenceVectorTrajFileName; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ #ifdef SUPPORT_JBM_TRACEFILE char *jbmTraceFilename; #endif @@ -133,11 +127,7 @@ typedef struct static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg ); static void usage_dec( void ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); -#else /* OTR_REFERENCE_VECTOR_TRACKING */ -static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); -#endif static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec ); #ifdef DEBUGGING static ivas_error printBitstreamInfoVoip( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec ); @@ -164,9 +154,7 @@ int main( hrtfFileReader *hrtfReader = NULL; HeadRotFileReader *headRotReader = NULL; HeadRotFileReader *refRotReader = NULL; -#ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader *referenceVectorReader = NULL; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ ivas_error error = IVAS_ERR_UNKNOWN; int16_t pcmBuf[MAX_OUTPUT_PCM_BUFFER_SIZE]; RenderConfigReader *renderConfigReader = NULL; @@ -287,7 +275,6 @@ int main( goto cleanup; } } -#ifdef OTR_REFERENCE_VECTOR_TRACKING /*------------------------------------------------------------------------------------------* * Open reference vector trajectory file *------------------------------------------------------------------------------------------*/ @@ -299,7 +286,6 @@ int main( goto cleanup; } } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ /*------------------------------------------------------------------------------------------* * Open custom loudspeaker layout file @@ -549,11 +535,7 @@ int main( } else { -#ifdef OTR_REFERENCE_VECTOR_TRACKING error = decodeG192( arg, hBsReader, headRotReader, refRotReader, referenceVectorReader, hIvasDec, pcmBuf ); -#else - error = decodeG192( arg, hBsReader, headRotReader, refRotReader, hIvasDec, pcmBuf ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ } if ( error == IVAS_ERR_OK || error == IVAS_ERR_END_OF_FILE ) @@ -610,9 +592,7 @@ cleanup: hrtfFileReader_close( &hrtfReader ); HeadRotationFileReader_close( &headRotReader ); HeadRotationFileReader_close( &refRotReader ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader_close( &referenceVectorReader ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ RenderConfigReader_close( &renderConfigReader ); if ( BS_Reader_Close( &hBsReader ) != IVAS_ERR_OK ) @@ -752,10 +732,8 @@ static bool parseCmdlIVAS_dec( arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_NONE; arg->enableReferenceRotation = false; arg->headrotTrajFileName = NULL; -#ifdef OTR_REFERENCE_VECTOR_TRACKING arg->enableReferenceVectorTracking = false; arg->referenceVectorTrajFileName = NULL; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ #ifdef SUPPORT_JBM_TRACEFILE arg->jbmTraceFilename = NULL; @@ -948,7 +926,6 @@ static bool parseCmdlIVAS_dec( { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_AVG; } -#ifdef OTR_REFERENCE_VECTOR_TRACKING else if ( strcmp( argv_to_upper, "REF_VEC" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF_VEC; @@ -957,7 +934,6 @@ static bool parseCmdlIVAS_dec( { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF_VEC_LEV; } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ else { fprintf( stderr, "Error: Invalid orientation tracking type %s \n\n", argv[i + 1] ); @@ -981,7 +957,6 @@ static bool parseCmdlIVAS_dec( arg->refrotTrajFileName = argv[i]; i++; } -#ifdef OTR_REFERENCE_VECTOR_TRACKING else if ( strcmp( argv_to_upper, "-RVF" ) == 0 ) { arg->enableReferenceVectorTracking = true; @@ -997,7 +972,6 @@ static bool parseCmdlIVAS_dec( arg->referenceVectorTrajFileName = argv[i]; i++; } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ else if ( strcmp( argv_to_upper, "-RENDER_CONFIG" ) == 0 ) { arg->renderConfigEnabled = true; @@ -1193,10 +1167,8 @@ static void usage_dec( void ) fprintf( stdout, "-otr tracking_type : head orientation tracking type: 'none', 'ref' or 'avg' (only for binaural rendering)\n" ); fprintf( stdout, "-rf File : Reference rotation specified by external trajectory file\n" ); fprintf( stdout, " works only in combination with -otr ref mode\n" ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING fprintf( stdout, "-rvf File : Reference vector specified by external trajectory file\n" ); fprintf( stdout, " works only in combination with -otr ref_vec and ref_vec_lev modes\n" ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ fprintf( stdout, "-render_config file : Renderer configuration file\n" ); fprintf( stdout, "-no_diegetic_pan : panning mono no dietic sound to stereo -1<= pan <=1,\n" ); fprintf( stdout, " left or l or 1->left, right or r or -1->right, center or c or 0->middle\n" ); @@ -1404,9 +1376,7 @@ static ivas_error decodeG192( BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, -#ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader *referenceVectorReader, -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ) @@ -1498,7 +1468,6 @@ static ivas_error decodeG192( goto cleanup; } -#ifdef OTR_REFERENCE_VECTOR_TRACKING /* reference vector */ if ( arg.enableReferenceVectorTracking ) { @@ -1515,7 +1484,6 @@ static ivas_error decodeG192( goto cleanup; } } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ /* Reference rotation */ if ( arg.enableReferenceRotation ) { diff --git a/apps/renderer.c b/apps/renderer.c index d4671ae656..c2fb6add8a 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -42,9 +42,7 @@ #include "cmdl_tools.h" #include "cmdln_parser.h" #include "head_rotation_file_reader.h" -#ifdef OTR_REFERENCE_VECTOR_TRACKING #include "vector3_pair_file_reader.h" -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ #include "hrtf_file_reader.h" #include "ism_file_reader.h" #include "ls_custom_file_reader.h" @@ -133,9 +131,7 @@ typedef struct char inMetadataFilePaths[RENDERER_MAX_ISM_INPUTS][RENDERER_MAX_CLI_ARG_LENGTH]; int16_t numInMetadataFiles; char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; -#ifdef OTR_REFERENCE_VECTOR_TRACKING char referenceVectorFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char customHrtfFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char renderConfigFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; @@ -173,9 +169,7 @@ typedef enum CmdLnOptionId_inputMetadata, CmdLnOptionId_listFormats, CmdLnOptionId_inputGain, -#ifdef OTR_REFERENCE_VECTOR_TRACKING CmdLnOptionId_referenceVectorFile, -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ } CmdLnOptionId; static const CmdLnParser_Option cliOptions[] = { @@ -249,11 +243,7 @@ static const CmdLnParser_Option cliOptions[] = { .id = CmdLnOptionId_orientationTracking, .match = "tracking_type", .matchShort = "otr", -#ifdef OTR_REFERENCE_VECTOR_TRACKING .description = "Head orientation tracking type: 'none', 'ref', 'avg' or `ref_vec` or `ref_vec_lev` (only for BINAURAL and BINAURAL_ROOM)", -#else - .description = "Head orientation tracking type: 'none', 'ref' or 'avg' (only for BINAURAL and BINAURAL_ROOM)", -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ }, { .id = CmdlnOptionId_lfePosition, @@ -289,14 +279,12 @@ static const CmdLnParser_Option cliOptions[] = { .matchShort = "l", .description = "List supported audio formats", }, -#ifdef OTR_REFERENCE_VECTOR_TRACKING { .id = CmdLnOptionId_referenceVectorFile, .match = "reference_vector_file", .matchShort = "rvf", .description = "Reference vector trajectory file for simulation of head tracking (only for BINAURAL and BINAURAL_ROOM outputs)", }, -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ }; @@ -523,9 +511,7 @@ int main( { IVAS_REND_HANDLE hIvasRend; HeadRotFileReader *headRotReader = NULL; -#ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader *referenceVectorReader = NULL; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ HeadRotFileReader *referenceRotReader = NULL; hrtfFileReader *hrtfFileReader = NULL; IsmPositionProvider *positionProvider; @@ -570,9 +556,7 @@ int main( convert_backslash( args.inputFilePath ); convert_backslash( args.outputFilePath ); convert_backslash( args.headRotationFilePath ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING convert_backslash( args.referenceVectorFilePath ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ convert_backslash( args.referenceRotationFilePath ); convert_backslash( args.inLfePanningMatrixFile ); @@ -593,7 +577,6 @@ int main( exit( -1 ); } } -#ifdef OTR_REFERENCE_VECTOR_TRACKING if ( !isEmptyString( args.referenceVectorFilePath ) ) { if ( Vector3PairFileReader_open( args.referenceVectorFilePath, &referenceVectorReader ) != IVAS_ERR_OK ) @@ -602,7 +585,6 @@ int main( exit( -1 ); } } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ if ( !isEmptyString( args.customHrtfFilePath ) ) { @@ -931,7 +913,6 @@ int main( ObjectPositionBuffer mtdBuffer; IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING if ( referenceVectorReader != NULL ) { IVAS_VECTOR3 listenerPos, refPos; @@ -946,7 +927,6 @@ int main( exit( -1 ); } } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ /* Read from reference rotation trajectory file if specified */ if ( referenceRotReader != NULL ) { @@ -1165,9 +1145,7 @@ int main( AudioFileReader_close( &audioReader ); AudioFileWriter_close( &audioWriter ); HeadRotationFileReader_close( &headRotReader ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING Vector3PairFileReader_close( &referenceVectorReader ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ HeadRotationFileReader_close( &referenceRotReader ); hrtfFileReader_close( &hrtfFileReader ); IVAS_REND_Close( &hIvasRend ); @@ -1406,7 +1384,6 @@ static bool parseOrientationTracking( { *tracking_type = IVAS_ORIENT_TRK_AVG; } -#ifdef OTR_REFERENCE_VECTOR_TRACKING else if ( strcmp( value, "REF_VEC" ) == 0 ) { *tracking_type = IVAS_ORIENT_TRK_REF_VEC; @@ -1415,7 +1392,6 @@ static bool parseOrientationTracking( { *tracking_type = IVAS_ORIENT_TRK_REF_VEC_LEV; } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ else { fprintf( stderr, "Error: Invalid orientation tracking type %s \n\n", value ); @@ -1633,9 +1609,7 @@ static CmdlnArgs defaultArgs( args.numInMetadataFiles = 0; clearString( args.headRotationFilePath ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING clearString( args.referenceVectorFilePath ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ clearString( args.referenceRotationFilePath ); clearString( args.customHrtfFilePath ); clearString( args.renderConfigFilePath ); @@ -1715,12 +1689,10 @@ static void parseOption( assert( numOptionValues == 1 ); strncpy( args->headRotationFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; -#ifdef OTR_REFERENCE_VECTOR_TRACKING case CmdLnOptionId_referenceVectorFile: assert( numOptionValues == 1 ); strncpy( args->referenceVectorFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ case CmdLnOptionId_refRotFile: assert( numOptionValues == 1 ); strncpy( args->referenceRotationFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); diff --git a/lib_com/common_api_types.h b/lib_com/common_api_types.h index 24811daca1..3e012a6f99 100644 --- a/lib_com/common_api_types.h +++ b/lib_com/common_api_types.h @@ -88,12 +88,10 @@ typedef struct } IVAS_QUATERNION; -#ifdef OTR_REFERENCE_VECTOR_TRACKING typedef struct { float x, y, z; } IVAS_VECTOR3; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ typedef struct { diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 76b19f5fc1..8f0059d092 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1501,21 +1501,17 @@ typedef enum #define IVAS_ORIENT_TRK_NONE 0 #define IVAS_ORIENT_TRK_REF 1 #define IVAS_ORIENT_TRK_AVG 2 -#ifdef OTR_REFERENCE_VECTOR_TRACKING #define IVAS_ORIENT_TRK_REF_VEC 3 #define IVAS_ORIENT_TRK_REF_VEC_LEV 4 -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ typedef enum { OTR_TRACKING_NONE = IVAS_ORIENT_TRK_NONE, OTR_TRACKING_REF_ORIENT = IVAS_ORIENT_TRK_REF, /* track orientation relative to external reference orientation (default: no rotation) */ OTR_TRACKING_AVG_ORIENT = IVAS_ORIENT_TRK_AVG /* track orientation relative to average orientation */ -#ifdef OTR_REFERENCE_VECTOR_TRACKING , OTR_TRACKING_REF_VEC = IVAS_ORIENT_TRK_REF_VEC, /* track orientation relative to external reference vector */ OTR_TRACKING_REF_VEC_LEV = IVAS_ORIENT_TRK_REF_VEC_LEV /* track orientation relative to level component of external reference vector */ -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ } OTR_TRACKING_T; diff --git a/lib_com/options.h b/lib_com/options.h index 84bde4b7e7..0348622c64 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -145,7 +145,6 @@ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ -#define OTR_REFERENCE_VECTOR_TRACKING /* FhG: enables the reference position orientation tracking mode */ #define FIX_380_BFI_PARAMISM /* VA: issue 380 - fix metadata recovery in ParamISM BFI */ #define FIX_MDCT_BASED_BWD /* FhG: fixes for BWD for issues with reaction to transients for MDCT-stereo and MCT */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 53b3216157..5c19eca256 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -814,7 +814,6 @@ ivas_error ivas_init_decoder( return error; } } -#ifdef OTR_REFERENCE_VECTOR_TRACKING else if ( st_ivas->hDecoderConfig->orientation_tracking == IVAS_ORIENT_TRK_REF_VEC ) { if ( ( error = ivas_orient_trk_SetTrackingType( st_ivas->hHeadTrackData->OrientationTracker, OTR_TRACKING_REF_VEC ) ) != IVAS_ERR_OK ) @@ -833,7 +832,6 @@ ivas_error ivas_init_decoder( { return IVAS_ERR_WRONG_MODE; } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ } /*-----------------------------------------------------------------* diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index ff0b5ab59a..f103935c99 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -953,7 +953,6 @@ ivas_error IVAS_DEC_FeedRefRotData( return IVAS_ERR_OK; } -#ifdef OTR_REFERENCE_VECTOR_TRACKING /*---------------------------------------------------------------------* * IVAS_DEC_FeedRefVectorData( ) * @@ -978,7 +977,6 @@ ivas_error IVAS_DEC_FeedRefVectorData( pOtr = hIvasDec->st_ivas->hHeadTrackData->OrientationTracker; return ivas_orient_trk_SetReferenceVector( pOtr, listenerPos, refPos ); } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ /*---------------------------------------------------------------------* * IVAS_DEC_FeedCustomLsData( ) diff --git a/lib_dec/lib_dec.h b/lib_dec/lib_dec.h index 91bbc2f8e9..e1e5bfe9f4 100644 --- a/lib_dec/lib_dec.h +++ b/lib_dec/lib_dec.h @@ -185,14 +185,12 @@ ivas_error IVAS_DEC_FeedRefRotData( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_QUATERNION rotation /* i : reference rotation data */ ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING /*! r: error code */ ivas_error IVAS_DEC_FeedRefVectorData( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ const IVAS_VECTOR3 listenerPos, /* i : Listener position */ const IVAS_VECTOR3 refPos /* i : Reference position */ ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ /*! r: error code */ ivas_error IVAS_DEC_VoIP_FeedFrame( diff --git a/lib_rend/ivas_orient_trk.c b/lib_rend/ivas_orient_trk.c index b78809a759..63d863c4b6 100644 --- a/lib_rend/ivas_orient_trk.c +++ b/lib_rend/ivas_orient_trk.c @@ -245,7 +245,6 @@ static void QuaternionInverse( } -#ifdef OTR_REFERENCE_VECTOR_TRACKING /*------------------------------------------------------------------------------------------* * VectorSubtract() * @@ -373,7 +372,6 @@ static void VectorRotationToQuaternion( return; } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ /*-------------------------------------------------------------------* * ivas_orient_trk_Init() @@ -402,9 +400,7 @@ ivas_error ivas_orient_trk_Init( /* initial adaptivity filter coefficient, will be auto-adapted */ pOTR->alpha = sinf( PI2 * pOTR->offCenterAdaptationRate / OTR_UPDATE_RATE ); /* start adaptation at off-center rate = fastest rate */ -#ifdef OTR_REFERENCE_VECTOR_TRACKING pOTR->trkRot = identity; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ pOTR->absAvgRot = identity; /* Use frontal and horiontal orientation as reference orientation, unless/until overridden */ pOTR->refRot = identity; @@ -486,10 +482,8 @@ ivas_error ivas_orient_trk_GetMainOrientation( case OTR_TRACKING_NONE: *pOrientation = IdentityQuaternion(); break; -#ifdef OTR_REFERENCE_VECTOR_TRACKING case OTR_TRACKING_REF_VEC: case OTR_TRACKING_REF_VEC_LEV: -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ case OTR_TRACKING_REF_ORIENT: *pOrientation = pOTR->refRot; break; @@ -524,7 +518,6 @@ ivas_error ivas_orient_trk_GetTrackedRotation( } -#ifdef OTR_REFERENCE_VECTOR_TRACKING /*-------------------------------------------------------------------* * ivas_orient_trk_SetReferenceVector() * @@ -582,7 +575,6 @@ ivas_error ivas_orient_trk_SetReferenceVector( return IVAS_ERR_OK; } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ /*-------------------------------------------------------------------* @@ -618,10 +610,8 @@ ivas_error ivas_orient_trk_Process( case OTR_TRACKING_NONE: pOTR->trkRot = absRot; break; -#ifdef OTR_REFERENCE_VECTOR_TRACKING case OTR_TRACKING_REF_VEC: case OTR_TRACKING_REF_VEC_LEV: -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ case OTR_TRACKING_REF_ORIENT: /* Reset average orientation */ pOTR->absAvgRot = absRot; diff --git a/lib_rend/ivas_prot_rend.h b/lib_rend/ivas_prot_rend.h index 7fe8392ba9..938e8de02c 100644 --- a/lib_rend/ivas_prot_rend.h +++ b/lib_rend/ivas_prot_rend.h @@ -856,13 +856,11 @@ ivas_error ivas_orient_trk_SetReferenceRotation( const IVAS_QUATERNION refRot /* i : reference rotation */ ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING ivas_error ivas_orient_trk_SetReferenceVector( ivas_orient_trk_state_t *pOTR, /* i/o: orientation tracker handle */ const IVAS_VECTOR3 listenerPos, /* i : Listener position */ const IVAS_VECTOR3 refPos /* i : Reference position */ ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ ivas_error ivas_orient_trk_GetMainOrientation( ivas_orient_trk_state_t *pOTR, /* i/o: orientation tracker handle */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 50f5a83581..51a54889a8 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -3859,14 +3859,12 @@ ivas_error IVAS_REND_SetOrientationTrackingMode( case IVAS_ORIENT_TRK_REF: mode = OTR_TRACKING_REF_ORIENT; break; -#ifdef OTR_REFERENCE_VECTOR_TRACKING case IVAS_ORIENT_TRK_REF_VEC: mode = OTR_TRACKING_REF_VEC; break; case IVAS_ORIENT_TRK_REF_VEC_LEV: mode = OTR_TRACKING_REF_VEC_LEV; break; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ case IVAS_ORIENT_TRK_NONE: default: mode = OTR_TRACKING_NONE; @@ -3964,7 +3962,6 @@ ivas_error IVAS_REND_GetTrackedRotation( } -#ifdef OTR_REFERENCE_VECTOR_TRACKING /*---------------------------------------------------------------------* * IVAS_REND_SetReferenceVector( ) * @@ -3985,7 +3982,6 @@ ivas_error IVAS_REND_SetReferenceVector( return ivas_orient_trk_SetReferenceVector( hIvasRend->headRotData.hOrientationTracker, listenerPos, refPos ); } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ /*-------------------------------------------------------------------* diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index b1f7361fec..99b33dc381 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -268,13 +268,11 @@ ivas_error IVAS_REND_GetTrackedRotation( IVAS_QUATERNION *pRotation /* i/o: Quaternion pointer for processed rotation */ ); -#ifdef OTR_REFERENCE_VECTOR_TRACKING ivas_error IVAS_REND_SetReferenceVector( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ const IVAS_VECTOR3 listenerPos, /* i : Listener position */ const IVAS_VECTOR3 refPos /* i : Reference position */ ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ ivas_error IVAS_REND_GetSamples( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ diff --git a/lib_util/vector3_pair_file_reader.c b/lib_util/vector3_pair_file_reader.c index 1b8a95bc88..628f3c2c38 100644 --- a/lib_util/vector3_pair_file_reader.c +++ b/lib_util/vector3_pair_file_reader.c @@ -38,7 +38,6 @@ #include "prot.h" #include "options.h" /* only included to get access to the feature-defines */ -#ifdef OTR_REFERENCE_VECTOR_TRACKING struct Vector3PairFileReader { @@ -163,4 +162,3 @@ const char *Vector3PairFileReader_getFilePath( return reader->file_path; } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ diff --git a/lib_util/vector3_pair_file_reader.h b/lib_util/vector3_pair_file_reader.h index a2fd706fc2..4ab687848c 100644 --- a/lib_util/vector3_pair_file_reader.h +++ b/lib_util/vector3_pair_file_reader.h @@ -37,7 +37,6 @@ #include "ivas_error.h" #include "options.h" /* only included to get access to the feature-defines */ -#ifdef OTR_REFERENCE_VECTOR_TRACKING typedef struct Vector3PairFileReader Vector3PairFileReader; @@ -84,6 +83,5 @@ const char *Vector3PairFileReader_getFilePath( Vector3PairFileReader *vector3PairReader /* i/o: Vector3PairFileReader handle */ ); -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ #endif /* IVAS_V3PAIR_FILE_READER_H */ -- GitLab From 5fe6524e6903cbc73da854b4c6729cd0c8882a8e Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:48:53 +0200 Subject: [PATCH 10/12] [cleanup] accept FIX_380_BFI_PARAMISM --- lib_com/options.h | 1 - lib_dec/ivas_ism_metadata_dec.c | 18 ------------------ 2 files changed, 19 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 0348622c64..11116e6225 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,6 @@ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ -#define FIX_380_BFI_PARAMISM /* VA: issue 380 - fix metadata recovery in ParamISM BFI */ #define FIX_MDCT_BASED_BWD /* FhG: fixes for BWD for issues with reaction to transients for MDCT-stereo and MCT */ #define DISCRETE_ISM_DTX_CNG /* FhG/VA: contribution 15 - DTX/CNG for (discrete) ISM */ #define NCHAN_ISM_PARAMETER /* VA: make 'nchan_ism' parameter part of st_ivas/hEncoderConfig */ diff --git a/lib_dec/ivas_ism_metadata_dec.c b/lib_dec/ivas_ism_metadata_dec.c index f8a5bea72b..75b9164e1d 100644 --- a/lib_dec/ivas_ism_metadata_dec.c +++ b/lib_dec/ivas_ism_metadata_dec.c @@ -437,7 +437,6 @@ ivas_error ivas_ism_metadata_dec( } else /* BFI */ { -#ifdef FIX_380_BFI_PARAMISM #ifndef NCHAN_ISM_PARAMETER /* "nchan_ism", "hIsmMeta->azimuth" and "hIsmMeta->elevation" are recycled from the last frame */ if ( ism_mode == ISM_MODE_PARAM ) @@ -450,14 +449,6 @@ ivas_error ivas_ism_metadata_dec( } #endif for ( ch = 0; ch < nchan_ism; ch++ ) -#else - /* "*nISms", "hIsmMeta->azimuth" and "hIsmMeta->elevation" are recycled from the last frame */ - for ( ch = 0; ch < *nchan_transport; ch++ ) - { - hIsmMeta[ch]->ism_metadata_flag = hIsmMeta[ch]->last_ism_metadata_flag; - } - for ( ; ch < nchan_ism; ch++ ) -#endif { hIsmMeta[ch]->last_ism_metadata_flag = hIsmMeta[ch]->ism_metadata_flag; } @@ -468,17 +459,8 @@ ivas_error ivas_ism_metadata_dec( { for ( ch = 0; ch < nchan_ism; ch++ ) { -#ifdef FIX_380_BFI_PARAMISM hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch] + hParamIsm->last_az_sgn[ch] * hParamIsm->last_az_diff[ch]; hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] + hParamIsm->last_el_sgn[ch] * hParamIsm->last_el_diff[ch]; -#else - hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch] + hParamIsm->last_az_sgn[ch] * hParamIsm->last_az_diff[ch]; - /*hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch] % hParamIsm->az_alpha[ch];*/ - hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch]; - hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] + hParamIsm->last_el_sgn[ch] * hParamIsm->last_el_diff[ch]; - /*hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] % hParamIsm->ele_alpha;*/ - hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch]; -#endif hIsmMeta[ch]->angle[0].last_azimuth_idx = hParamIsm->azi_index[ch]; hIsmMeta[ch]->angle[0].last_elevation_idx = hParamIsm->ele_index[ch]; } -- GitLab From ae97a5d4be1f15a076cf36d1d53bdfd91d08542a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:56:36 +0200 Subject: [PATCH 11/12] formatting --- apps/decoder.c | 9 ++++----- lib_dec/lib_dec.c | 2 +- lib_enc/ivas_ism_metadata_enc.c | 24 ++++++++++++------------ lib_enc/lib_enc.c | 4 ++-- lib_rend/ivas_objectRenderer.c | 22 +++++++++++----------- lib_rend/ivas_objectRenderer_sfx.c | 4 ++-- lib_rend/ivas_objectRenderer_vec.c | 4 ++-- lib_rend/lib_rend.c | 2 +- lib_util/head_rotation_file_reader.c | 5 ++--- lib_util/head_rotation_file_reader.h | 4 ++-- lib_util/ism_file_reader.c | 6 +++--- lib_util/vector3_pair_file_reader.c | 1 - 12 files changed, 42 insertions(+), 45 deletions(-) mode change 100755 => 100644 lib_enc/lib_enc.c diff --git a/apps/decoder.c b/apps/decoder.c index 43e8750c7a..e883144987 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -70,9 +70,9 @@ static #define MAX_NUM_OUTPUT_CHANNELS 16 #define MAX_OUTPUT_PCM_BUFFER_SIZE ( MAX_NUM_OUTPUT_CHANNELS * MAX_FRAME_SIZE ) -#define IVAS_PUBLIC_ORIENT_TRK_NONE ( 0 ) -#define IVAS_PUBLIC_ORIENT_TRK_REF ( 1 ) -#define IVAS_PUBLIC_ORIENT_TRK_AVG ( 2 ) +#define IVAS_PUBLIC_ORIENT_TRK_NONE ( 0 ) +#define IVAS_PUBLIC_ORIENT_TRK_REF ( 1 ) +#define IVAS_PUBLIC_ORIENT_TRK_AVG ( 2 ) #define IVAS_PUBLIC_ORIENT_TRK_REF_VEC ( 3 ) #define IVAS_PUBLIC_ORIENT_TRK_REF_VEC_LEV ( 4 ) @@ -917,8 +917,7 @@ static bool parseCmdlIVAS_dec( { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_NONE; } - else - if ( strcmp( argv_to_upper, "REF" ) == 0 ) + else if ( strcmp( argv_to_upper, "REF" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF; } diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index f103935c99..f95f18ae19 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -885,7 +885,7 @@ ivas_error IVAS_DEC_GetMasaMetadata( *---------------------------------------------------------------------*/ ivas_error IVAS_DEC_FeedHeadTrackData( - IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ + IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_QUATERNION *orientation, /* i : head-tracking data, listener orientation */ IVAS_POSITION *Pos /* i : listener position */ ) diff --git a/lib_enc/ivas_ism_metadata_enc.c b/lib_enc/ivas_ism_metadata_enc.c index da1a568a94..5b45d909f1 100644 --- a/lib_enc/ivas_ism_metadata_enc.c +++ b/lib_enc/ivas_ism_metadata_enc.c @@ -53,7 +53,7 @@ #define ISM_MAX_AZIMUTH_DIFF_IDX ( ISM_AZIMUTH_NBITS - 1 /*zero*/ - 1 /*sign*/ ) #define ISM_MAX_ELEVATION_DIFF_IDX ( ISM_ELEVATION_NBITS - 1 /*zero*/ - 1 /*sign*/ ) -#define ISM_MAX_RADIUS_DIFF_IDX ( ISM_RADIUS_NBITS - 1 /*zero*/ - 1 /*sign*/ ) +#define ISM_MAX_RADIUS_DIFF_IDX ( ISM_RADIUS_NBITS - 1 /*zero*/ - 1 /*sign*/ ) #define ISM_FEC_MAX 10 @@ -78,10 +78,10 @@ static void encode_radius( BSTR_ENC_HANDLE hBstr, int16_t *last_radius_idx, int1 ivas_error ivas_set_ism_metadata( ISM_METADATA_HANDLE hIsmMeta, /* o : ISM metadata handle */ const float azimuth, /* i : azimuth value */ - const float elevation, /* i : elevation */ - const float radius_meta, /* i : radius */ - const float yaw, /* i : yaw */ - const float pitch /* i : pitch */ + const float elevation, /* i : elevation */ + const float radius_meta, /* i : radius */ + const float yaw, /* i : yaw */ + const float pitch /* i : pitch */ ) { if ( hIsmMeta == NULL ) @@ -166,13 +166,13 @@ ivas_error ivas_ism_metadata_enc( #ifdef NCHAN_ISM_PARAMETER const int16_t nchan_ism, /* i : number of ISM channels */ #endif - const int16_t nchan_transport, /* i : number of transport channels */ - ISM_METADATA_HANDLE hIsmMeta[], /* i/o: ISM metadata handles */ - SCE_ENC_HANDLE hSCE[], /* i/o: SCE encoder handles */ - BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ - int16_t nb_bits_metadata[], /* o : number of metadata bits */ - const int16_t localVAD[], /* i : VAD flag */ - const int16_t ism_mode, /* i : ISM mode */ + const int16_t nchan_transport, /* i : number of transport channels */ + ISM_METADATA_HANDLE hIsmMeta[], /* i/o: ISM metadata handles */ + SCE_ENC_HANDLE hSCE[], /* i/o: SCE encoder handles */ + BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ + int16_t nb_bits_metadata[], /* o : number of metadata bits */ + const int16_t localVAD[], /* i : VAD flag */ + const int16_t ism_mode, /* i : ISM mode */ const PARAM_ISM_CONFIG_HANDLE hParamIsm, /* i : Param ISM Enc Handle */ const int16_t ism_extended_metadata_flag /* i : Extended metadata flag */ ) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c old mode 100755 new mode 100644 index dfc467b7a9..ebc2551ce2 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -366,8 +366,8 @@ ivas_error IVAS_ENC_ConfigureForObjects( const bool max_bwidth_user, /* i : shows if bandwidth limitation was set by the user (true) or if default bandwidth was used (false) */ const IVAS_ENC_BANDWIDTH maxBandwidth, /* i : bandwidth limitation */ const IVAS_ENC_DTX_CONFIG dtxConfig, /* i : configuration of DTX, can by set to default by using IVAS_ENC_GetDefaultDtxConfig() */ - const uint16_t numObjects, /* i : number of objects to be encoded */ - const bool ism_extended_metadata /* i : Extended metadata used (true/false), where extended metadata includes radius and orientation */ + const uint16_t numObjects, /* i : number of objects to be encoded */ + const bool ism_extended_metadata /* i : Extended metadata used (true/false), where extended metadata includes radius and orientation */ ) { Encoder_Struct *st_ivas; diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index b3add4dad3..ed36fa26b1 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -57,12 +57,12 @@ static void angles_to_vec( const float radius, const float azimuth, const float *---------------------------------------------------------------------*/ ivas_error ivas_td_binaural_open_unwrap( - TDREND_HRFILT_FiltSet_t **hHrtfTD, /* i/o: HR filter model (from file or NULL) */ - const int32_t output_Fs, /* i : Output sampling rate */ - const int16_t nchan_transport, /* i : Number of channels */ - const IVAS_FORMAT ivas_format, /* i : IVAS format (ISM/MC) */ - const AUDIO_CONFIG transport_config, /* i : Transport configuration */ - const float *directivity, /* i : Directivity pattern (used for ISM) */ + TDREND_HRFILT_FiltSet_t **hHrtfTD, /* i/o: HR filter model (from file or NULL) */ + const int32_t output_Fs, /* i : Output sampling rate */ + const int16_t nchan_transport, /* i : Number of channels */ + const IVAS_FORMAT ivas_format, /* i : IVAS format (ISM/MC) */ + const AUDIO_CONFIG transport_config, /* i : Transport configuration */ + const float *directivity, /* i : Directivity pattern (used for ISM) */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : Loudspeaker layout */ BINAURAL_TD_OBJECT_RENDERER_HANDLE *hBinRendererTd, /* o : TD renderer handle */ int32_t *binaural_latency_ns /* i : Binauralization delay */ @@ -258,9 +258,9 @@ 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 */ - const IVAS_POSITION *Pos, /* i : Listener position data per subframe */ - float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ - const int16_t output_frame /* i : output frame length */ + const IVAS_POSITION *Pos, /* i : Listener position data per subframe */ + float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ + const int16_t output_frame /* i : output frame length */ ) { int16_t subframe_length; @@ -461,8 +461,8 @@ void TDREND_Update_object_positions( 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 */ - const IVAS_POSITION *Pos /* i : Listener Position */ + const IVAS_QUATERNION *headPosition, /* i : Listener orientation */ + const IVAS_POSITION *Pos /* i : Listener Position */ ) { float FrontVec[3]; diff --git a/lib_rend/ivas_objectRenderer_sfx.c b/lib_rend/ivas_objectRenderer_sfx.c index c6645f783a..98f45a5dd9 100644 --- a/lib_rend/ivas_objectRenderer_sfx.c +++ b/lib_rend/ivas_objectRenderer_sfx.c @@ -235,8 +235,8 @@ void TDREND_firfilt( const int16_t intp_count, /* i : interpolation count */ float *mem, /* i/o: filter memory */ const int16_t subframe_length, /* i : Length of signal */ - const int16_t filterlength, /* i : Filter length */ - const float Gain /* i : Gain */ + const int16_t filterlength, /* i : Filter length */ + const float Gain /* i : Gain */ ) { float buffer[SFX_SPAT_BIN_MAX_FILTER_LENGTH - 1 + L_SUBFRAME5MS_48k]; diff --git a/lib_rend/ivas_objectRenderer_vec.c b/lib_rend/ivas_objectRenderer_vec.c index 0b04e4b877..061b790e1b 100644 --- a/lib_rend/ivas_objectRenderer_vec.c +++ b/lib_rend/ivas_objectRenderer_vec.c @@ -111,8 +111,8 @@ void TDREND_SPATIAL_VecMapToNewCoordSystem( const float *DirVec_p, /* i : Direction vector */ const float *UpVec_p, /* i : Up vector */ const float *RightVec_p, /* i : Right vector */ - float *MappedVec_p, /* o : Transformed vector */ - float *LisRelPosAbs /* o : Transformed vector ignoring orientation */ + float *MappedVec_p, /* o : Transformed vector */ + float *LisRelPosAbs /* o : Transformed vector ignoring orientation */ ) { v_sub( Vec_p, TranslVec_p, LisRelPosAbs, 3 ); diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 51a54889a8..37851cf1ab 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -3784,7 +3784,7 @@ int16_t IVAS_REND_FeedRenderConfig( *-------------------------------------------------------------------*/ ivas_error IVAS_REND_SetHeadRotation( - IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME], /* i : head orientations for next rendering call */ const IVAS_POSITION Pos[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : listener positions for next rendering call */ ) diff --git a/lib_util/head_rotation_file_reader.c b/lib_util/head_rotation_file_reader.c index fcc822cb76..02f14be924 100644 --- a/lib_util/head_rotation_file_reader.c +++ b/lib_util/head_rotation_file_reader.c @@ -93,8 +93,8 @@ 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 */ + IVAS_QUATERNION *pQuaternion, /* o : head-tracking data */ + IVAS_POSITION *pPos /* o : listener position */ ) { float w, x, y, z; @@ -134,7 +134,6 @@ ivas_error HeadRotationFileReading( } - /*-----------------------------------------------------------------------* * HeadRotationFileReader_close() * diff --git a/lib_util/head_rotation_file_reader.h b/lib_util/head_rotation_file_reader.h index ac4117180b..4794aeba45 100644 --- a/lib_util/head_rotation_file_reader.h +++ b/lib_util/head_rotation_file_reader.h @@ -59,8 +59,8 @@ 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 */ + IVAS_QUATERNION *pQuaternion, /* o : head-tracking data */ + IVAS_POSITION *pPos /* o : listener position */ ); /*-----------------------------------------------------------------------* diff --git a/lib_util/ism_file_reader.c b/lib_util/ism_file_reader.c index 702c90c0f6..b27d0e9e78 100644 --- a/lib_util/ism_file_reader.c +++ b/lib_util/ism_file_reader.c @@ -36,9 +36,9 @@ #include -#define META_LINE_LENGTH 200 /* max number of characters at one line of metadata input/output file */ -#define NUM_ISM_METADATA_PER_LINE 7 /* Number of ISM metadata per line in a metadata file */ -#define NUM_MIN_ISM_METADATA 2 /* Minimum number of metadata parameters (azimuth and elevation) */ +#define META_LINE_LENGTH 200 /* max number of characters at one line of metadata input/output file */ +#define NUM_ISM_METADATA_PER_LINE 7 /* Number of ISM metadata per line in a metadata file */ +#define NUM_MIN_ISM_METADATA 2 /* Minimum number of metadata parameters (azimuth and elevation) */ struct IsmFileReader diff --git a/lib_util/vector3_pair_file_reader.c b/lib_util/vector3_pair_file_reader.c index 628f3c2c38..9e03358b91 100644 --- a/lib_util/vector3_pair_file_reader.c +++ b/lib_util/vector3_pair_file_reader.c @@ -161,4 +161,3 @@ const char *Vector3PairFileReader_getFilePath( return reader->file_path; } - -- GitLab From 1b51d02b1f78c926e486cf48f01c79fdd6542681 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 29 Mar 2023 21:57:40 +0200 Subject: [PATCH 12/12] whitespace --- lib_com/options.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 11116e6225..3c6e1aa960 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,8 +144,6 @@ /*#define SBA_HPF_TUNING_DEC*/ #define FIX_350_MASA_DELAY_COMP /* Nokia: Issue 350: MASA audio/meta delay compensation */ - - #define FIX_MDCT_BASED_BWD /* FhG: fixes for BWD for issues with reaction to transients for MDCT-stereo and MCT */ #define DISCRETE_ISM_DTX_CNG /* FhG/VA: contribution 15 - DTX/CNG for (discrete) ISM */ #define NCHAN_ISM_PARAMETER /* VA: make 'nchan_ism' parameter part of st_ivas/hEncoderConfig */ -- GitLab