Loading apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -452,7 +452,7 @@ int main( { renderConfig.directivity_fx[i * 3] = (Word16) ( renderConfig.directivity[i * 3] * ( 1u << 6 ) ); renderConfig.directivity_fx[i * 3 + 1] = (Word16) ( renderConfig.directivity[i * 3 + 1] * ( 1u << 6 ) ); renderConfig.directivity_fx[i * 3 + 2] = (Word16) ( renderConfig.directivity[i * 3 + 2] * ( 1u << 15 ) ); renderConfig.directivity_fx[i * 3 + 2] = (Word16) ( renderConfig.directivity[i * 3 + 2] * ( (1u << 15)-1 ) ); } #endif // IVAS_FLOAT_FIXED Loading apps/renderer.c +23 −2 Original line number Diff line number Diff line Loading @@ -48,6 +48,10 @@ #include "vector3_pair_file_reader.h" #include "wmc_auto.h" #ifdef IVAS_FLOAT_FIXED #include "prot_fx1.h" #endif #define WMC_TOOL_SKIP /*------------------------------------------------------------------------------------------* Loading Loading @@ -826,11 +830,20 @@ int main( } const int16_t frameSize_smpls = (int16_t) ( ( args.render_framesize ) * args.sampleRate * 5 / ( 1000 ) ); if ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) #ifdef IVAS_FLOAT_FIXED Word32 nonDiegeticPanGain_fx = (args.nonDiegeticPanGain ==1.0f)? ONE_IN_Q31: (args.nonDiegeticPanGain == -1.0f)? L_negate(ONE_IN_Q31):(Word32)(args.nonDiegeticPanGain*(1LL<< Q31 )); IF( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, nonDiegeticPanGain_fx, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #else IF ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif // IVAS_FLOAT_FIXED /* === Configure === */ if ( ( error = IVAS_REND_InitConfig( hIvasRend, args.outConfig.audioConfig ) ) != IVAS_ERR_OK ) Loading Loading @@ -924,12 +937,20 @@ int main( fprintf( stderr, "Error in IVAS_REND_SetTotalNumberOfObjects(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #ifdef IVAS_FLOAT_FIXED Word32 var1 = (Word32)(args.syncMdDelay); IF((error = IVAS_REND_SetIsmMetadataDelay(hIvasRend, var1)) != IVAS_ERR_OK) { fprintf(stderr, "Error in IVAS_REND_SetIsmMetadataDelay(): %s\n", ivas_error_to_string(error)); exit(-1); } #else if ( ( error = IVAS_REND_SetIsmMetadataDelay( hIvasRend, args.syncMdDelay ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in IVAS_REND_SetIsmMetadataDelay(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif } IVAS_REND_LfePanMtx lfePanMatrix; Loading lib_com/basop32.c +8 −0 Original line number Diff line number Diff line Loading @@ -3577,12 +3577,20 @@ Word16 div_l( Word32 L_num, Word16 den ) if ( den == (Word16) 0 ) { #ifdef IVAS_FLOAT_FIXED /* NOTE: This is just for temporary usage for identifying crashes */ assert( 0 ); #endif // IVAS_FLOAT_FIXED /* printf("Division by 0 in div_l, Fatal error in "); printStack(); */ exit( -1 ); } if ( ( L_num < (Word32) 0 ) || ( den < (Word16) 0 ) ) { #ifdef IVAS_FLOAT_FIXED /* NOTE: This is just for temporary usage for identifying crashes */ assert( 0 ); #endif // IVAS_FLOAT_FIXED /* printf("Division Error in div_l, Fatal error in "); printStack(); */ exit( -1 ); } Loading lib_com/cnst.h +2 −1 Original line number Diff line number Diff line Loading @@ -2016,7 +2016,8 @@ typedef enum _DCTTYPE #define EPSILON_FX_SMALL 1 #define EPSILON_FIX (1) #define EPSILON_FX (Word32)1 #define EPSILON_FX_M 1208925819 #define EPSILON_FX_E -49 #define MAX_SEGMENT_LENGTH 480 #define NUM_TIME_SWITCHING_BLOCKS 4 Loading lib_com/common_api_types.h +6 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,11 @@ typedef struct _IVAS_ISM_METADATA #ifdef IVAS_FLOAT_FIXED Word32 azimuth_fx; Word32 elevation_fx; Word16 radius_fx; Word32 spread_fx; Word32 gainFactor_fx; Word32 yaw_fx; Word32 pitch_fx; #endif float azimuth; float elevation; Loading Loading @@ -255,4 +260,5 @@ typedef struct _IVAS_RENDER_CONFIG #endif } IVAS_RENDER_CONFIG_DATA, *IVAS_RENDER_CONFIG_HANDLE; #endif /* COMMON_API_TYPES_H */ Loading
apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -452,7 +452,7 @@ int main( { renderConfig.directivity_fx[i * 3] = (Word16) ( renderConfig.directivity[i * 3] * ( 1u << 6 ) ); renderConfig.directivity_fx[i * 3 + 1] = (Word16) ( renderConfig.directivity[i * 3 + 1] * ( 1u << 6 ) ); renderConfig.directivity_fx[i * 3 + 2] = (Word16) ( renderConfig.directivity[i * 3 + 2] * ( 1u << 15 ) ); renderConfig.directivity_fx[i * 3 + 2] = (Word16) ( renderConfig.directivity[i * 3 + 2] * ( (1u << 15)-1 ) ); } #endif // IVAS_FLOAT_FIXED Loading
apps/renderer.c +23 −2 Original line number Diff line number Diff line Loading @@ -48,6 +48,10 @@ #include "vector3_pair_file_reader.h" #include "wmc_auto.h" #ifdef IVAS_FLOAT_FIXED #include "prot_fx1.h" #endif #define WMC_TOOL_SKIP /*------------------------------------------------------------------------------------------* Loading Loading @@ -826,11 +830,20 @@ int main( } const int16_t frameSize_smpls = (int16_t) ( ( args.render_framesize ) * args.sampleRate * 5 / ( 1000 ) ); if ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) #ifdef IVAS_FLOAT_FIXED Word32 nonDiegeticPanGain_fx = (args.nonDiegeticPanGain ==1.0f)? ONE_IN_Q31: (args.nonDiegeticPanGain == -1.0f)? L_negate(ONE_IN_Q31):(Word32)(args.nonDiegeticPanGain*(1LL<< Q31 )); IF( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, nonDiegeticPanGain_fx, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #else IF ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif // IVAS_FLOAT_FIXED /* === Configure === */ if ( ( error = IVAS_REND_InitConfig( hIvasRend, args.outConfig.audioConfig ) ) != IVAS_ERR_OK ) Loading Loading @@ -924,12 +937,20 @@ int main( fprintf( stderr, "Error in IVAS_REND_SetTotalNumberOfObjects(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #ifdef IVAS_FLOAT_FIXED Word32 var1 = (Word32)(args.syncMdDelay); IF((error = IVAS_REND_SetIsmMetadataDelay(hIvasRend, var1)) != IVAS_ERR_OK) { fprintf(stderr, "Error in IVAS_REND_SetIsmMetadataDelay(): %s\n", ivas_error_to_string(error)); exit(-1); } #else if ( ( error = IVAS_REND_SetIsmMetadataDelay( hIvasRend, args.syncMdDelay ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in IVAS_REND_SetIsmMetadataDelay(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif } IVAS_REND_LfePanMtx lfePanMatrix; Loading
lib_com/basop32.c +8 −0 Original line number Diff line number Diff line Loading @@ -3577,12 +3577,20 @@ Word16 div_l( Word32 L_num, Word16 den ) if ( den == (Word16) 0 ) { #ifdef IVAS_FLOAT_FIXED /* NOTE: This is just for temporary usage for identifying crashes */ assert( 0 ); #endif // IVAS_FLOAT_FIXED /* printf("Division by 0 in div_l, Fatal error in "); printStack(); */ exit( -1 ); } if ( ( L_num < (Word32) 0 ) || ( den < (Word16) 0 ) ) { #ifdef IVAS_FLOAT_FIXED /* NOTE: This is just for temporary usage for identifying crashes */ assert( 0 ); #endif // IVAS_FLOAT_FIXED /* printf("Division Error in div_l, Fatal error in "); printStack(); */ exit( -1 ); } Loading
lib_com/cnst.h +2 −1 Original line number Diff line number Diff line Loading @@ -2016,7 +2016,8 @@ typedef enum _DCTTYPE #define EPSILON_FX_SMALL 1 #define EPSILON_FIX (1) #define EPSILON_FX (Word32)1 #define EPSILON_FX_M 1208925819 #define EPSILON_FX_E -49 #define MAX_SEGMENT_LENGTH 480 #define NUM_TIME_SWITCHING_BLOCKS 4 Loading
lib_com/common_api_types.h +6 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,11 @@ typedef struct _IVAS_ISM_METADATA #ifdef IVAS_FLOAT_FIXED Word32 azimuth_fx; Word32 elevation_fx; Word16 radius_fx; Word32 spread_fx; Word32 gainFactor_fx; Word32 yaw_fx; Word32 pitch_fx; #endif float azimuth; float elevation; Loading Loading @@ -255,4 +260,5 @@ typedef struct _IVAS_RENDER_CONFIG #endif } IVAS_RENDER_CONFIG_DATA, *IVAS_RENDER_CONFIG_HANDLE; #endif /* COMMON_API_TYPES_H */