Loading apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -3134,7 +3134,7 @@ static ivas_error printBitstreamInfoVoip( { bool previewFailed = true; ivas_error error = IVAS_ERR_OK; IVAS_RTP ivasRtp; IVAS_RTP ivasRtp = { 0 }; uint8_t au[( IVAS_MAX_BITS_PER_FRAME + 7 ) >> 3]; int16_t auSizeBits; uint8_t *auPtr = NULL; Loading apps/encoder.c +0 −18 Original line number Diff line number Diff line Loading @@ -40,9 +40,7 @@ #include "masa_file_reader.h" #include "rotation_file_reader.h" #include "ivas_rtp_file.h" #ifdef FIX_1527_CMR_BITRATE_IDX #include "requests_file_reader.h" #endif #ifdef DEBUGGING #include "debug.h" #endif Loading Loading @@ -160,9 +158,7 @@ typedef struct char *sceneOrientationTrajFileName; char *deviceOrientationTrajFileName; #ifdef FIX_1527_CMR_BITRATE_IDX char *requestsFileName; #endif } EncArguments; Loading Loading @@ -230,9 +226,7 @@ int main( uint8_t au[IVAS_MAX_BITS_PER_FRAME / 8]; IVAS_RTP ivasRtp = { 0 }; #ifdef FIX_1527_CMR_BITRATE_IDX ReqFileReader *requestsFileReader = NULL; #endif /* Ideally ssrc is negotiated via SDP and sequence number is radomized but we use fixed seed for random num generator for regression based tests. Any realtime application should implement this initialization seperately */ Loading Loading @@ -672,7 +666,6 @@ int main( } } #ifdef FIX_1527_CMR_BITRATE_IDX /*------------------------------------------------------------------------------------------* * Open remote requests file for rtp packing (E-bytes) *------------------------------------------------------------------------------------------*/ Loading @@ -684,7 +677,6 @@ int main( goto cleanup; } } #endif /*------------------------------------------------------------------------------------------* * Run the encoder Loading Loading @@ -895,7 +887,6 @@ int main( } } #ifdef FIX_1527_CMR_BITRATE_IDX if ( requestsFileReader ) { if ( ( error = ReadNextRequests( requestsFileReader, ivasRtp.remoteRequests, &ivasRtp.remoteRequestBitmap ) ) != IVAS_ERR_OK ) Loading @@ -904,7 +895,6 @@ int main( goto cleanup; } } #endif if ( ( error = IVAS_ENC_EncodeFrameToCompact( hIvasEnc, pcmBuf, pcmBufSize, au, &numBits ) ) != IVAS_ERR_OK ) { Loading Loading @@ -1010,12 +1000,10 @@ cleanup: fclose( f_bitrateProfile ); } #ifdef FIX_1527_CMR_BITRATE_IDX if ( requestsFileReader ) { RequestsFileReader_close( &requestsFileReader ); } #endif if ( sceneOrientationFileReader ) { Loading Loading @@ -1078,10 +1066,8 @@ static bool parseCmdlIVAS_enc( /*-----------------------------------------------------------------* * Set default values *-----------------------------------------------------------------*/ #ifdef FIX_1527_CMR_BITRATE_IDX // Need less usan/msan or new arg addition memset( arg, 0, sizeof( *arg ) ); #endif arg->inputWavFilename = NULL; arg->outputBitstreamFilename = NULL; Loading Loading @@ -1962,7 +1948,6 @@ static bool parseCmdlIVAS_enc( arg->deviceOrientationTrajFileName = argv[i]; i++; } #ifdef FIX_1527_CMR_BITRATE_IDX else if ( strcmp( argv_to_upper, "-REQUESTS" ) == 0 ) { i++; Loading @@ -1975,7 +1960,6 @@ static bool parseCmdlIVAS_enc( arg->requestsFileName = argv[i]; i++; } #endif /*-----------------------------------------------------------------* * Option not recognized Loading Loading @@ -2214,9 +2198,7 @@ static void usage_enc( void ) fprintf( stdout, " EVS RTP Payload Format is used. Optional N represents number of frames per RTP packet\n" ); fprintf( stdout, "-scene_orientation : Scene orientation trajectory file. Only used with rtpdump output.\n" ); fprintf( stdout, "-device_orientation : Device orientation trajectory file. Only used with rtpdump output.\n" ); #ifdef FIX_1527_CMR_BITRATE_IDX fprintf( stdout, "-requests : Remote requests file, Only used with rtpdump output.\n" ); #endif fprintf( stdout, "\n" ); Loading apps/renderer.c +48 −1 Original line number Diff line number Diff line Loading @@ -1100,6 +1100,53 @@ int main( fprintf( stderr, "\nError in Renderer Config Init: %s\n", ivas_error_to_string( error ) ); goto cleanup; } #ifdef FIX_1452_DEFAULT_REVERB if ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { /* Set reverb room size if specified or select based automatically based on default per input formats */ IVAS_ROOM_SIZE_T selectedReverbRoomSize = args.reverbRoomSize; if ( selectedReverbRoomSize == IVAS_ROOM_SIZE_AUTO ) { bool combinedFormat = false; selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; /* ISM present with MASA/SBA inputs; treat as combined format */ if ( args.inConfig.numAudioObjects > 0 && ( args.inConfig.numMasaBuses > 0 || args.inConfig.numAmbisonicsBuses > 0 ) ) { combinedFormat = true; } if ( combinedFormat ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; } else { /* Only set large if ISM is present alone, MASA and Ambisonic have been checked above */ if ( args.inConfig.numAudioObjects > 0 && args.inConfig.numMultiChannelBuses == 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_LARGE; } /* if only MC is present, set medium; Will not be overridden by the subsequent block */ else if ( args.inConfig.numMultiChannelBuses > 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; } else if ( args.inConfig.numMasaBuses > 0 || args.inConfig.numAmbisonicsBuses > 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_SMALL; } } } if ( ( error = IVAS_REND_SetReverbRoomSize( hIvasRend, selectedReverbRoomSize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError setting reverb room size\n" ); goto cleanup; } } #endif if ( args.renderConfigFilePath[0] != '\0' ) { Loading Loading @@ -1179,7 +1226,7 @@ int main( /* Set reverb room size if specified */ if ( args.reverbRoomSize != IVAS_ROOM_SIZE_AUTO ) { if ( ( IVAS_REND_SetReverbRoomSize( hIvasRend, args.reverbRoomSize ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_REND_SetReverbRoomSize( hIvasRend, args.reverbRoomSize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError setting reverb room size\n" ); goto cleanup; Loading lib_com/common_api_types.h +4 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,10 @@ #define IVAS_REVERB_PREDELAY_MAX 20 /* Max input delay for reverb module */ #define IVAS_ER_LIST_HEIGHT 1.6f #define IVAS_DEFAULT_AEID 65535 #ifdef FIX_BASOP_2023_TDREND_DISTATT_PRECISION #define IVAS_LISTENER_POSITION_MAX 327.67f #endif /* JBM constants for adaptive-playout */ #define IVAS_TIME_SCALE_MIN 50 /* min. time-scaling [%] */ Loading lib_com/ivas_cnst.h +11 −0 Original line number Diff line number Diff line Loading @@ -1576,6 +1576,17 @@ typedef enum #define IVAS_REVERB_DEFAULT_M_N_BANDS 31 #define IVAS_REVERB_DEFAULT_S_N_BANDS 60 #ifdef FIX_1452_DEFAULT_REVERB #define IVAS_REVERB_DEFAULT_S_ACOUSTIC_PRE_DELAY 0.015f #define IVAS_REVERB_DEFAULT_S_INPUT_PRE_DELAY 0.02f #define IVAS_REVERB_DEFAULT_M_ACOUSTIC_PRE_DELAY 0.015f #define IVAS_REVERB_DEFAULT_M_INPUT_PRE_DELAY 0.02f #define IVAS_REVERB_DEFAULT_L_ACOUSTIC_PRE_DELAY 0.01625f #define IVAS_REVERB_DEFAULT_L_INPUT_PRE_DELAY 0.1f #endif #define LR_IAC_LENGTH_NR_FC ( RV_LENGTH_NR_FC ) #define LR_IAC_LENGTH_NR_FC_16KHZ ( RV_LENGTH_NR_FC_16KHZ ) Loading Loading
apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -3134,7 +3134,7 @@ static ivas_error printBitstreamInfoVoip( { bool previewFailed = true; ivas_error error = IVAS_ERR_OK; IVAS_RTP ivasRtp; IVAS_RTP ivasRtp = { 0 }; uint8_t au[( IVAS_MAX_BITS_PER_FRAME + 7 ) >> 3]; int16_t auSizeBits; uint8_t *auPtr = NULL; Loading
apps/encoder.c +0 −18 Original line number Diff line number Diff line Loading @@ -40,9 +40,7 @@ #include "masa_file_reader.h" #include "rotation_file_reader.h" #include "ivas_rtp_file.h" #ifdef FIX_1527_CMR_BITRATE_IDX #include "requests_file_reader.h" #endif #ifdef DEBUGGING #include "debug.h" #endif Loading Loading @@ -160,9 +158,7 @@ typedef struct char *sceneOrientationTrajFileName; char *deviceOrientationTrajFileName; #ifdef FIX_1527_CMR_BITRATE_IDX char *requestsFileName; #endif } EncArguments; Loading Loading @@ -230,9 +226,7 @@ int main( uint8_t au[IVAS_MAX_BITS_PER_FRAME / 8]; IVAS_RTP ivasRtp = { 0 }; #ifdef FIX_1527_CMR_BITRATE_IDX ReqFileReader *requestsFileReader = NULL; #endif /* Ideally ssrc is negotiated via SDP and sequence number is radomized but we use fixed seed for random num generator for regression based tests. Any realtime application should implement this initialization seperately */ Loading Loading @@ -672,7 +666,6 @@ int main( } } #ifdef FIX_1527_CMR_BITRATE_IDX /*------------------------------------------------------------------------------------------* * Open remote requests file for rtp packing (E-bytes) *------------------------------------------------------------------------------------------*/ Loading @@ -684,7 +677,6 @@ int main( goto cleanup; } } #endif /*------------------------------------------------------------------------------------------* * Run the encoder Loading Loading @@ -895,7 +887,6 @@ int main( } } #ifdef FIX_1527_CMR_BITRATE_IDX if ( requestsFileReader ) { if ( ( error = ReadNextRequests( requestsFileReader, ivasRtp.remoteRequests, &ivasRtp.remoteRequestBitmap ) ) != IVAS_ERR_OK ) Loading @@ -904,7 +895,6 @@ int main( goto cleanup; } } #endif if ( ( error = IVAS_ENC_EncodeFrameToCompact( hIvasEnc, pcmBuf, pcmBufSize, au, &numBits ) ) != IVAS_ERR_OK ) { Loading Loading @@ -1010,12 +1000,10 @@ cleanup: fclose( f_bitrateProfile ); } #ifdef FIX_1527_CMR_BITRATE_IDX if ( requestsFileReader ) { RequestsFileReader_close( &requestsFileReader ); } #endif if ( sceneOrientationFileReader ) { Loading Loading @@ -1078,10 +1066,8 @@ static bool parseCmdlIVAS_enc( /*-----------------------------------------------------------------* * Set default values *-----------------------------------------------------------------*/ #ifdef FIX_1527_CMR_BITRATE_IDX // Need less usan/msan or new arg addition memset( arg, 0, sizeof( *arg ) ); #endif arg->inputWavFilename = NULL; arg->outputBitstreamFilename = NULL; Loading Loading @@ -1962,7 +1948,6 @@ static bool parseCmdlIVAS_enc( arg->deviceOrientationTrajFileName = argv[i]; i++; } #ifdef FIX_1527_CMR_BITRATE_IDX else if ( strcmp( argv_to_upper, "-REQUESTS" ) == 0 ) { i++; Loading @@ -1975,7 +1960,6 @@ static bool parseCmdlIVAS_enc( arg->requestsFileName = argv[i]; i++; } #endif /*-----------------------------------------------------------------* * Option not recognized Loading Loading @@ -2214,9 +2198,7 @@ static void usage_enc( void ) fprintf( stdout, " EVS RTP Payload Format is used. Optional N represents number of frames per RTP packet\n" ); fprintf( stdout, "-scene_orientation : Scene orientation trajectory file. Only used with rtpdump output.\n" ); fprintf( stdout, "-device_orientation : Device orientation trajectory file. Only used with rtpdump output.\n" ); #ifdef FIX_1527_CMR_BITRATE_IDX fprintf( stdout, "-requests : Remote requests file, Only used with rtpdump output.\n" ); #endif fprintf( stdout, "\n" ); Loading
apps/renderer.c +48 −1 Original line number Diff line number Diff line Loading @@ -1100,6 +1100,53 @@ int main( fprintf( stderr, "\nError in Renderer Config Init: %s\n", ivas_error_to_string( error ) ); goto cleanup; } #ifdef FIX_1452_DEFAULT_REVERB if ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { /* Set reverb room size if specified or select based automatically based on default per input formats */ IVAS_ROOM_SIZE_T selectedReverbRoomSize = args.reverbRoomSize; if ( selectedReverbRoomSize == IVAS_ROOM_SIZE_AUTO ) { bool combinedFormat = false; selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; /* ISM present with MASA/SBA inputs; treat as combined format */ if ( args.inConfig.numAudioObjects > 0 && ( args.inConfig.numMasaBuses > 0 || args.inConfig.numAmbisonicsBuses > 0 ) ) { combinedFormat = true; } if ( combinedFormat ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; } else { /* Only set large if ISM is present alone, MASA and Ambisonic have been checked above */ if ( args.inConfig.numAudioObjects > 0 && args.inConfig.numMultiChannelBuses == 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_LARGE; } /* if only MC is present, set medium; Will not be overridden by the subsequent block */ else if ( args.inConfig.numMultiChannelBuses > 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; } else if ( args.inConfig.numMasaBuses > 0 || args.inConfig.numAmbisonicsBuses > 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_SMALL; } } } if ( ( error = IVAS_REND_SetReverbRoomSize( hIvasRend, selectedReverbRoomSize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError setting reverb room size\n" ); goto cleanup; } } #endif if ( args.renderConfigFilePath[0] != '\0' ) { Loading Loading @@ -1179,7 +1226,7 @@ int main( /* Set reverb room size if specified */ if ( args.reverbRoomSize != IVAS_ROOM_SIZE_AUTO ) { if ( ( IVAS_REND_SetReverbRoomSize( hIvasRend, args.reverbRoomSize ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_REND_SetReverbRoomSize( hIvasRend, args.reverbRoomSize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError setting reverb room size\n" ); goto cleanup; Loading
lib_com/common_api_types.h +4 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,10 @@ #define IVAS_REVERB_PREDELAY_MAX 20 /* Max input delay for reverb module */ #define IVAS_ER_LIST_HEIGHT 1.6f #define IVAS_DEFAULT_AEID 65535 #ifdef FIX_BASOP_2023_TDREND_DISTATT_PRECISION #define IVAS_LISTENER_POSITION_MAX 327.67f #endif /* JBM constants for adaptive-playout */ #define IVAS_TIME_SCALE_MIN 50 /* min. time-scaling [%] */ Loading
lib_com/ivas_cnst.h +11 −0 Original line number Diff line number Diff line Loading @@ -1576,6 +1576,17 @@ typedef enum #define IVAS_REVERB_DEFAULT_M_N_BANDS 31 #define IVAS_REVERB_DEFAULT_S_N_BANDS 60 #ifdef FIX_1452_DEFAULT_REVERB #define IVAS_REVERB_DEFAULT_S_ACOUSTIC_PRE_DELAY 0.015f #define IVAS_REVERB_DEFAULT_S_INPUT_PRE_DELAY 0.02f #define IVAS_REVERB_DEFAULT_M_ACOUSTIC_PRE_DELAY 0.015f #define IVAS_REVERB_DEFAULT_M_INPUT_PRE_DELAY 0.02f #define IVAS_REVERB_DEFAULT_L_ACOUSTIC_PRE_DELAY 0.01625f #define IVAS_REVERB_DEFAULT_L_INPUT_PRE_DELAY 0.1f #endif #define LR_IAC_LENGTH_NR_FC ( RV_LENGTH_NR_FC ) #define LR_IAC_LENGTH_NR_FC_16KHZ ( RV_LENGTH_NR_FC_16KHZ ) Loading