Loading apps/decoder.c +16 −0 Original line number Diff line number Diff line Loading @@ -226,10 +226,18 @@ int main( * Open decoder handle *------------------------------------------------------------------------------------------*/ #ifdef FIX_439_OTR_PARAMS #ifdef NON_DIEGETIC_PAN if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.no_diegetic_pan ) ) != IVAS_ERR_OK ) #endif #else #ifdef NON_DIEGETIC_PAN if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.orientation_tracking ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.orientation_tracking, arg.no_diegetic_pan ) ) != IVAS_ERR_OK ) #endif #endif { fprintf( stderr, "Open failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); Loading Loading @@ -395,10 +403,18 @@ int main( * Configure the decoder *------------------------------------------------------------------------------------------*/ #ifdef FIX_439_OTR_PARAMS #ifdef NON_DIEGETIC_PAN if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled ) ) != IVAS_ERR_OK ) #endif #else #ifdef NON_DIEGETIC_PAN if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled ) ) != IVAS_ERR_OK ) #endif #endif { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); Loading apps/renderer.c +42 −2 Original line number Diff line number Diff line Loading @@ -135,7 +135,11 @@ typedef struct char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char customHrtfFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char renderConfigFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; #ifdef FIX_439_OTR_PARAMS int8_t orientation_tracking; #else int8_t orientationTracking; #endif #ifdef NON_DIEGETIC_PAN int16_t nonDiegeticPan; float nonDiegeticPanGain; Loading Loading @@ -732,7 +736,11 @@ int main( } } #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_REND_SetOrientationTrackingMode( hIvasRend, args.orientation_tracking ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetOrientationTrackingMode( hIvasRend, args.orientationTracking ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -1424,30 +1432,54 @@ static bool parseDiegeticPan( static bool parseOrientationTracking( char *value, int8_t *tracking_type ) #ifdef FIX_439_OTR_PARAMS int8_t *orientation_tracking #else int8_t *tracking_type #endif ) { to_upper( value ); if ( strcmp( value, "NONE" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_NONE; #else *tracking_type = IVAS_ORIENT_TRK_NONE; #endif } else if ( strcmp( value, "REF" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_REF; #else *tracking_type = IVAS_ORIENT_TRK_REF; #endif } else if ( strcmp( value, "AVG" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_AVG; #else *tracking_type = IVAS_ORIENT_TRK_AVG; #endif } else if ( strcmp( value, "REF_VEC" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_REF_VEC; #else *tracking_type = IVAS_ORIENT_TRK_REF_VEC; #endif } else if ( strcmp( value, "REF_VEC_LEV" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_REF_VEC_LEV; #else *tracking_type = IVAS_ORIENT_TRK_REF_VEC_LEV; #endif } else { Loading Loading @@ -1671,7 +1703,11 @@ static CmdlnArgs defaultArgs( clearString( args.customHrtfFilePath ); clearString( args.renderConfigFilePath ); #ifdef FIX_439_OTR_PARAMS args.orientation_tracking = HEAD_ORIENT_TRK_NONE; #else args.orientationTracking = IVAS_ORIENT_TRK_NONE; #endif #ifdef NON_DIEGETIC_PAN args.nonDiegeticPan = 0; args.nonDiegeticPanGain = 0.f; Loading Loading @@ -1784,7 +1820,11 @@ static void parseOption( break; case CmdLnOptionId_orientationTracking: assert( numOptionValues == 1 ); #ifdef FIX_439_OTR_PARAMS if ( !parseOrientationTracking( optionValues[0], &args->orientation_tracking ) ) #else if ( !parseOrientationTracking( optionValues[0], &args->orientationTracking ) ) #endif { fprintf( stderr, "Unknown option for orientation tracking: %s\n", optionValues[0] ); exit( -1 ); Loading lib_com/common_api_types.h +10 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,16 @@ typedef struct float x, y, z; } IVAS_VECTOR3; #ifdef FIX_439_OTR_PARAMS typedef enum { HEAD_ORIENT_TRK_NONE, HEAD_ORIENT_TRK_REF, HEAD_ORIENT_TRK_AVG, HEAD_ORIENT_TRK_REF_VEC, HEAD_ORIENT_TRK_REF_VEC_LEV } HEAD_ORIENT_TRK_T; #endif typedef struct ivas_masa_metadata_frame_struct *IVAS_MASA_METADATA_HANDLE; typedef struct ivas_masa_decoder_ext_out_meta_struct *MASA_DECODER_EXT_OUT_META_HANDLE; Loading lib_com/ivas_cnst.h +2 −1 Original line number Diff line number Diff line Loading @@ -1642,6 +1642,7 @@ typedef enum } SFX_OpMode_t; #ifndef FIX_439_OTR_PARAMS /*----------------------------------------------------------------------------------* * Orientation tracking constants *----------------------------------------------------------------------------------*/ Loading @@ -1662,7 +1663,7 @@ typedef enum 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 */ } OTR_TRACKING_T; #endif /*----------------------------------------------------------------------------------* * Reverberator constants Loading lib_com/ivas_rom_com.c +8 −1 Original line number Diff line number Diff line Loading @@ -889,13 +889,20 @@ const ivas_spar_br_table_t ivas_spar_br_table_consts[IVAS_SPAR_BR_TABLE_LEN] = { /* When AGC is ON additional (AGC_BITS_PER_CH+1) bits may be taken from each core-coder channel so minimum core-coder bitrate per channel can be min core-coder bitrates as per the table - AGC_BITS_PER_CH */ /* preferred tuning (3.2/4.9kbps) with/out TDD */ { 13200, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0, #ifdef FIX_487_LOWRATE_SBA_TUNING_FIX { { 10000, 8150, 13150 } }, #else { { 10000, 8300, 13150 } }, #endif { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, { 16400, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0, #ifdef FIX_487_LOWRATE_SBA_TUNING_FIX { { 13200, 11350, 16350 } }, #else { { 13200, 11500, 16350 } }, #endif { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, { 24400, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0,{ { 16400, 14850, 24350 } }, { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, Loading Loading
apps/decoder.c +16 −0 Original line number Diff line number Diff line Loading @@ -226,10 +226,18 @@ int main( * Open decoder handle *------------------------------------------------------------------------------------------*/ #ifdef FIX_439_OTR_PARAMS #ifdef NON_DIEGETIC_PAN if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.no_diegetic_pan ) ) != IVAS_ERR_OK ) #endif #else #ifdef NON_DIEGETIC_PAN if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.orientation_tracking ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.orientation_tracking, arg.no_diegetic_pan ) ) != IVAS_ERR_OK ) #endif #endif { fprintf( stderr, "Open failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); Loading Loading @@ -395,10 +403,18 @@ int main( * Configure the decoder *------------------------------------------------------------------------------------------*/ #ifdef FIX_439_OTR_PARAMS #ifdef NON_DIEGETIC_PAN if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled ) ) != IVAS_ERR_OK ) #endif #else #ifdef NON_DIEGETIC_PAN if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled ) ) != IVAS_ERR_OK ) #endif #endif { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); Loading
apps/renderer.c +42 −2 Original line number Diff line number Diff line Loading @@ -135,7 +135,11 @@ typedef struct char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char customHrtfFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char renderConfigFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; #ifdef FIX_439_OTR_PARAMS int8_t orientation_tracking; #else int8_t orientationTracking; #endif #ifdef NON_DIEGETIC_PAN int16_t nonDiegeticPan; float nonDiegeticPanGain; Loading Loading @@ -732,7 +736,11 @@ int main( } } #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_REND_SetOrientationTrackingMode( hIvasRend, args.orientation_tracking ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetOrientationTrackingMode( hIvasRend, args.orientationTracking ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -1424,30 +1432,54 @@ static bool parseDiegeticPan( static bool parseOrientationTracking( char *value, int8_t *tracking_type ) #ifdef FIX_439_OTR_PARAMS int8_t *orientation_tracking #else int8_t *tracking_type #endif ) { to_upper( value ); if ( strcmp( value, "NONE" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_NONE; #else *tracking_type = IVAS_ORIENT_TRK_NONE; #endif } else if ( strcmp( value, "REF" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_REF; #else *tracking_type = IVAS_ORIENT_TRK_REF; #endif } else if ( strcmp( value, "AVG" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_AVG; #else *tracking_type = IVAS_ORIENT_TRK_AVG; #endif } else if ( strcmp( value, "REF_VEC" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_REF_VEC; #else *tracking_type = IVAS_ORIENT_TRK_REF_VEC; #endif } else if ( strcmp( value, "REF_VEC_LEV" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *orientation_tracking = HEAD_ORIENT_TRK_REF_VEC_LEV; #else *tracking_type = IVAS_ORIENT_TRK_REF_VEC_LEV; #endif } else { Loading Loading @@ -1671,7 +1703,11 @@ static CmdlnArgs defaultArgs( clearString( args.customHrtfFilePath ); clearString( args.renderConfigFilePath ); #ifdef FIX_439_OTR_PARAMS args.orientation_tracking = HEAD_ORIENT_TRK_NONE; #else args.orientationTracking = IVAS_ORIENT_TRK_NONE; #endif #ifdef NON_DIEGETIC_PAN args.nonDiegeticPan = 0; args.nonDiegeticPanGain = 0.f; Loading Loading @@ -1784,7 +1820,11 @@ static void parseOption( break; case CmdLnOptionId_orientationTracking: assert( numOptionValues == 1 ); #ifdef FIX_439_OTR_PARAMS if ( !parseOrientationTracking( optionValues[0], &args->orientation_tracking ) ) #else if ( !parseOrientationTracking( optionValues[0], &args->orientationTracking ) ) #endif { fprintf( stderr, "Unknown option for orientation tracking: %s\n", optionValues[0] ); exit( -1 ); Loading
lib_com/common_api_types.h +10 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,16 @@ typedef struct float x, y, z; } IVAS_VECTOR3; #ifdef FIX_439_OTR_PARAMS typedef enum { HEAD_ORIENT_TRK_NONE, HEAD_ORIENT_TRK_REF, HEAD_ORIENT_TRK_AVG, HEAD_ORIENT_TRK_REF_VEC, HEAD_ORIENT_TRK_REF_VEC_LEV } HEAD_ORIENT_TRK_T; #endif typedef struct ivas_masa_metadata_frame_struct *IVAS_MASA_METADATA_HANDLE; typedef struct ivas_masa_decoder_ext_out_meta_struct *MASA_DECODER_EXT_OUT_META_HANDLE; Loading
lib_com/ivas_cnst.h +2 −1 Original line number Diff line number Diff line Loading @@ -1642,6 +1642,7 @@ typedef enum } SFX_OpMode_t; #ifndef FIX_439_OTR_PARAMS /*----------------------------------------------------------------------------------* * Orientation tracking constants *----------------------------------------------------------------------------------*/ Loading @@ -1662,7 +1663,7 @@ typedef enum 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 */ } OTR_TRACKING_T; #endif /*----------------------------------------------------------------------------------* * Reverberator constants Loading
lib_com/ivas_rom_com.c +8 −1 Original line number Diff line number Diff line Loading @@ -889,13 +889,20 @@ const ivas_spar_br_table_t ivas_spar_br_table_consts[IVAS_SPAR_BR_TABLE_LEN] = { /* When AGC is ON additional (AGC_BITS_PER_CH+1) bits may be taken from each core-coder channel so minimum core-coder bitrate per channel can be min core-coder bitrates as per the table - AGC_BITS_PER_CH */ /* preferred tuning (3.2/4.9kbps) with/out TDD */ { 13200, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0, #ifdef FIX_487_LOWRATE_SBA_TUNING_FIX { { 10000, 8150, 13150 } }, #else { { 10000, 8300, 13150 } }, #endif { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, { 16400, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0, #ifdef FIX_487_LOWRATE_SBA_TUNING_FIX { { 13200, 11350, 16350 } }, #else { { 13200, 11500, 16350 } }, #endif { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, { 24400, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0,{ { 16400, 14850, 24350 } }, { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, Loading