Skip to content
...@@ -70,15 +70,15 @@ ...@@ -70,15 +70,15 @@
#endif #endif
#endif #endif
typedef struct __tinyWaveOutHeader typedef struct tinyWaveOutHeader
{ {
uint32_t riffType; /* 'RIFF' */ uint32_t riffType; /* 'RIFF' */
uint32_t riffSize; /* file size */ uint32_t riffSize; /* file size */
uint32_t waveType; /* 'WAVE' */ uint32_t waveType; /* 'WAVE' */
} __tinyWaveOutHeader; } tinyWaveOutHeader;
typedef struct __tinyWaveOutFmtChunk typedef struct tinyWaveOutFmtChunk
{ {
uint32_t formatType; uint32_t formatType;
uint32_t formatSize; uint32_t formatSize;
...@@ -91,16 +91,15 @@ typedef struct __tinyWaveOutFmtChunk ...@@ -91,16 +91,15 @@ typedef struct __tinyWaveOutFmtChunk
uint16_t bitsPerSample; uint16_t bitsPerSample;
/* wav fmt ext hdr here */ /* wav fmt ext hdr here */
} __tinyWaveOutFmtChunk; } tinyWaveOutFmtChunk;
typedef struct __tinyWaveOutDataChunk typedef struct tinyWaveOutDataChunk
{ {
uint32_t dataType; uint32_t dataType;
uint32_t dataSize; uint32_t dataSize;
} tinyWaveOutDataChunk;
} __tinyWaveOutDataChunk; typedef struct tinyWaveOutHandle
typedef struct __tinyWaveOutHandle
{ {
FILE *theFile; FILE *theFile;
uint32_t dataSize; uint32_t dataSize;
...@@ -109,7 +108,7 @@ typedef struct __tinyWaveOutHandle ...@@ -109,7 +108,7 @@ typedef struct __tinyWaveOutHandle
uint32_t dataChunkOffset; uint32_t dataChunkOffset;
uint32_t bps; uint32_t bps;
uint32_t clipCount; uint32_t clipCount;
} __tinyWaveOutHandle, WAVEFILEOUT; } tinyWaveOutHandle, WAVEFILEOUT;
/*--- local protos --------------------------------------------------*/ /*--- local protos --------------------------------------------------*/
static __inline uint32_t BigEndian32( char, char, char, char ); static __inline uint32_t BigEndian32( char, char, char, char );
...@@ -132,9 +131,9 @@ static WAVEFILEOUT *CreateBWF( ...@@ -132,9 +131,9 @@ static WAVEFILEOUT *CreateBWF(
/* ,const uint32_t writeWaveExt */ ) /* ,const uint32_t writeWaveExt */ )
{ {
WAVEFILEOUT *self; WAVEFILEOUT *self;
__tinyWaveOutHeader whdr; tinyWaveOutHeader whdr;
__tinyWaveOutFmtChunk wfch; tinyWaveOutFmtChunk wfch;
__tinyWaveOutDataChunk wdch; tinyWaveOutDataChunk wdch;
uint32_t blockAlignment = 0; uint32_t blockAlignment = 0;
uint32_t ByteCnt = 0; /* Byte counter for fwrite */ uint32_t ByteCnt = 0; /* Byte counter for fwrite */
......
...@@ -73,9 +73,9 @@ TsmScaleFileReader *TsmScaleFileReader_open( ...@@ -73,9 +73,9 @@ TsmScaleFileReader *TsmScaleFileReader_open(
return NULL; return NULL;
} }
self = calloc( sizeof( TsmScaleFileReader ), 1 ); self = calloc( 1, sizeof( TsmScaleFileReader ) );
self->file = file; self->file = file;
self->file_path = calloc( sizeof( char ), strlen( filePath ) + 1 ); self->file_path = calloc( strlen( filePath ) + 1, sizeof( char ) );
strcpy( self->file_path, filePath ); strcpy( self->file_path, filePath );
return self; return self;
......
...@@ -68,9 +68,9 @@ ivas_error Vector3PairFileReader_open( ...@@ -68,9 +68,9 @@ ivas_error Vector3PairFileReader_open(
return IVAS_ERR_FAILED_FILE_OPEN; return IVAS_ERR_FAILED_FILE_OPEN;
} }
self = calloc( sizeof( Vector3PairFileReader ), 1 ); self = calloc( 1, sizeof( Vector3PairFileReader ) );
self->trajFile = trajFile; self->trajFile = trajFile;
self->file_path = calloc( sizeof( char ), strlen( trajFilePath ) + 1 ); self->file_path = calloc( strlen( trajFilePath ) + 1, sizeof( char ) );
strcpy( self->file_path, trajFilePath ); strcpy( self->file_path, trajFilePath );
*vector3PairReader = self; *vector3PairReader = self;
......
...@@ -278,7 +278,8 @@ Options: ...@@ -278,7 +278,8 @@ Options:
The decoder may read rtpdump files containing TS26.445 Annex A.2.2 The decoder may read rtpdump files containing TS26.445 Annex A.2.2
EVS RTP Payload Format. The SDP parameter hf_only is required. EVS RTP Payload Format. The SDP parameter hf_only is required.
Reading RFC4867 AMR/AMR-WB RTP payload format is not supported. Reading RFC4867 AMR/AMR-WB RTP payload format is not supported.
-Tracefile TF : VoIP mode: Generate trace file named TF -Tracefile TF : VoIP mode: Generate trace file named TF. Requires -no_delay_cmp to
be enabled so that trace contents remain in sync with audio output.
-fec_cfg_file : Optimal channel aware configuration computed by the JBM -fec_cfg_file : Optimal channel aware configuration computed by the JBM
as described in Section 6.3.1 of TS26.448. The output is as described in Section 6.3.1 of TS26.448. The output is
written into a .txt file. Each line contains the FER indicator written into a .txt file. Each line contains the FER indicator
...@@ -323,7 +324,9 @@ Options: ...@@ -323,7 +324,9 @@ Options:
-------- --------
-i File : Input audio File (WAV, raw PCM or scene description file) -i File : Input audio File (WAV, raw PCM or scene description file)
-if Format : Audio Format of input file (e.g. 5_1 or HOA3 or META, use -l for a list) -if Format : Audio Format of input file (e.g. 5_1 or HOA3 or META, use -l for a list)
-im Files : Metadata files for ISM (one file per object) or MASA inputs META is related to the Scene description file, see scripts/testv/renderer_config_format_readme.txt
-im Files : Metadata files for ISM/MASA/OMASA/OSBA/BINAURAL_SPLIT_PCM (one file per object).
For OMASA input, ISM files must be specified first.
-o File : Output audio File -o File : Output audio File
-of Format : Audio Format of output file -of Format : Audio Format of output file
Alternatively, it can be a custom loudspeaker layout File Alternatively, it can be a custom loudspeaker layout File
...@@ -339,9 +342,9 @@ Options: ...@@ -339,9 +342,9 @@ Options:
left or l or 90->left, right or r or -90->right, center or c or 0 ->middle left or l or 90->left, right or r or -90->right, center or c or 0 ->middle
-exof File : External orientation trajectory File for simulation of external orientations -exof File : External orientation trajectory File for simulation of external orientations
-dpid ID : Directivity pattern ID(s) (space-separated list of up to 4 numbers can be -dpid ID : Directivity pattern ID(s) (space-separated list of up to 4 numbers can be
specified) for binaural output configuration specified) for binaural outputs
-aeid ID | File : Acoustic environment ID (number > 0) -aeid ID | File : Acoustic environment ID (number > 0)
alternatively, it can be a text file where each line contains "ID duration" for BINAURAL_ROOM_REVERB output configuration. alternatively, it can be a text file where each line contains "ID duration" for BINAURAL_ROOM_REVERB output.
-lp Position : Output LFE position. Comma-delimited triplet of [gain, azimuth, elevation] where gain is linear -lp Position : Output LFE position. Comma-delimited triplet of [gain, azimuth, elevation] where gain is linear
(like --gain, -g) and azimuth, elevation are in degrees. (like --gain, -g) and azimuth, elevation are in degrees.
If specified, overrides the default behavior which attempts to map input to output LFE channel(s) If specified, overrides the default behavior which attempts to map input to output LFE channel(s)
...@@ -352,7 +355,8 @@ Options: ...@@ -352,7 +355,8 @@ Options:
-g : Input gain (linear, not in dB) to be applied to input audio file -g : Input gain (linear, not in dB) to be applied to input audio file
-l : List supported audio formats -l : List supported audio formats
-smd : Metadata Synchronization Delay in ms, Default is 0. Quantized by 5ms subframes. -smd : Metadata Synchronization Delay in ms, Default is 0. Quantized by 5ms subframes.
-om File : Coded metadata File for BINAURAL_SPLIT_PCM output format -om File : Coded metadata File (only for BINAURAL_SPLIT_PCM output)
-prbfi File : BFI File (only for BINAURAL_SPLIT_PCM output)
-level level : Complexity level, level = (1, 2, 3), will be defined after characterisation. -level level : Complexity level, level = (1, 2, 3), will be defined after characterisation.
Currently, all values default to level 3 (full functionality). Currently, all values default to level 3 (full functionality).
-q : Quiet mode, limit printouts to terminal, default is deactivated -q : Quiet mode, limit printouts to terminal, default is deactivated
...@@ -568,6 +572,17 @@ columns are the Euler angles yaw, pitch, and roll. The rotations are applied in ...@@ -568,6 +572,17 @@ columns are the Euler angles yaw, pitch, and roll. The rotations are applied in
The yaw angle rotates around the z axis, the pitch angle rotates aroud the new y axis, and the roll angle The yaw angle rotates around the z axis, the pitch angle rotates aroud the new y axis, and the roll angle
rotates around the new x axis. rotates around the new x axis.
In case of 6 DoF support for rendering, the head rotation trajectory file may also include a listener
position in absolute Cartesian coordinates on the x-, y- and z-axis. Note that the listener position is
expressed in absolute coordinates, while the listener orientation is expressed as scene displacement.
An example line from a headtracking file of a listener facing forward, positioned at x=3.0, y=4.0 and z=0,
could be:
-3.0,0.0,0.0,0.0,3.0,4.0,0.0
Note that the listener position applies for listener orientation expressed both in Quaternions and Euler angles.
For the Head rotation operation modes, external trajectory files are available: For the Head rotation operation modes, external trajectory files are available:
headrot.csv headrot.csv
......
...@@ -9,6 +9,10 @@ basop_files = here.glob("lib_*/basop*.[ch]") ...@@ -9,6 +9,10 @@ basop_files = here.glob("lib_*/basop*.[ch]")
ignorefiles = sorted(set(non_ivas_files) - set(basop_files)) ignorefiles = sorted(set(non_ivas_files) - set(basop_files))
ignorefunctions = ["L_add_o", "L_add_co", "L_sub_o", "shl_o", "L_deposit_h"]
with open("ubsan_ignorelist.txt", "w") as f: with open("ubsan_ignorelist.txt", "w") as f:
for cfile in ignorefiles: for cfile in ignorefiles:
print(f"src:{cfile}", file=f) print(f"src:{cfile}", file=f)
for fun in ignorefunctions:
print(f"fun:*{fun}*", file=f)
clear -regexp ^((?!writeRomFileOutput|writeBinaryOutput|generateBinaryFile|generateCustomBinaryFile|writeEachRendererBinaryOutput|rom_file|bin_file|hrir_file|brir_file|ivas_path|binary_path|output_bin_name|param_bin_file|fastconv_bin_file|td_binary_file|binary_name|rom_path).)*$ clear -regexp ^((?!writeRomFileOutput|writeBinaryOutput|writeRomFileFx|makeFxFltBEgenerateBinaryFile|generateBinaryFile|generateCustomBinaryFile|writeEachRendererBinaryOutput|rom_file|bin_file|hrir_file|brir_file|ivas_path|binary_path|output_bin_name|param_bin_file|fastconv_bin_file|td_binary_file|binary_name|rom_path).)*$
...@@ -90,6 +90,8 @@ ...@@ -90,6 +90,8 @@
#define DEFAULT_BINARY_FILE_PATH "./bin" #define DEFAULT_BINARY_FILE_PATH "./bin"
#endif #endif
#define MAX_CICP_CHANNELS 16
/* ------------------------------------------------------------------------------------------ /* ------------------------------------------------------------------------------------------
* Struct * Struct
*------------------------------------------------------------------------------------------ */ *------------------------------------------------------------------------------------------ */
...@@ -129,8 +131,12 @@ void get_ls_layout_config( AUDIO_CONFIG ls_layout_config, struct ivas_layout_con ...@@ -129,8 +131,12 @@ void get_ls_layout_config( AUDIO_CONFIG ls_layout_config, struct ivas_layout_con
int generate_crend_ivas_tables_from_sofa( const char *sofa_file_path, ConfigReader *cfgReader ); int generate_crend_ivas_tables_from_sofa( const char *sofa_file_path, ConfigReader *cfgReader );
void update_h_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len ); void update_h_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len );
void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len, int16_t factorQ[3] ); void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len, int16_t factorQ[3] );
void update_c_file_with_reverb( float *pEner_l, float *pEner_r, float *pCoherence, int16_t *pEner_l_fx, int16_t *pEner_r_fx, int16_t *pCoherence_fx, int16_t factorQ, const int32_t samplerate, const int16_t len ); void update_c_file_with_reverb( float *pEner_l, float *pEner_r, float *pCoherence, const int32_t samplerate, const int16_t len );
void update_h_file_with_reverb( const int32_t samplerate ); void update_h_file_with_reverb( const int32_t samplerate );
void update_h_file_fx( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len );
void update_c_file_fx( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len, int16_t factorQ[3] );
void update_c_file_with_reverb_fx( int16_t *pEner_l_fx, int16_t *pEner_r_fx, int16_t *pCoherence_fx, int16_t factorQ, const int32_t samplerate, const int16_t len );
void update_h_file_with_reverb_fx( const int32_t samplerate );
int generate_reverb_ivas_tables_from_sofa( const char *file_path ); int generate_reverb_ivas_tables_from_sofa( const char *file_path );
extern int32_t float2int32_t( float, int16_t ); extern int32_t float2int32_t( float, int16_t );
...@@ -228,6 +234,8 @@ void usage_gen_crend_tables( void ) ...@@ -228,6 +234,8 @@ void usage_gen_crend_tables( void )
int32_t frame = 0; /* Counter of frames */ int32_t frame = 0; /* Counter of frames */
char *c_file_path = NULL; char *c_file_path = NULL;
char *h_file_path = NULL; char *h_file_path = NULL;
char *c_file_path_fx = NULL;
char *h_file_path_fx = NULL;
char *rom_file_name = NULL; char *rom_file_name = NULL;
uint16_t frame_len_ms = 5; uint16_t frame_len_ms = 5;
int32_t sample_rates[3] = { DEFAULT_SAMPLERATE, 32000, LAST_SAMPLERATE }; /* Hz */ /* 8000 Hz not supported by mdft */ int32_t sample_rates[3] = { DEFAULT_SAMPLERATE, 32000, LAST_SAMPLERATE }; /* Hz */ /* 8000 Hz not supported by mdft */
...@@ -449,6 +457,14 @@ int main( int argc, char *argv[] ) ...@@ -449,6 +457,14 @@ int main( int argc, char *argv[] )
{ {
fprintf( stderr, "Memory issue for c file path\n\n" ); fprintf( stderr, "Memory issue for c file path\n\n" );
usage_gen_crend_tables(); usage_gen_crend_tables();
if ( c_file_path )
free( c_file_path );
if ( h_file_path )
free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( lib_rend_path ) if ( lib_rend_path )
free( lib_rend_path ); free( lib_rend_path );
if ( binary_path ) if ( binary_path )
...@@ -466,6 +482,12 @@ int main( int argc, char *argv[] ) ...@@ -466,6 +482,12 @@ int main( int argc, char *argv[] )
usage_gen_crend_tables(); usage_gen_crend_tables();
if ( c_file_path ) if ( c_file_path )
free( c_file_path ); free( c_file_path );
if ( h_file_path )
free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( lib_rend_path ) if ( lib_rend_path )
free( lib_rend_path ); free( lib_rend_path );
if ( binary_path ) if ( binary_path )
...@@ -504,6 +526,12 @@ int main( int argc, char *argv[] ) ...@@ -504,6 +526,12 @@ int main( int argc, char *argv[] )
usage_gen_crend_tables(); usage_gen_crend_tables();
if ( c_file_path ) if ( c_file_path )
free( c_file_path ); free( c_file_path );
if ( h_file_path )
free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( lib_rend_path ) if ( lib_rend_path )
free( lib_rend_path ); free( lib_rend_path );
if ( binary_path ) if ( binary_path )
...@@ -519,10 +547,148 @@ int main( int argc, char *argv[] ) ...@@ -519,10 +547,148 @@ int main( int argc, char *argv[] )
{ {
fprintf( stderr, "Wrong lib_rend path: %s\n\n", lib_rend_path ); fprintf( stderr, "Wrong lib_rend path: %s\n\n", lib_rend_path );
usage_gen_crend_tables(); usage_gen_crend_tables();
if ( c_file_path )
free( c_file_path );
if ( h_file_path )
free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( lib_rend_path )
free( lib_rend_path );
if ( binary_path )
free( binary_path );
if ( binary_common_file_name )
free( binary_common_file_name );
if ( sofa_file_path_for_reverb )
free( sofa_file_path_for_reverb );
return -1;
}
fclose( fp );
c_file_path_fx = (char *) malloc( sizeof( char ) * ( strlen( lib_rend_path ) + strlen( ROM_FILE_NAME ) + 2 + 1 + 3 + notEndingWithFileSeparator ) );
if ( c_file_path_fx )
{
if ( notEndingWithFileSeparator )
{
#ifdef WIN32
sprintf( c_file_path_fx, "%s\\%s_fx.c", lib_rend_path, ROM_FILE_NAME );
#else
sprintf( c_file_path_fx, "%s/%s_fx.c", lib_rend_path, ROM_FILE_NAME );
#endif
}
else
{
#ifdef WIN32
sprintf( c_file_path_fx, "%s%s_fx.c", lib_rend_path, ROM_FILE_NAME );
#else
sprintf( c_file_path_fx, "%s%s_fx.c", lib_rend_path, ROM_FILE_NAME );
#endif
}
}
else
{
fprintf( stderr, "Memory issue for c file path\n\n" );
usage_gen_crend_tables();
if ( c_file_path )
free( c_file_path );
if ( h_file_path )
free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( lib_rend_path )
free( lib_rend_path );
if ( binary_path )
free( binary_path );
if ( binary_common_file_name )
free( binary_common_file_name );
if ( sofa_file_path_for_reverb )
free( sofa_file_path_for_reverb );
return -1;
}
fp = fopen( c_file_path_fx, "w" );
if ( fp == NULL )
{
fprintf( stderr, "Wrong lib_rend path: %s\n\n", lib_rend_path );
usage_gen_crend_tables();
if ( c_file_path )
free( c_file_path );
if ( h_file_path )
free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( lib_rend_path )
free( lib_rend_path );
if ( binary_path )
free( binary_path );
if ( binary_common_file_name )
free( binary_common_file_name );
if ( sofa_file_path_for_reverb )
free( sofa_file_path_for_reverb );
return -1;
}
fclose( fp );
h_file_path_fx = (char *) malloc( sizeof( char ) * ( strlen( lib_rend_path ) + strlen( ROM_FILE_NAME ) + 2 + 1 + 3 + notEndingWithFileSeparator ) );
if ( h_file_path_fx )
{
if ( notEndingWithFileSeparator )
{
#ifdef WIN32
sprintf( h_file_path_fx, "%s\\%s_fx.h", lib_rend_path, ROM_FILE_NAME );
#else
sprintf( h_file_path_fx, "%s/%s_fx.h", lib_rend_path, ROM_FILE_NAME );
#endif
}
else
{
#ifdef WIN32
sprintf( h_file_path_fx, "%s%s_fx.h", lib_rend_path, ROM_FILE_NAME );
#else
sprintf( h_file_path_fx, "%s%s_fx.h", lib_rend_path, ROM_FILE_NAME );
#endif
}
}
else
{
fprintf( stderr, "Memory issue: for header file path\n\n" );
usage_gen_crend_tables();
if ( c_file_path )
free( c_file_path );
if ( h_file_path ) if ( h_file_path )
free( h_file_path ); free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( lib_rend_path )
free( lib_rend_path );
if ( binary_path )
free( binary_path );
if ( binary_common_file_name )
free( binary_common_file_name );
if ( sofa_file_path_for_reverb )
free( sofa_file_path_for_reverb );
return -1;
}
fp = fopen( h_file_path_fx, "w" );
if ( fp == NULL )
{
fprintf( stderr, "Wrong lib_rend path: %s\n\n", lib_rend_path );
usage_gen_crend_tables();
if ( c_file_path ) if ( c_file_path )
free( c_file_path ); free( c_file_path );
if ( h_file_path )
free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( lib_rend_path ) if ( lib_rend_path )
free( lib_rend_path ); free( lib_rend_path );
if ( binary_path ) if ( binary_path )
...@@ -536,6 +702,7 @@ int main( int argc, char *argv[] ) ...@@ -536,6 +702,7 @@ int main( int argc, char *argv[] )
fclose( fp ); fclose( fp );
} }
if ( binary_path != NULL && binary_common_file_name != NULL ) if ( binary_path != NULL && binary_common_file_name != NULL )
{ {
if ( binary_file_path != NULL ) if ( binary_file_path != NULL )
...@@ -568,10 +735,14 @@ int main( int argc, char *argv[] ) ...@@ -568,10 +735,14 @@ int main( int argc, char *argv[] )
{ {
fprintf( stderr, "Memory issue for binary file path\n\n" ); fprintf( stderr, "Memory issue for binary file path\n\n" );
usage_gen_crend_tables(); usage_gen_crend_tables();
if ( h_file_path )
free( h_file_path );
if ( c_file_path ) if ( c_file_path )
free( c_file_path ); free( c_file_path );
if ( h_file_path )
free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( lib_rend_path ) if ( lib_rend_path )
free( lib_rend_path ); free( lib_rend_path );
if ( binary_path ) if ( binary_path )
...@@ -665,6 +836,68 @@ int main( int argc, char *argv[] ) ...@@ -665,6 +836,68 @@ int main( int argc, char *argv[] )
} }
} }
if ( ( h_file_path_fx != NULL ) && ( c_file_path_fx != NULL ) )
{
FILE *fpt = fopen( TEMPLTATE_C_ROM_FILE_NAME, "rb" );
if ( fpt )
{
fseek( fpt, 0, SEEK_END );
size_t fsize = ftell( fpt );
fseek( fpt, 0, SEEK_SET );
char *tmpc = (char *) malloc( fsize + 1 );
size_t ret = fread( tmpc, fsize, 1, fpt );
tmpc[fsize] = '\0';
if ( ret * fsize == fsize )
{
fp = fopen( c_file_path_fx, "wb" );
if ( fp )
{
fwrite( tmpc, fsize, 1, fp );
fclose( fp );
}
fp = fopen( h_file_path_fx, "wb" );
if ( fp )
{
fwrite( tmpc, fsize, 1, fp );
fclose( fp );
}
}
fclose( fpt );
}
fp = fopen( h_file_path_fx, "a" );
if ( fp )
{
fprintf( fp, "\n/* clang-format off */\n" );
fprintf( fp, "\n/*-------------------------------------------------------------------------" );
fprintf( fp, "\n* Binaural rendering related ROM tables" );
fprintf( fp, "\n*------------------------------------------------------------------------*/\n" );
fprintf( fp, "\n/* Binaural rendering data set based on HRIRs */" );
fprintf( fp, "\n/* Tables generated by scripts/binauralRenderer_interface/generate_cren_ivas_tables.c, see mixer_conv_sofa_to_rom_table_converter_readme.txt */" );
fprintf( fp, "\n/* Can be replaced by your own generated HRIR or BRIR tables */\n\n\n" );
fprintf( fp, "\n#ifndef _%s_FX_\n", to_upper( rom_file_name ) );
fprintf( fp, "#define _%s_FX_\n", to_upper( rom_file_name ) );
fprintf( fp, "\n#include \"ivas_cnst.h\"\n\n" );
fclose( fp );
}
fp = fopen( c_file_path_fx, "a" );
if ( fp )
{
fprintf( fp, "\n/* clang-format off */\n" );
fprintf( fp, "\n/*-------------------------------------------------------------------------" );
fprintf( fp, "\n* Binaural rendering related ROM tables" );
fprintf( fp, "\n*------------------------------------------------------------------------*/\n" );
fprintf( fp, "\n/* Binaural rendering data set based on HRIRs */" );
fprintf( fp, "\n/* Tables generated by scripts/binauralRenderer_interface/generate_cren_ivas_tables.c, see mixer_conv_sofa_to_rom_table_converter_readme.txt */" );
fprintf( fp, "\n/* Can be replaced by your own generated HRIR or BRIR tables */\n\n\n" );
fprintf( fp, "\n#include <stddef.h>\n#include \"ivas_cnst.h\"\n\n/* clang-format off */\n\n#define WMC_TOOL_SKIP\n\n" );
fclose( fp );
}
}
char current_path[MAX_PATH]; char current_path[MAX_PATH];
char ivas_path[MAX_PATH]; char ivas_path[MAX_PATH];
...@@ -739,6 +972,66 @@ int main( int argc, char *argv[] ) ...@@ -739,6 +972,66 @@ int main( int argc, char *argv[] )
} }
#endif #endif
if ( ( h_file_path_fx != NULL ) && ( c_file_path_fx != NULL ) )
{
if ( add_define )
{
fp = fopen( c_file_path_fx, "a" );
if ( fp )
{
sofa_name = strrchr( argv[i], '/' );
size_t size_path = strlen( sofa_name );
sofa_name = malloc( sizeof( char ) * size_path - 5 );
strncpy( sofa_name, strrchr( argv[i], '/' ) + 1, size_path - 5 );
sofa_name[size_path - 6] = '\0';
fprintf( fp, "\n#ifdef USE_%s\n", to_upper( sofa_name ) );
fclose( fp );
}
fp = fopen( h_file_path_fx, "a" );
if ( fp )
{
fprintf( fp, "\n#ifdef USE_%s\n", to_upper( sofa_name ) );
fclose( fp );
}
}
}
#ifdef USE_MATLAB_ENG
Engine *ep = NULL;
char *tmpChar = strstr( argv[i], ".sofa" );
if ( tmpChar != NULL )
{
if ( !( ep = engOpen( NULL ) ) )
{
printf( "Error starting matlab engine\n" );
return -1;
}
const char addPathCmdStr[] = "addpath(['.' filesep() 'matlab_hrir_generation_scripts']);";
const char startCmdStr[] = "SOFA_save_to_mat('";
const char endCmdStr[] = "');";
char *cdCmd;
char *cmdStr;
int ret;
cdCmd = (char *) malloc( strlen( current_path ) + 4 );
sprintf( cdCmd, "cd %s", current_path );
cmdStr = (char *) malloc( strlen( startCmdStr ) + strlen( argv[i] ) + strlen( endCmdStr ) + 1 );
sprintf( cmdStr, "%s%s%s", startCmdStr, argv[i], endCmdStr );
ret = engEvalString( ep, cdCmd );
ret = engEvalString( ep, addPathCmdStr );
ret = engEvalString( ep, cmdStr );
strcpy( tmpChar, ".mat" );
tmpChar[4] = '\0';
free( cdCmd );
free( cmdStr );
engClose( ep );
}
#endif
convert_backslash( argv[i] ); convert_backslash( argv[i] );
err = generate_crend_ivas_tables_from_sofa( argv[i], &cfgBrirOptim ); err = generate_crend_ivas_tables_from_sofa( argv[i], &cfgBrirOptim );
...@@ -778,35 +1071,89 @@ int main( int argc, char *argv[] ) ...@@ -778,35 +1071,89 @@ int main( int argc, char *argv[] )
} }
} }
} }
} if ( ( h_file_path_fx != NULL ) && ( c_file_path_fx != NULL ) )
{
if ( sofa_file_path_for_reverb != NULL ) fp = fopen( c_file_path_fx, "a" );
if ( fp )
{ {
err = generate_reverb_ivas_tables_from_sofa( sofa_file_path_for_reverb ); fprintf( fp, "\n\n" );
fclose( fp );
}
fp = fopen( h_file_path_fx, "a" );
if ( fp )
{
fprintf( fp, "\n\n" );
fclose( fp );
}
if ( err != 0 ) if ( err != 0 )
return err; return err;
} if ( add_define )
if ( ( h_file_path != NULL ) && ( c_file_path != NULL ) )
{ {
fp = fopen( c_file_path_fx, "a" );
fp = fopen( h_file_path, "a" );
if ( fp ) if ( fp )
{ {
fprintf( fp, "\n\n#endif /* _%s_ */\n", to_upper( rom_file_name ) ); fprintf( fp, "\n#endif /* USE_%s */\n ", to_upper( sofa_name ) );
fclose( fp ); fclose( fp );
} }
fp = fopen( h_file_path_fx, "a" );
fp = fopen( c_file_path, "a" );
if ( fp ) if ( fp )
{ {
fprintf( fp, "\n\n#undef WMC_TOOL_SKIP\n\n" ); fprintf( fp, "\n#endif /* USE_%s */\n", to_upper( sofa_name ) );
fclose( fp ); fclose( fp );
} }
} }
if ( c_file_path ) }
free( c_file_path ); }
if ( sofa_file_path_for_reverb != NULL )
{
err = generate_reverb_ivas_tables_from_sofa( sofa_file_path_for_reverb );
if ( err != 0 )
return err;
}
if ( ( h_file_path != NULL ) && ( c_file_path != NULL ) )
{
fp = fopen( h_file_path, "a" );
if ( fp )
{
fprintf( fp, "\n\n#endif /* _%s_ */\n", to_upper( rom_file_name ) );
fclose( fp );
}
fp = fopen( c_file_path, "a" );
if ( fp )
{
fprintf( fp, "\n\n#undef WMC_TOOL_SKIP\n\n" );
fclose( fp );
}
}
if ( ( h_file_path_fx != NULL ) && ( c_file_path_fx != NULL ) )
{
fp = fopen( h_file_path_fx, "a" );
if ( fp )
{
fprintf( fp, "\n\n#endif /* _%s_ */\n", to_upper( rom_file_name ) );
fclose( fp );
}
fp = fopen( c_file_path_fx, "a" );
if ( fp )
{
fprintf( fp, "\n\n#undef WMC_TOOL_SKIP\n\n" );
fclose( fp );
}
}
if ( c_file_path )
free( c_file_path );
if ( h_file_path ) if ( h_file_path )
free( h_file_path ); free( h_file_path );
if ( c_file_path_fx )
free( c_file_path_fx );
if ( h_file_path_fx )
free( h_file_path_fx );
if ( rom_file_name ) if ( rom_file_name )
free( rom_file_name ); free( rom_file_name );
...@@ -1294,6 +1641,8 @@ int generate_crend_ivas_tables_from_sofa( const char *file_path, ConfigReader *c ...@@ -1294,6 +1641,8 @@ int generate_crend_ivas_tables_from_sofa( const char *file_path, ConfigReader *c
{ {
update_h_file( &hrtf_data, lscfg, sample_rates[indSR], frame_len ); update_h_file( &hrtf_data, lscfg, sample_rates[indSR], frame_len );
update_c_file( &hrtf_data, lscfg, sample_rates[indSR], frame_len, factorQ ); update_c_file( &hrtf_data, lscfg, sample_rates[indSR], frame_len, factorQ );
update_h_file_fx( &hrtf_data, lscfg, sample_rates[indSR], frame_len );
update_c_file_fx( &hrtf_data, lscfg, sample_rates[indSR], frame_len, factorQ );
} }
if ( binary_file_path != NULL ) if ( binary_file_path != NULL )
...@@ -1872,7 +2221,9 @@ int generate_reverb_ivas_tables_from_sofa( const char *file_path ) ...@@ -1872,7 +2221,9 @@ int generate_reverb_ivas_tables_from_sofa( const char *file_path )
if ( lib_rend_path != NULL ) if ( lib_rend_path != NULL )
{ {
update_h_file_with_reverb( sample_rates[indSR] ); update_h_file_with_reverb( sample_rates[indSR] );
update_c_file_with_reverb( p_avg_lr, &p_avg_lr[nr_fc_fft_filter], pCoherence, p_avg_lr_fx, &p_avg_lr_fx[nr_fc_fft_filter], pCoherence_fx, factorQ, sample_rates[indSR], nr_fc_fft_filter ); update_c_file_with_reverb( p_avg_lr, &p_avg_lr[nr_fc_fft_filter], pCoherence, sample_rates[indSR], nr_fc_fft_filter );
update_h_file_with_reverb_fx( sample_rates[indSR] );
update_c_file_with_reverb_fx( p_avg_lr_fx, &p_avg_lr_fx[nr_fc_fft_filter], pCoherence_fx, factorQ, sample_rates[indSR], nr_fc_fft_filter );
} }
if ( binary_file_path != NULL ) if ( binary_file_path != NULL )
{ {
...@@ -1992,7 +2343,7 @@ void write_array_float_to_file( FILE *fp, float *vec, int32_t size_vec, int32_t ...@@ -1992,7 +2343,7 @@ void write_array_float_to_file( FILE *fp, float *vec, int32_t size_vec, int32_t
} }
/*---------------------------------------------------------------------* /*---------------------------------------------------------------------*
*write_array_float_to_file(); *write_array_uint16_to_file();
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
void write_array_uint16_to_file( FILE *fp, uint16_t *vec, int32_t size_vec, int32_t sample_per_ligne, const int num_tab, const char *tab ) void write_array_uint16_to_file( FILE *fp, uint16_t *vec, int32_t size_vec, int32_t sample_per_ligne, const int num_tab, const char *tab )
{ {
...@@ -2100,7 +2451,7 @@ void write_array_int32_t_to_file( FILE *fp, int32_t *vec, int32_t size_vec, int3 ...@@ -2100,7 +2451,7 @@ void write_array_int32_t_to_file( FILE *fp, int32_t *vec, int32_t size_vec, int3
} }
/*---------------------------------------------------------------------* /*---------------------------------------------------------------------*
*write_array_int32_t_to_file(); *write_array_int16_t_to_file();
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
void write_array_int16_t_to_file( FILE *fp, int16_t *vec, int32_t size_vec, int32_t sample_per_ligne, const int num_tab, const char *tab ) void write_array_int16_t_to_file( FILE *fp, int16_t *vec, int32_t size_vec, int32_t sample_per_ligne, const int num_tab, const char *tab )
{ {
...@@ -2152,11 +2503,120 @@ void write_array_int16_t_to_file( FILE *fp, int16_t *vec, int32_t size_vec, int3 ...@@ -2152,11 +2503,120 @@ void write_array_int16_t_to_file( FILE *fp, int16_t *vec, int32_t size_vec, int3
} }
fprintf( fp, "}" ); fprintf( fp, "}" );
} }
/*---------------------------------------------------------------------*
*write_array_uint16_t_to_file();
*---------------------------------------------------------------------*/
void write_array_uint16_t_to_file( FILE *fp, uint16_t *vec, int32_t size_vec, int32_t sample_per_ligne, const int num_tab, const char *tab )
{
int32_t k, l, num_iter, remaining_samples;
int16_t i;
num_iter = size_vec / sample_per_ligne;
remaining_samples = size_vec % sample_per_ligne;
if ( remaining_samples == 0 )
{
num_iter--;
remaining_samples = sample_per_ligne;
}
for ( i = 0; i < num_tab; i++ )
{
fprintf( fp, "%s", tab );
}
fprintf( fp, "{" );
for ( k = 0; k < num_iter; k++ )
{
if ( k != 0 )
{
for ( i = 0; i < num_tab; i++ )
{
fprintf( fp, "%s", tab );
}
}
for ( l = 0; l < sample_per_ligne; l++ )
{
fprintf( fp, "%u", vec[k * sample_per_ligne + l] );
fprintf( fp, ", " );
}
fprintf( fp, "\n" );
}
for ( i = 0; i < num_tab; i++ )
{
fprintf( fp, "%s", tab );
}
for ( l = 0; l < remaining_samples - 1; l++ )
{
fprintf( fp, "%u", vec[k * sample_per_ligne + l] );
fprintf( fp, ", " );
}
fprintf( fp, "%u", vec[k * sample_per_ligne + l] );
for ( i = 0; i < num_tab; i++ )
{
fprintf( fp, "%s", tab );
}
fprintf( fp, "}" );
}
/*---------------------------------------------------------------------*
*write_array_float_to_int16_t_to_file();
*---------------------------------------------------------------------*/
void write_array_float_to_int16_t_to_file( FILE *fp, float *vec, int16_t factor_Q, int32_t size_vec, int32_t sample_per_ligne, const int num_tab, const char *tab )
{
int32_t k, l, num_iter, remaining_samples;
int16_t i;
num_iter = size_vec / sample_per_ligne;
remaining_samples = size_vec % sample_per_ligne;
if ( remaining_samples == 0 )
{
num_iter--;
remaining_samples = sample_per_ligne;
}
for ( i = 0; i < num_tab; i++ )
{
fprintf( fp, "%s", tab );
}
fprintf( fp, "{" );
for ( k = 0; k < num_iter; k++ )
{
if ( k != 0 )
{
for ( i = 0; i < num_tab; i++ )
{
fprintf( fp, "%s", tab );
}
}
for ( l = 0; l < sample_per_ligne; l++ )
{
fprintf( fp, "%d", float2int16_t( vec[k * sample_per_ligne + l], factor_Q ) );
fprintf( fp, ", " );
}
fprintf( fp, "\n" );
}
for ( i = 0; i < num_tab; i++ )
{
fprintf( fp, "%s", tab );
}
for ( l = 0; l < remaining_samples - 1; l++ )
{
fprintf( fp, "%d", float2int16_t( vec[k * sample_per_ligne + l], factor_Q ) );
fprintf( fp, ", " );
}
fprintf( fp, "%d", float2int16_t( vec[k * sample_per_ligne + l], factor_Q ) );
for ( i = 0; i < num_tab; i++ )
{
fprintf( fp, "%s", tab );
}
fprintf( fp, "}" );
}
/*---------------------------------------------------------------------* /*---------------------------------------------------------------------*
*update_c_file_with_reverb(); *update_c_file_with_reverb();
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
void update_c_file_with_reverb( float *pEner_l, float *pEner_r, float *pCoherence, int16_t *pEner_l_fx, int16_t *pEner_r_fx, int16_t *pCoherence_fx, int16_t factorQ, const int32_t samplerate, const int16_t len ) void update_c_file_with_reverb( float *pEner_l, float *pEner_r, float *pCoherence, const int32_t samplerate, const int16_t len )
{ {
char len_str[26] = "LR_IAC_LENGTH_NR_FC"; char len_str[26] = "LR_IAC_LENGTH_NR_FC";
if ( samplerate == 16000 ) if ( samplerate == 16000 )
...@@ -2183,42 +2643,340 @@ void update_c_file_with_reverb( float *pEner_l, float *pEner_r, float *pCoherenc ...@@ -2183,42 +2643,340 @@ void update_c_file_with_reverb( float *pEner_l, float *pEner_r, float *pCoherenc
if ( samplerate == DEFAULT_SAMPLERATE ) if ( samplerate == DEFAULT_SAMPLERATE )
{ {
fprintf( fp, "\n/********************** default HRIR reverb rom tables **********************/" ); fprintf( fp, "\n/********************** default HRIR reverb rom tables **********************/" );
}
fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate );
/* float *defaultHRIR_right_avg_power_[LR_IAC_LENGTH_NR_FC];*/
fprintf( fp, "\nconst float defaultHRIR_coherence_%dkHz[%s] = \n", samplerate / 1000, len_str );
write_array_float_to_file( fp, pCoherence, len, NUM_SAMPLES_PER_LINES_REVERB, FORMAT_FLOAT_REVERB, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ";\n" );
/* float *defaultHRIR_left_avg_power_[LR_IAC_LENGTH_NR_FC];*/
fprintf( fp, "\nconst float defaultHRIR_left_avg_power_%dkHz[%s] = \n", samplerate / 1000, len_str );
write_array_float_to_file( fp, pEner_l, len, NUM_SAMPLES_PER_LINES_REVERB, FORMAT_FLOAT_REVERB, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ";\n" );
/* float *defaultHRIR_right_avg_power_[LR_IAC_LENGTH_NR_FC];*/
fprintf( fp, "\nconst float defaultHRIR_right_avg_power_%dkHz[%s] = \n", samplerate / 1000, len_str );
write_array_float_to_file( fp, pEner_r, len, NUM_SAMPLES_PER_LINES_REVERB, FORMAT_FLOAT_REVERB, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ";\n" );
if ( fp )
fclose( fp );
return;
}
/*---------------------------------------------------------------------*
*update_c_file_with_reverb_fx();
*---------------------------------------------------------------------*/
void update_c_file_with_reverb_fx( int16_t *pEner_l_fx, int16_t *pEner_r_fx, int16_t *pCoherence_fx, int16_t factorQ, const int32_t samplerate, const int16_t len )
{
char len_str[26] = "LR_IAC_LENGTH_NR_FC";
if ( samplerate == 16000 )
{
strcpy( len_str, "LR_IAC_LENGTH_NR_FC_16KHZ" );
}
if ( c_file_path_fx == NULL )
return;
if ( pEner_l_fx == NULL )
return;
if ( pEner_r_fx == NULL )
return;
if ( pCoherence_fx == NULL )
return;
FILE *fp = fopen( c_file_path_fx, "a" );
if ( fp == NULL )
return;
if ( samplerate == DEFAULT_SAMPLERATE )
{
fprintf( fp, "\n/********************** default HRIR reverb rom tables **********************/" );
}
fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate );
fprintf( fp, "\nconst Word16 defaultHRIR_Q_%dkHz_fx = %d;", samplerate / 1000, factorQ );
/* float *defaultHRIR_right_avg_power_[LR_IAC_LENGTH_NR_FC];*/
fprintf( fp, "\nconst Word16 defaultHRIR_coherence_%dkHz_fx[%s] = \n", samplerate / 1000, len_str );
write_array_int16_t_to_file( fp, pCoherence_fx, len, NUM_SAMPLES_PER_LINES_REVERB, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ";\n" );
/* float *defaultHRIR_left_avg_power_[LR_IAC_LENGTH_NR_FC];*/
fprintf( fp, "\nconst Word16 defaultHRIR_left_avg_power_%dkHz_fx[%s] = \n", samplerate / 1000, len_str );
write_array_int16_t_to_file( fp, pEner_l_fx, len, NUM_SAMPLES_PER_LINES_REVERB, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ";\n" );
/* float *defaultHRIR_right_avg_power_[LR_IAC_LENGTH_NR_FC];*/
fprintf( fp, "\nconst Word16 defaultHRIR_right_avg_power_%dkHz_fx[%s] = \n", samplerate / 1000, len_str );
write_array_int16_t_to_file( fp, pEner_r_fx, len, NUM_SAMPLES_PER_LINES_REVERB, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ";\n" );
if ( fp )
fclose( fp );
return;
}
/*---------------------------------------------------------------------*
*update_c_file();
*---------------------------------------------------------------------*/
void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len, int16_t factorQ[3] )
{
if ( c_file_path == NULL )
return;
FILE *fp = fopen( c_file_path, "a" );
int16_t i, j;
uint32_t *pTotalNumFreqSampPerIterations[2], maxTotalNumFreqSampPerIterations;
uint32_t pTotalNumFreqSampPerIterationsDiffuse[2], maxTotalNumFreqSampPerIterationsDiffuse;
const char *format_float = FORMAT_FLOAT;
const char *format_float_latency = FORMAT_FLOAT_LATENCY;
pTotalNumFreqSampPerIterations[0] = malloc( sizeof( float ) * hrtf->max_num_ir );
pTotalNumFreqSampPerIterations[1] = malloc( sizeof( float ) * hrtf->max_num_ir );
if ( fp == NULL )
return;
if ( hrtf == NULL )
return;
if ( samplerate == DEFAULT_SAMPLERATE )
{
/* float latency_s; */
fprintf( fp, "\n\n/********************** %s_%s **********************/\n", DECLARATION_NAME, lscfg.name );
fprintf( fp, "\nconst float %s_%s_latency_s = ", DECLARATION_NAME, lscfg.name );
fprintf( fp, format_float_latency, hrtf->latency_s );
fprintf( fp, ";" );
}
fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate );
/* int16_t max_num_iterations; */
fprintf( fp, "\nconst int16_t %s_%s_max_num_iterations_%2dkHz = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, hrtf->max_num_iterations );
/* uint16_t num_iterations[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/
fprintf( fp, "\nconst uint16_t %s_%s_num_iterations_%2dkHz[%s][BINAURAL_CHANNELS]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
for ( i = 0; i < hrtf->max_num_ir - 1; i++ )
{
fprintf( fp, "{%u, %u}, ", hrtf->num_iterations[i][0], hrtf->num_iterations[i][1] );
}
fprintf( fp, "{%u, %u} ", hrtf->num_iterations[i][0], hrtf->num_iterations[i][1] );
fprintf( fp, "};" );
/* uint16_t num_iterations_diffuse[BINAURAL_CHANNELS];*/
fprintf( fp, "\nconst uint16_t %s_%s_num_iterations_diffuse_%2dkHz[BINAURAL_CHANNELS] = {%u, %u};", DECLARATION_NAME, lscfg.name, samplerate / 1000, hrtf->num_iterations_diffuse[0], hrtf->num_iterations_diffuse[1] );
maxTotalNumFreqSampPerIterations = 0;
for ( i = 0; i < hrtf->max_num_ir; i++ )
{
pTotalNumFreqSampPerIterations[0][i] = 0;
pTotalNumFreqSampPerIterations[1][i] = 0;
for ( j = 0; j < hrtf->num_iterations[i][0]; j++ )
{
pTotalNumFreqSampPerIterations[0][i] += hrtf->pIndex_frequency_max_dyn[i][0][j];
}
if ( maxTotalNumFreqSampPerIterations < pTotalNumFreqSampPerIterations[0][i] )
{
maxTotalNumFreqSampPerIterations = pTotalNumFreqSampPerIterations[0][i];
}
for ( j = 0; j < hrtf->num_iterations[i][1]; j++ )
{
pTotalNumFreqSampPerIterations[1][i] += hrtf->pIndex_frequency_max_dyn[i][1][j];
}
if ( maxTotalNumFreqSampPerIterations < pTotalNumFreqSampPerIterations[1][i] )
{
maxTotalNumFreqSampPerIterations = pTotalNumFreqSampPerIterations[1][i];
}
}
pTotalNumFreqSampPerIterationsDiffuse[0] = 0;
pTotalNumFreqSampPerIterationsDiffuse[1] = 0;
maxTotalNumFreqSampPerIterationsDiffuse = 0;
for ( j = 0; j < hrtf->num_iterations_diffuse[0]; j++ )
{
pTotalNumFreqSampPerIterationsDiffuse[0] += hrtf->pIndex_frequency_max_diffuse_dyn[0][j];
}
if ( maxTotalNumFreqSampPerIterationsDiffuse < pTotalNumFreqSampPerIterationsDiffuse[0] )
{
maxTotalNumFreqSampPerIterationsDiffuse = pTotalNumFreqSampPerIterationsDiffuse[0];
}
for ( j = 0; j < hrtf->num_iterations_diffuse[1]; j++ )
{
pTotalNumFreqSampPerIterationsDiffuse[1] += hrtf->pIndex_frequency_max_diffuse_dyn[1][j];
}
if ( maxTotalNumFreqSampPerIterationsDiffuse < pTotalNumFreqSampPerIterationsDiffuse[1] )
{
maxTotalNumFreqSampPerIterationsDiffuse = pTotalNumFreqSampPerIterationsDiffuse[1];
}
/*uint16_t *pIndex_frequency_max_dyn[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; */
fprintf( fp, "\nconst uint16_t %s_%s_pIndex_frequency_max_%2dkHz[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, hrtf->max_num_iterations );
for ( i = 0; i < hrtf->max_num_ir - 1; i++ )
{
fprintf( fp, "{" );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][0], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "," );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][1], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "}," );
}
fprintf( fp, "{" );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][0], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "," );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][1], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "}" );
fprintf( fp, "};" );
/* uint16_t index_frequency_max_diffuse; */
fprintf( fp, "\nconst uint16_t %s_%s_index_frequency_max_diffuse_%2dkHz = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, hrtf->index_frequency_max_diffuse );
/* float inv_diffuse_weight[BINAURAL_CHANNELS][MAX_INTERN_CHANNELS]; */
fprintf( fp, "\nconst float %s_%s_inv_diffuse_weight_%2dkHz[BINAURAL_CHANNELS][%s]=", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
fprintf( fp, "{" );
write_array_float_to_file( fp, hrtf->inv_diffuse_weight[0], hrtf->max_num_ir, hrtf->max_num_ir, format_float, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "," );
write_array_float_to_file( fp, hrtf->inv_diffuse_weight[1], hrtf->max_num_ir, hrtf->max_num_ir, format_float, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "}" );
fprintf( fp, ";" );
/* uint16_t *pIndex_frequency_max_diffuse_dyn[BINAURAL_CHANNELS];*/
if ( hrtf->pIndex_frequency_max_diffuse_dyn[0] == NULL )
{
fprintf( fp, "\nconst uint16_t *%s_%s_pIndex_frequency_max_diffuse_%2dkHz[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
}
else
{
fprintf( fp, "\nconst uint16_t %s_%s_pIndex_frequency_max_diffuse_%2dkHz[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, ( hrtf->num_iterations_diffuse[0] > hrtf->num_iterations_diffuse[1] ) ? hrtf->num_iterations_diffuse[0] : hrtf->num_iterations_diffuse[1] );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_diffuse_dyn[0], hrtf->num_iterations_diffuse[0], hrtf->num_iterations_diffuse[0], 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "," );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_diffuse_dyn[1], hrtf->num_iterations_diffuse[1], hrtf->num_iterations_diffuse[1], 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "};" );
}
/* float *pOut_to_bin[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/
if ( samplerate == 48000 && maxTotalNumFreqSampPerIterations == L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_re_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME48k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else if ( samplerate == 32000 && maxTotalNumFreqSampPerIterations == L_FRAME32k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_re_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME32k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else if ( samplerate == 16000 && maxTotalNumFreqSampPerIterations == L_FRAME16k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_re_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME16k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else
{
fprintf( fp, "\nconst float %s_%s_coeff_re_%2dkHz[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations );
}
for ( i = 0; i < hrtf->max_num_ir - 1; i++ )
{
fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT );
write_array_float_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n%s},", TAB_WITH_SPACE_OR_NOT );
}
fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT );
write_array_float_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n%s}", TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n};" );
if ( samplerate == 48000 && maxTotalNumFreqSampPerIterations == L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_im_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME48k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else if ( samplerate == 32000 && maxTotalNumFreqSampPerIterations == L_FRAME32k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_im_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME32k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else if ( samplerate == 16000 && maxTotalNumFreqSampPerIterations == L_FRAME16k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_im_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME16k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else
{
fprintf( fp, "\nconst float %s_%s_coeff_im_%2dkHz[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations );
}
for ( i = 0; i < hrtf->max_num_ir - 1; i++ )
{
fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT );
write_array_float_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n%s},", TAB_WITH_SPACE_OR_NOT );
}
fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT );
write_array_float_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n%s}", TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n};" );
/* float *pOut_to_bin_diffuse_re_dyn[BINAURAL_CHANNELS];*/
if ( hrtf->pOut_to_bin_diffuse_re_dyn[0] == NULL )
{
fprintf( fp, "\nconst float *%s_%s_coeff_diffuse_re_%2dkHz[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
}
else
{
fprintf( fp, "\nconst float %s_%s_coeff_diffuse_re_%2dkHz[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse );
write_array_float_to_file( fp, hrtf->pOut_to_bin_diffuse_re_dyn[0], pTotalNumFreqSampPerIterationsDiffuse[0], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_diffuse_re_dyn[1], pTotalNumFreqSampPerIterationsDiffuse[1], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n};" );
}
/* float *pOut_to_bin_diffuse_im_dyn[BINAURAL_CHANNELS];*/
if ( hrtf->pOut_to_bin_diffuse_im_dyn[0] == NULL )
{
fprintf( fp, "\nconst float *%s_%s_coeff_diffuse_im_%2dkHz[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
}
else
{
fprintf( fp, "\nconst float %s_%s_coeff_diffuse_im_%2dkHz[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse );
write_array_float_to_file( fp, hrtf->pOut_to_bin_diffuse_im_dyn[0], pTotalNumFreqSampPerIterationsDiffuse[0], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_diffuse_im_dyn[1], pTotalNumFreqSampPerIterationsDiffuse[1], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n};" );
} }
fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate );
/* float *defaultHRIR_right_avg_power_[LR_IAC_LENGTH_NR_FC];*/
fprintf( fp, "\nconst float defaultHRIR_coherence_%dkHz[%s] = \n", samplerate / 1000, len_str );
write_array_float_to_file( fp, pCoherence, len, NUM_SAMPLES_PER_LINES_REVERB, FORMAT_FLOAT_REVERB, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ";\n" );
/* float *defaultHRIR_left_avg_power_[LR_IAC_LENGTH_NR_FC];*/
fprintf( fp, "\nconst float defaultHRIR_left_avg_power_%dkHz[%s] = \n", samplerate / 1000, len_str );
write_array_float_to_file( fp, pEner_l, len, NUM_SAMPLES_PER_LINES_REVERB, FORMAT_FLOAT_REVERB, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ";\n" );
/* float *defaultHRIR_right_avg_power_[LR_IAC_LENGTH_NR_FC];*/
fprintf( fp, "\nconst float defaultHRIR_right_avg_power_%dkHz[%s] = \n", samplerate / 1000, len_str );
write_array_float_to_file( fp, pEner_r, len, NUM_SAMPLES_PER_LINES_REVERB, FORMAT_FLOAT_REVERB, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ";\n" );
if ( fp ) if ( fp )
fclose( fp ); fclose( fp );
if ( pTotalNumFreqSampPerIterations[0] )
{
free( pTotalNumFreqSampPerIterations[0] );
}
if ( pTotalNumFreqSampPerIterations[1] )
{
free( pTotalNumFreqSampPerIterations[1] );
}
return; return;
} }
/*---------------------------------------------------------------------* /*---------------------------------------------------------------------*
*update_c_file(); *update_c_file();
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len, int16_t factorQ[3] ) void update_c_file_fx( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len, int16_t factor_Q[3] )
{ {
if ( c_file_path == NULL ) if ( c_file_path_fx == NULL )
return; return;
FILE *fp = fopen( c_file_path, "a" ); FILE *fp = fopen( c_file_path_fx, "a" );
int16_t i, j; int16_t i, j;
uint32_t *pTotalNumFreqSampPerIterations[2], maxTotalNumFreqSampPerIterations; uint32_t *pTotalNumFreqSampPerIterations[2], maxTotalNumFreqSampPerIterations;
uint32_t pTotalNumFreqSampPerIterationsDiffuse[2], maxTotalNumFreqSampPerIterationsDiffuse; uint32_t pTotalNumFreqSampPerIterationsDiffuse[2], maxTotalNumFreqSampPerIterationsDiffuse;
...@@ -2237,17 +2995,16 @@ void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int ...@@ -2237,17 +2995,16 @@ void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int
{ {
/* float latency_s; */ /* float latency_s; */
fprintf( fp, "\n\n/********************** %s_%s **********************/\n", DECLARATION_NAME, lscfg.name ); fprintf( fp, "\n\n/********************** %s_%s **********************/\n", DECLARATION_NAME, lscfg.name );
fprintf( fp, "\nconst float %s_%s_latency_s = ", DECLARATION_NAME, lscfg.name ); fprintf( fp, "\nconst Word16 %s_%s_Q_latency_s_fx = %d;", DECLARATION_NAME, lscfg.name, factor_Q[0] );
fprintf( fp, format_float_latency, hrtf->latency_s ); fprintf( fp, "\nconst Word32 %s_%s_latency_s_fx = %d;/*Q-31*/", DECLARATION_NAME, lscfg.name, float2int32_t( hrtf->latency_s, factor_Q[0] ) );
fprintf( fp, ";" );
} }
fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate ); fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate );
/* int16_t max_num_iterations; */ /* int16_t max_num_iterations; */
fprintf( fp, "\nconst int16_t %s_%s_max_num_iterations_%2dkHz = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, hrtf->max_num_iterations ); fprintf( fp, "\nconst Word16 %s_%s_max_num_iterations_%2dkHz = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, hrtf->max_num_iterations );
/* uint16_t num_iterations[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/ /* uint16_t num_iterations[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/
fprintf( fp, "\nconst uint16_t %s_%s_num_iterations_%2dkHz[%s][BINAURAL_CHANNELS]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name ); fprintf( fp, "\nconst Word16 %s_%s_num_iterations_%2dkHz[%s][BINAURAL_CHANNELS]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
for ( i = 0; i < hrtf->max_num_ir - 1; i++ ) for ( i = 0; i < hrtf->max_num_ir - 1; i++ )
{ {
fprintf( fp, "{%u, %u}, ", hrtf->num_iterations[i][0], hrtf->num_iterations[i][1] ); fprintf( fp, "{%u, %u}, ", hrtf->num_iterations[i][0], hrtf->num_iterations[i][1] );
...@@ -2256,7 +3013,7 @@ void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int ...@@ -2256,7 +3013,7 @@ void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int
fprintf( fp, "};" ); fprintf( fp, "};" );
/* uint16_t num_iterations_diffuse[BINAURAL_CHANNELS];*/ /* uint16_t num_iterations_diffuse[BINAURAL_CHANNELS];*/
fprintf( fp, "\nconst uint16_t %s_%s_num_iterations_diffuse_%2dkHz[BINAURAL_CHANNELS] = {%u, %u};", DECLARATION_NAME, lscfg.name, samplerate / 1000, hrtf->num_iterations_diffuse[0], hrtf->num_iterations_diffuse[1] ); fprintf( fp, "\nconst Word16 %s_%s_num_iterations_diffuse_%2dkHz[BINAURAL_CHANNELS] = {%u, %u};", DECLARATION_NAME, lscfg.name, samplerate / 1000, hrtf->num_iterations_diffuse[0], hrtf->num_iterations_diffuse[1] );
maxTotalNumFreqSampPerIterations = 0; maxTotalNumFreqSampPerIterations = 0;
for ( i = 0; i < hrtf->max_num_ir; i++ ) for ( i = 0; i < hrtf->max_num_ir; i++ )
...@@ -2302,137 +3059,109 @@ void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int ...@@ -2302,137 +3059,109 @@ void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int
} }
/*uint16_t *pIndex_frequency_max_dyn[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; */ /*uint16_t *pIndex_frequency_max_dyn[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; */
fprintf( fp, "\nconst uint16_t %s_%s_pIndex_frequency_max_%2dkHz[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, hrtf->max_num_iterations ); fprintf( fp, "\nconst Word16 %s_%s_pIndex_frequency_max_%2dkHz[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, hrtf->max_num_iterations );
for ( i = 0; i < hrtf->max_num_ir - 1; i++ ) for ( i = 0; i < hrtf->max_num_ir - 1; i++ )
{ {
fprintf( fp, "{" ); fprintf( fp, "{" );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][0], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT ); write_array_uint16_t_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][0], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "," ); fprintf( fp, "," );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][1], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT ); write_array_uint16_t_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][1], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "}," ); fprintf( fp, "}," );
} }
fprintf( fp, "{" ); fprintf( fp, "{" );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][0], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT ); write_array_uint16_t_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][0], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "," ); fprintf( fp, "," );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][1], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT ); write_array_uint16_t_to_file( fp, hrtf->pIndex_frequency_max_dyn[i][1], hrtf->max_num_iterations, hrtf->max_num_iterations, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "}" ); fprintf( fp, "}" );
fprintf( fp, "};" ); fprintf( fp, "};" );
/* uint16_t index_frequency_max_diffuse; */ /* uint16_t index_frequency_max_diffuse; */
fprintf( fp, "\nconst uint16_t %s_%s_index_frequency_max_diffuse_%2dkHz = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, hrtf->index_frequency_max_diffuse ); fprintf( fp, "\nconst Word16 %s_%s_index_frequency_max_diffuse_%2dkHz = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, hrtf->index_frequency_max_diffuse );
/* float inv_diffuse_weight[BINAURAL_CHANNELS][MAX_INTERN_CHANNELS]; */ fprintf( fp, "\nconst Word16 %s_%s_inv_diffuse_weight_Q_%2dkHz_fx = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, factor_Q[1] );
fprintf( fp, "\nconst float %s_%s_inv_diffuse_weight_%2dkHz[BINAURAL_CHANNELS][%s]=", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name ); /* float inv_diffuse_weight_fx[BINAURAL_CHANNELS][MAX_INTERN_CHANNELS]; */
fprintf( fp, "\nconst Word16 %s_%s_inv_diffuse_weight_%2dkHz_fx[BINAURAL_CHANNELS][%s]=", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
fprintf( fp, "{" ); fprintf( fp, "{" );
write_array_float_to_file( fp, hrtf->inv_diffuse_weight[0], hrtf->max_num_ir, hrtf->max_num_ir, format_float, 0, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->inv_diffuse_weight[0], factor_Q[1], hrtf->max_num_ir, hrtf->max_num_ir, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "," ); fprintf( fp, "," );
write_array_float_to_file( fp, hrtf->inv_diffuse_weight[1], hrtf->max_num_ir, hrtf->max_num_ir, format_float, 0, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->inv_diffuse_weight[1], factor_Q[1], hrtf->max_num_ir, hrtf->max_num_ir, 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "}" ); fprintf( fp, "}" );
fprintf( fp, ";" ); fprintf( fp, ";" );
/* uint16_t *pIndex_frequency_max_diffuse_dyn[BINAURAL_CHANNELS];*/ /* uint16_t *pIndex_frequency_max_diffuse_dyn[BINAURAL_CHANNELS];*/
if ( hrtf->pIndex_frequency_max_diffuse_dyn[0] == NULL ) if ( hrtf->pIndex_frequency_max_diffuse_dyn[0] == NULL )
{ {
fprintf( fp, "\nconst uint16_t *%s_%s_pIndex_frequency_max_diffuse_%2dkHz[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 ); fprintf( fp, "\nconst Word16 *%s_%s_pIndex_frequency_max_diffuse_%2dkHz[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
} }
else else
{ {
fprintf( fp, "\nconst uint16_t %s_%s_pIndex_frequency_max_diffuse_%2dkHz[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, ( hrtf->num_iterations_diffuse[0] > hrtf->num_iterations_diffuse[1] ) ? hrtf->num_iterations_diffuse[0] : hrtf->num_iterations_diffuse[1] ); fprintf( fp, "\nconst Word16 %s_%s_pIndex_frequency_max_diffuse_%2dkHz[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, ( hrtf->num_iterations_diffuse[0] > hrtf->num_iterations_diffuse[1] ) ? hrtf->num_iterations_diffuse[0] : hrtf->num_iterations_diffuse[1] );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_diffuse_dyn[0], hrtf->num_iterations_diffuse[0], hrtf->num_iterations_diffuse[0], 0, TAB_WITH_SPACE_OR_NOT ); write_array_uint16_t_to_file( fp, hrtf->pIndex_frequency_max_diffuse_dyn[0], hrtf->num_iterations_diffuse[0], hrtf->num_iterations_diffuse[0], 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "," ); fprintf( fp, "," );
write_array_uint16_to_file( fp, hrtf->pIndex_frequency_max_diffuse_dyn[1], hrtf->num_iterations_diffuse[1], hrtf->num_iterations_diffuse[1], 0, TAB_WITH_SPACE_OR_NOT ); write_array_uint16_t_to_file( fp, hrtf->pIndex_frequency_max_diffuse_dyn[1], hrtf->num_iterations_diffuse[1], hrtf->num_iterations_diffuse[1], 0, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "};" ); fprintf( fp, "};" );
} }
/* float *pOut_to_bin[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/ fprintf( fp, "\nconst Word16 %s_%s_coeff_Q_%2dkHz_fx = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, factor_Q[2] );
if ( samplerate == 48000 && maxTotalNumFreqSampPerIterations == L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES )
{ /* float *pOut_to_bin_fx[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/
fprintf( fp, "\nconst float %s_%s_coeff_re_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME48k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name ); fprintf( fp, "\nconst Word16 %s_%s_coeff_re_%2dkHz_fx[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations );
}
else if ( samplerate == 32000 && maxTotalNumFreqSampPerIterations == L_FRAME32k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_re_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME32k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else if ( samplerate == 16000 && maxTotalNumFreqSampPerIterations == L_FRAME16k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_re_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME16k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else
{
fprintf( fp, "\nconst float %s_%s_coeff_re_%2dkHz[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations );
}
for ( i = 0; i < hrtf->max_num_ir - 1; i++ ) for ( i = 0; i < hrtf->max_num_ir - 1; i++ )
{ {
fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT );
write_array_float_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][0], factor_Q[2], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" ); fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][1], factor_Q[2], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n%s},", TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "\n%s},", TAB_WITH_SPACE_OR_NOT );
} }
fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT );
write_array_float_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][0], factor_Q[2], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" ); fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_re_dyn[i][1], factor_Q[2], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n%s}", TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "\n%s}", TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n};" ); fprintf( fp, "\n};" );
if ( samplerate == 48000 && maxTotalNumFreqSampPerIterations == L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES ) fprintf( fp, "\nconst Word16 %s_%s_coeff_im_%2dkHz_fx[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations );
{
fprintf( fp, "\nconst float %s_%s_coeff_im_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME48k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else if ( samplerate == 32000 && maxTotalNumFreqSampPerIterations == L_FRAME32k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_im_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME32k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else if ( samplerate == 16000 && maxTotalNumFreqSampPerIterations == L_FRAME16k / MAX_PARAM_SPATIAL_SUBFRAMES )
{
fprintf( fp, "\nconst float %s_%s_coeff_im_%2dkHz[%s][BINAURAL_CHANNELS][L_FRAME16k/MAX_PARAM_SPATIAL_SUBFRAMES]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
}
else
{
fprintf( fp, "\nconst float %s_%s_coeff_im_%2dkHz[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations );
}
for ( i = 0; i < hrtf->max_num_ir - 1; i++ ) for ( i = 0; i < hrtf->max_num_ir - 1; i++ )
{ {
fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT );
write_array_float_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][0], factor_Q[2], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" ); fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][1], factor_Q[2], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n%s},", TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "\n%s},", TAB_WITH_SPACE_OR_NOT );
} }
fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT );
write_array_float_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][0], factor_Q[2], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" ); fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_im_dyn[i][1], factor_Q[2], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n%s}", TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "\n%s}", TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n};" ); fprintf( fp, "\n};" );
/* float *pOut_to_bin_diffuse_re[BINAURAL_CHANNELS];*/
/* float *pOut_to_bin_diffuse_re_dyn[BINAURAL_CHANNELS];*/
if ( hrtf->pOut_to_bin_diffuse_re_dyn[0] == NULL ) if ( hrtf->pOut_to_bin_diffuse_re_dyn[0] == NULL )
{ {
fprintf( fp, "\nconst float *%s_%s_coeff_diffuse_re_%2dkHz[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 ); fprintf( fp, "\nconst Word16 *%s_%s_coeff_diffuse_re_%2dkHz_fx[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
} }
else else
{ {
fprintf( fp, "\nconst float %s_%s_coeff_diffuse_re_%2dkHz[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse ); fprintf( fp, "\nconst Word16 %s_%s_coeff_diffuse_re_%2dkHz_fx[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse );
write_array_float_to_file( fp, hrtf->pOut_to_bin_diffuse_re_dyn[0], pTotalNumFreqSampPerIterationsDiffuse[0], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_diffuse_re_dyn[0], factor_Q[2], pTotalNumFreqSampPerIterationsDiffuse[0], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" ); fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_diffuse_re_dyn[1], pTotalNumFreqSampPerIterationsDiffuse[1], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_diffuse_re_dyn[1], factor_Q[2], pTotalNumFreqSampPerIterationsDiffuse[1], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n};" ); fprintf( fp, "\n};" );
} }
/* float *pOut_to_bin_diffuse_im_dyn[BINAURAL_CHANNELS];*/ /* float *pOut_to_bin_diffuse_im[BINAURAL_CHANNELS];*/
if ( hrtf->pOut_to_bin_diffuse_im_dyn[0] == NULL ) if ( hrtf->pOut_to_bin_diffuse_im_dyn[0] == NULL )
{ {
fprintf( fp, "\nconst float *%s_%s_coeff_diffuse_im_%2dkHz[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 ); fprintf( fp, "\nconst Word16 *%s_%s_coeff_diffuse_im_%2dkHz_fx[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
} }
else else
{ {
fprintf( fp, "\nconst float %s_%s_coeff_diffuse_im_%2dkHz[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse ); fprintf( fp, "\nconst Word16 %s_%s_coeff_diffuse_im_%2dkHz_fx[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse );
write_array_float_to_file( fp, hrtf->pOut_to_bin_diffuse_im_dyn[0], pTotalNumFreqSampPerIterationsDiffuse[0], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_diffuse_im_dyn[0], factor_Q[2], pTotalNumFreqSampPerIterationsDiffuse[0], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, ",\n" ); fprintf( fp, ",\n" );
write_array_float_to_file( fp, hrtf->pOut_to_bin_diffuse_im_dyn[1], pTotalNumFreqSampPerIterationsDiffuse[1], NUM_SAMPLES_PER_LINES, format_float, 2, TAB_WITH_SPACE_OR_NOT ); write_array_float_to_int16_t_to_file( fp, hrtf->pOut_to_bin_diffuse_im_dyn[1], factor_Q[2], pTotalNumFreqSampPerIterationsDiffuse[1], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT );
fprintf( fp, "\n};" ); fprintf( fp, "\n};" );
} }
...@@ -2643,6 +3372,185 @@ void update_h_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int ...@@ -2643,6 +3372,185 @@ void update_h_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int
} }
return; return;
} }
/*---------------------------------------------------------------------*
*update_h_file_with_reverb
*---------------------------------------------------------------------*/
void update_h_file_with_reverb_fx( int32_t samplerate )
{
char len_str[26] = "LR_IAC_LENGTH_NR_FC";
if ( samplerate == 16000 )
{
strcpy( len_str, "LR_IAC_LENGTH_NR_FC_16KHZ" );
}
if ( h_file_path_fx == NULL )
return;
FILE *fp = fopen( h_file_path_fx, "a" );
if ( fp == NULL )
return;
if ( samplerate == DEFAULT_SAMPLERATE )
{
fprintf( fp, "\n/********************** default HRIR reverb rom tables **********************/\n" );
}
fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate );
fprintf( fp, "\nextern const Word16 defaultHRIR_Q_%dkHz_fx;", samplerate / 1000 );
/* Word16 *defaultHRIR_coherence_[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/
fprintf( fp, "\nextern const Word16 defaultHRIR_coherence_%dkHz_fx[%s];", samplerate / 1000, len_str );
/* Word16 *defaultHRIR_left_avg_power[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/
fprintf( fp, "\nextern const Word16 defaultHRIR_left_avg_power_%dkHz_fx[%s];", samplerate / 1000, len_str );
fprintf( fp, "\nextern const Word16 defaultHRIR_right_avg_power_%dkHz_fx[%s];", samplerate / 1000, len_str );
if ( fp )
fclose( fp );
return;
}
/*---------------------------------------------------------------------*
*update_h_file();
*---------------------------------------------------------------------*/
void update_h_file_fx( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int32_t samplerate, const int16_t frame_len )
{
uint16_t i, j;
uint32_t *pTotalNumFreqSampPerIterations[2], maxTotalNumFreqSampPerIterations;
uint32_t pTotalNumFreqSampPerIterationsDiffuse[2], maxTotalNumFreqSampPerIterationsDiffuse;
if ( h_file_path_fx == NULL )
return;
pTotalNumFreqSampPerIterations[0] = malloc( sizeof( float ) * hrtf->max_num_ir );
pTotalNumFreqSampPerIterations[1] = malloc( sizeof( float ) * hrtf->max_num_ir );
FILE *fp = fopen( h_file_path_fx, "a" );
if ( fp == NULL )
return;
if ( hrtf == NULL )
return;
maxTotalNumFreqSampPerIterations = 0;
for ( i = 0; i < hrtf->max_num_ir; i++ )
{
pTotalNumFreqSampPerIterations[0][i] = 0;
pTotalNumFreqSampPerIterations[1][i] = 0;
for ( j = 0; j < hrtf->num_iterations[i][0]; j++ )
{
pTotalNumFreqSampPerIterations[0][i] += hrtf->pIndex_frequency_max_dyn[i][0][j];
}
if ( maxTotalNumFreqSampPerIterations < pTotalNumFreqSampPerIterations[0][i] )
{
maxTotalNumFreqSampPerIterations = pTotalNumFreqSampPerIterations[0][i];
}
for ( j = 0; j < hrtf->num_iterations[i][1]; j++ )
{
pTotalNumFreqSampPerIterations[1][i] += hrtf->pIndex_frequency_max_dyn[i][1][j];
}
if ( maxTotalNumFreqSampPerIterations < pTotalNumFreqSampPerIterations[1][i] )
{
maxTotalNumFreqSampPerIterations = pTotalNumFreqSampPerIterations[1][i];
}
}
pTotalNumFreqSampPerIterationsDiffuse[0] = 0;
pTotalNumFreqSampPerIterationsDiffuse[1] = 0;
maxTotalNumFreqSampPerIterationsDiffuse = 0;
for ( j = 0; j < hrtf->num_iterations_diffuse[0]; j++ )
{
pTotalNumFreqSampPerIterationsDiffuse[0] += hrtf->pIndex_frequency_max_diffuse_dyn[0][j];
}
if ( maxTotalNumFreqSampPerIterationsDiffuse < pTotalNumFreqSampPerIterationsDiffuse[0] )
{
maxTotalNumFreqSampPerIterationsDiffuse = pTotalNumFreqSampPerIterationsDiffuse[0];
}
for ( j = 0; j < hrtf->num_iterations_diffuse[1]; j++ )
{
pTotalNumFreqSampPerIterationsDiffuse[1] += hrtf->pIndex_frequency_max_diffuse_dyn[1][j];
}
if ( maxTotalNumFreqSampPerIterationsDiffuse < pTotalNumFreqSampPerIterationsDiffuse[1] )
{
maxTotalNumFreqSampPerIterationsDiffuse = pTotalNumFreqSampPerIterationsDiffuse[1];
}
if ( samplerate == DEFAULT_SAMPLERATE )
{
/* float latency_s; */
fprintf( fp, "\n\n/********************** %s_%s **********************/\n", DECLARATION_NAME, lscfg.name );
fprintf( fp, "\nextern const Word16 %s_%s_Q_latency_s_fx;", DECLARATION_NAME, lscfg.name );
fprintf( fp, "\nextern const Word32 %s_%s_latency_s_fx;", DECLARATION_NAME, lscfg.name );
}
fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate );
/* int16_t max_num_iterations; */
fprintf( fp, "\nextern const Word16 %s_%s_max_num_iterations_%2dkHz;", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
/* uint16_t num_iterations[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/
fprintf( fp, "\nextern const Word16 %s_%s_num_iterations_%2dkHz[%s][BINAURAL_CHANNELS];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
/* uint16_t num_iterations_diffuse[BINAURAL_CHANNELS];*/
fprintf( fp, "\nextern const Word16 %s_%s_num_iterations_diffuse_%2dkHz[BINAURAL_CHANNELS];", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
/*uint16_t *pIndex_frequency_max_dyn[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; */
fprintf( fp, "\nextern const Word16 %s_%s_pIndex_frequency_max_%2dkHz[%s][BINAURAL_CHANNELS][%d];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, hrtf->max_num_iterations );
/* uint16_t index_frequency_max_diffuse; */
fprintf( fp, "\nextern const Word16 %s_%s_index_frequency_max_diffuse_%2dkHz;", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
/* Word16 inv_diffuse_weight_fx[BINAURAL_CHANNELS][MAX_INTERN_CHANNELS]; */
fprintf( fp, "\nextern const Word16 %s_%s_inv_diffuse_weight_Q_%2dkHz_fx;", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
fprintf( fp, "\nextern const Word16 %s_%s_inv_diffuse_weight_%2dkHz_fx[BINAURAL_CHANNELS][%s];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name );
/* uint16_t *pIndex_frequency_max_diffuse[BINAURAL_CHANNELS];*/
if ( hrtf->pIndex_frequency_max_diffuse_dyn[0] == NULL )
{
fprintf( fp, "\nextern const Word16 *%s_%s_pIndex_frequency_max_diffuse_%2dkHz[BINAURAL_CHANNELS];", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
}
else
{
fprintf( fp, "\nextern const Word16 %s_%s_pIndex_frequency_max_diffuse_%2dkHz[BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, ( hrtf->num_iterations_diffuse[0] > hrtf->num_iterations_diffuse[1] ) ? hrtf->num_iterations_diffuse[0] : hrtf->num_iterations_diffuse[1] );
}
/* Word16 *pOut_to_bin_fx[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/
fprintf( fp, "\nextern const Word16 %s_%s_coeff_Q_%2dkHz_fx;", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
fprintf( fp, "\nextern const Word16 %s_%s_coeff_re_%2dkHz_fx[%s][BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations );
fprintf( fp, "\nextern const Word16 %s_%s_coeff_im_%2dkHz_fx[%s][BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations );
/* float *pOut_to_bin_diffuse_re_fx[BINAURAL_CHANNELS];*/
if ( hrtf->pOut_to_bin_diffuse_re_dyn[0] == NULL )
{
fprintf( fp, "\nextern Word16 *%s_%s_coeff_diffuse_re_%2dkHz_fx[BINAURAL_CHANNELS];", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
}
else
{
fprintf( fp, "\nextern Word16 %s_%s_coeff_diffuse_re_%2dkHz_fx[BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse );
}
/* float *pOut_to_bin_diffuse_im_fx[BINAURAL_CHANNELS];*/
if ( hrtf->pOut_to_bin_diffuse_im_dyn[0] == NULL )
{
fprintf( fp, "\nextern Word16 *%s_%s_coeff_diffuse_im_%2dkHz_fx[BINAURAL_CHANNELS];", DECLARATION_NAME, lscfg.name, samplerate / 1000 );
}
else
{
fprintf( fp, "\nextern Word16 %s_%s_coeff_diffuse_im_%2dkHz_fx[BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse );
}
if ( fp )
fclose( fp );
if ( pTotalNumFreqSampPerIterations[0] )
{
free( pTotalNumFreqSampPerIterations[0] );
}
if ( pTotalNumFreqSampPerIterations[1] )
{
free( pTotalNumFreqSampPerIterations[1] );
}
return;
}
/*---------------------------------------------------------------------* /*---------------------------------------------------------------------*
* get_tables_dimensions(); * get_tables_dimensions();
...@@ -3342,7 +4250,7 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, ...@@ -3342,7 +4250,7 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg,
} }
/*---------------------------------------------------------------------* /*---------------------------------------------------------------------*
* make_fx_be(); * make_reverb_fx_be();
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
ivas_error make_reverb_fx_be( float *pEner_l, float *pEner_r, float *pCoherence, const int32_t samplerate, int16_t *factorQ ) ivas_error make_reverb_fx_be( float *pEner_l, float *pEner_r, float *pCoherence, const int32_t samplerate, int16_t *factorQ )
{ {
......
...@@ -118,6 +118,7 @@ end ...@@ -118,6 +118,7 @@ end
dataSpec.hrfInDir = hrir_file; dataSpec.hrfInDir = hrir_file;
dataSpec.hrfOutDir = binary_path; dataSpec.hrfOutDir = binary_path;
dataSpec.genRomFile = writeRomFileOutput; dataSpec.genRomFile = writeRomFileOutput;
dataSpec.genRomFileFx = writeRomFileFx;
dataSpec.genBinaryFile = writeBinaryOutput; dataSpec.genBinaryFile = writeBinaryOutput;
dataSpec.makeFxFltBE = true; dataSpec.makeFxFltBE = true;
dataSpec.romOutDir = rom_path; dataSpec.romOutDir = rom_path;
......
...@@ -64,6 +64,17 @@ static void printBuf_uint16( const uint16_t *buf, uint16_t size1 ) ...@@ -64,6 +64,17 @@ static void printBuf_uint16( const uint16_t *buf, uint16_t size1 )
return; return;
} }
static void printBuf_int16( const int16_t *buf, uint16_t size1 )
{
uint16_t ii;
for ( ii = 0; ii < size1; ++ii )
{
printf( "%d ", (int32_t) buf[ii] );
}
return;
}
/* /*
static void printBuf_int16( int16_t *buf, uint16_t size1 ) static void printBuf_int16( int16_t *buf, uint16_t size1 )
{ {
......
...@@ -781,6 +781,10 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ...@@ -781,6 +781,10 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1
../IVAS_cod -sba 3 128000 32 testv/stv3OA32c.wav bit ../IVAS_cod -sba 3 128000 32 testv/stv3OA32c.wav bit
../IVAS_dec -t testv/headrot.csv -exof testv/headrot_case00_3000_q_combinedRotationTest.csv -otr avg BINAURAL_ROOM_IR 32 bit testv/stv3OA32c.pcm_SBA_128000_32-32_Binaural_room_Headrot_EXOF_OtrAvg.tst ../IVAS_dec -t testv/headrot.csv -exof testv/headrot_case00_3000_q_combinedRotationTest.csv -otr avg BINAURAL_ROOM_IR 32 bit testv/stv3OA32c.pcm_SBA_128000_32-32_Binaural_room_Headrot_EXOF_OtrAvg.tst
// SBA at 128 kbps, 48kHz in, 48kHz out, HOA3 out, mono detector test
../IVAS_cod -sba 3 128000 48 testv/stv3OA48c_mono.wav bit
../IVAS_dec HOA3 48 bit testv/stv3OA48c_mono.pcm_SBA_128000_48-48_HOA3.tst
// SBA at 192 kbps, 48kHz in, 48kHz out, HOA2 out, random FER at 5% // SBA at 192 kbps, 48kHz in, 48kHz out, HOA2 out, random FER at 5%
../IVAS_cod -sba 3 192000 48 testv/stv3OA48c.wav bit ../IVAS_cod -sba 3 192000 48 testv/stv3OA48c.wav bit
eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g192 bit_error eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g192 bit_error
...@@ -1582,143 +1586,143 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ...@@ -1582,143 +1586,143 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1
// stereo at 32 kbps, 48 kHz in, 32 kHz out, DTX on, JBM Prof 0 // stereo at 32 kbps, 48 kHz in, 32 kHz out, DTX on, JBM Prof 0
../IVAS_cod -stereo -dtx 32000 48 testv/stvST48n.wav bit ../IVAS_cod -stereo -dtx 32000 48 testv/stvST48n.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP STEREO 32 netsimoutput testv/stvST48n.wav_stereo_32000_48-32_DTX_JBM0.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP STEREO 32 netsimoutput testv/stvST48n.wav_stereo_32000_48-32_DTX_JBM0.tst
// 4 ISm with metadata at 64 kbps, 48 kHz in, 48 kHz out, DTX on, EXT out, JBM Prof 0 // 4 ISm with metadata at 64 kbps, 48 kHz in, 48 kHz out, DTX on, EXT out, JBM Prof 0
../IVAS_cod -dtx -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 64000 48 testv/stv4ISM48n.wav bit ../IVAS_cod -dtx -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 64000 48 testv/stv4ISM48n.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/stv4ISM48s.wav_64000_48-48_DTX_EXT_JBM0.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/stv4ISM48s.wav_64000_48-48_DTX_EXT_JBM0.tst
// MASA 1dir 1TC at 13.2 kbps, 48kHz in, 32kHz out, DTX on, EXT out, JBM Prof 0 // MASA 1dir 1TC at 13.2 kbps, 48kHz in, 32kHz out, DTX on, EXT out, JBM Prof 0
../IVAS_cod -dtx -masa 1 testv/stv1MASA1TC48n.met 13200 48 testv/stv1MASA1TC48n.wav bit ../IVAS_cod -dtx -masa 1 testv/stv1MASA1TC48n.met 13200 48 testv/stv1MASA1TC48n.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP EXT 32 netsimoutput testv/stv1MASA1TC48n.wav_13200_48-32_DTX_EXT_JBM0.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP EXT 32 netsimoutput testv/stv1MASA1TC48n.wav_13200_48-32_DTX_EXT_JBM0.tst
// SBA at 24.4 kbps, 32kHz in, 32kHz out, DTX on, BINAURAL out, JBM 0 // SBA at 24.4 kbps, 32kHz in, 32kHz out, DTX on, BINAURAL out, JBM 0
../IVAS_cod -sba 3 -dtx 24400 32 testv/stv3OA32c.wav bit ../IVAS_cod -sba 3 -dtx 24400 32 testv/stv3OA32c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 32 netsimoutput testv/stv3OA32c.wav_SBA_24400_32-32_DTX_Binaural_JBM0.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 32 netsimoutput testv/stv3OA32c.wav_SBA_24400_32-32_DTX_Binaural_JBM0.tst
// stereo at 48 kbps, 16 kHz in, 16 kHz out, DTX on, JBM Prof 5 // stereo at 48 kbps, 16 kHz in, 16 kHz out, DTX on, JBM Prof 5
../IVAS_cod -stereo -dtx 48000 16 testv/stvST16n.wav bit ../IVAS_cod -stereo -dtx 48000 16 testv/stvST16n.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP STEREO 16 netsimoutput testv/stvST16n.wav_stereo_48000_16-16_DTX_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP STEREO 16 netsimoutput testv/stvST16n.wav_stereo_48000_16-16_DTX_JBM5.tst
// 4 ISm with metadata at 32 kbps, 48 kHz in, 48 kHz out, FOA out, JBM Prof 5 // 4 ISm with metadata at 32 kbps, 48 kHz in, 48 kHz out, FOA out, JBM Prof 5
../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 32000 48 testv/stv4ISM48s.wav bit ../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 32000 48 testv/stv4ISM48s.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stv4ISM48s.wav_32000_48-48_FOA_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stv4ISM48s.wav_32000_48-48_FOA_JBM5.tst
// 3 ISM with metadata bitrate switching from 48 kbps to 32 kbps, 48 kHz in, 32 kHz out, DTX, BINAURAL_ROOM_IR out, JBM Prof 5 // 3 ISM with metadata bitrate switching from 48 kbps to 32 kbps, 48 kHz in, 32 kHz out, DTX, BINAURAL_ROOM_IR out, JBM Prof 5
../IVAS_cod -dtx -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv ../scripts/switchPaths/sw_48-32k_10fr.bin 48 testv/stv3ISM48s.wav bit ../IVAS_cod -dtx -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv ../scripts/switchPaths/sw_48-32k_10fr.bin 48 testv/stv3ISM48s.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_IR 32 netsimoutput testv/stv3ISM48s.wav_sw_48-32_DTX_BINAURAL_ROOM_IR_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_IR 32 netsimoutput testv/stv3ISM48s.wav_sw_48-32_DTX_BINAURAL_ROOM_IR_JBM5.tst
// SBA at 80 kbps, 32kHz in, 32kHz out, HOA3 out, JBM Prof 5 // SBA at 80 kbps, 32kHz in, 32kHz out, HOA3 out, JBM Prof 5
../IVAS_cod -sba 3 80000 32 testv/stv3OA32c.wav bit ../IVAS_cod -sba 3 80000 32 testv/stv3OA32c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP HOA3 32 netsimoutput testv/stv3OA32c.wav_SBA_80000_32-32_HOA3_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP HOA3 32 netsimoutput testv/stv3OA32c.wav_SBA_80000_32-32_HOA3_JBM5.tst
// SBA at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out, JBM Prof 5 // SBA at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out, JBM Prof 5
../IVAS_cod -sba 1 13200 48 testv/stvFOA48c.wav bit ../IVAS_cod -sba 1 13200 48 testv/stvFOA48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stvFOA32c.wav_SBA_13200_48-48_BINAURAL_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stvFOA32c.wav_SBA_13200_48-48_BINAURAL_JBM5.tst
// Multi-channel 5_1 at 384 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5 // Multi-channel 5_1 at 384 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5
../IVAS_cod -mc 5_1 384000 48 testv/stv51MC48c.wav bit ../IVAS_cod -mc 5_1 384000 48 testv/stv51MC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 7_1_4 48 netsimoutput testv/stv51MC48c.wav_MC51_384000_48-48_7_1_4_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 7_1_4 48 netsimoutput testv/stv51MC48c.wav_MC51_384000_48-48_7_1_4_JBM5.tst
// Multi-channel 7_1_4 at 256 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5 // Multi-channel 7_1_4 at 256 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5
../IVAS_cod -mc 7_1_4 256000 48 testv/stv714MC48c.wav bit ../IVAS_cod -mc 7_1_4 256000 48 testv/stv714MC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 7_1_4 48 netsimoutput testv/stv714MC48c.wav_MC714_256000_48-48_7_1_4_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 7_1_4 48 netsimoutput testv/stv714MC48c.wav_MC714_256000_48-48_7_1_4_JBM5.tst
// Multi-channel 7_1 bitrate switching, 48kHz in, 32kHz out, BINAURAL_ROOM_REVERB out, HR, JBM Prof 5 // Multi-channel 7_1 bitrate switching, 48kHz in, 32kHz out, BINAURAL_ROOM_REVERB out, HR, JBM Prof 5
../IVAS_cod -mc 7_1 ../scripts/switchPaths/sw_24k4_384k.bin 48 testv/stv71MC48c.wav bit ../IVAS_cod -mc 7_1 ../scripts/switchPaths/sw_24k4_384k.bin 48 testv/stv71MC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -T testv/headrot.csv -Tracefile tracefile_dec -VOIP binaural_room_reverb 32 netsimoutput testv/stv71MC48c.wav_MC71_brsw_48-32_BinauralRoomReverb_Headrot_JBM5.tst ../IVAS_dec -T testv/headrot.csv -no_delay_cmp -Tracefile tracefile_dec -VOIP binaural_room_reverb 32 netsimoutput testv/stv71MC48c.wav_MC71_brsw_48-32_BinauralRoomReverb_Headrot_JBM5.tst
// Multi-channel 7_1_4 bitrate switching, 48kHz in, 48kHz out, BINAURAL out, HR, JBM Prof 5 // Multi-channel 7_1_4 bitrate switching, 48kHz in, 48kHz out, BINAURAL out, HR, JBM Prof 5
../IVAS_cod -mc 7_1_4 ../scripts/switchPaths/sw_24k4_384k.bin 48 testv/stv714MC48c.wav bit ../IVAS_cod -mc 7_1_4 ../scripts/switchPaths/sw_24k4_384k.bin 48 testv/stv714MC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -T testv/headrot.csv -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stv714MC48c.wav_MC714_brsw_48-48_BINAURAL_Headrot_JBM5.tst ../IVAS_dec -T testv/headrot.csv -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stv714MC48c.wav_MC714_brsw_48-48_BINAURAL_Headrot_JBM5.tst
// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 32kHz out, 5_1 out, JBM Prof 5 // MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 32kHz out, 5_1 out, JBM Prof 5
../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit ../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 5_1 32 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-32_5_1_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 5_1 32 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-32_5_1_JBM5.tst
// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, STEREO out, JBM Prof 5 // MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, STEREO out, JBM Prof 5
../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit ../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP STEREO 48 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-48_STEREO_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP STEREO 48 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-48_STEREO_JBM5.tst
// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, FOA out, JBM Prof 5 // MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, FOA out, JBM Prof 5
../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit ../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-48_FOA_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-48_FOA_JBM5.tst
// MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out, JBM Prof 5 // MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out, JBM Prof 5
../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit ../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 16 netsimoutput testv/stv1MASA2TC48n.wav_sw_48-16_BINAURAL_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 16 netsimoutput testv/stv1MASA2TC48n.wav_sw_48-16_BINAURAL_JBM5.tst
// MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 32kHz out, MONO out, JBM Prof 5 // MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 32kHz out, MONO out, JBM Prof 5
../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit ../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP MONO 32 netsimoutput testv/stv1MASA2TC48n.wav_sw_48-32_MONO_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP MONO 32 netsimoutput testv/stv1MASA2TC48n.wav_sw_48-32_MONO_JBM5.tst
// MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, EXT out, JBM Prof 5 // MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, EXT out, JBM Prof 5
../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit ../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/stv2MASA2TC48c.wav_sw_48-48_EXT_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/stv2MASA2TC48c.wav_sw_48-48_EXT_JBM5.tst
// MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out, JBM Prof 5 // MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out, JBM Prof 5
../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit ../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 16 netsimoutput testv/stv2MASA2TC48c.wav_sw_48-16_BINAURAL_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 16 netsimoutput testv/stv2MASA2TC48c.wav_sw_48-16_BINAURAL_JBM5.tst
// OMASA 2Dir2TC 1ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_IR out, JBM Prof 5 // OMASA 2Dir2TC 1ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_IR out, JBM Prof 5
../IVAS_cod -ism_masa 1 2 testv/stvISM1.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_1ism.bin 48 testv/stvOMASA_1ISM_2MASA2TC48c.wav bit ../IVAS_cod -ism_masa 1 2 testv/stvISM1.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_1ism.bin 48 testv/stvOMASA_1ISM_2MASA2TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_IR 48 netsimoutput testv/stvOMASA_1ISM_2MASA2TC48c.wav_BINAURAL_ROOM_IR_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_IR 48 netsimoutput testv/stvOMASA_1ISM_2MASA2TC48c.wav_BINAURAL_ROOM_IR_sw_48-48_JBM5.tst
// OMASA 2Dir2TC 2ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, 7.1 out, JBM Prof 5 // OMASA 2Dir2TC 2ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, 7.1 out, JBM Prof 5
../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv NULL testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit ../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv NULL testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 7_1 48 netsimoutput testv/stvOMASA_2ISM_2MASA2TC48c.wav_7_1_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 7_1 48 netsimoutput testv/stvOMASA_2ISM_2MASA2TC48c.wav_7_1_sw_48-48_JBM5.tst
// OMASA 2Dir2TC 3ISM at br sw techs 13.2 to 512 kbps start 160 kbps, 48kHz in, 48kHz out, MONO out, JBM Prof 5 // OMASA 2Dir2TC 3ISM at br sw techs 13.2 to 512 kbps start 160 kbps, 48kHz in, 48kHz out, MONO out, JBM Prof 5
../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_160k_omasatechs_3ism.bin 48 testv/stvOMASA_3ISM_2MASA2TC48c.wav bit ../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_160k_omasatechs_3ism.bin 48 testv/stvOMASA_3ISM_2MASA2TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP MONO 48 netsimoutput testv/stvOMASA_3ISM_2MASA2TC48c.wav_MONO_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP MONO 48 netsimoutput testv/stvOMASA_3ISM_2MASA2TC48c.wav_MONO_sw_48-48_JBM5.tst
// OMASA 2Dir1TC 3ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 32kHz out, STEREO out, JBM Prof 5 // OMASA 2Dir1TC 3ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 32kHz out, STEREO out, JBM Prof 5
../IVAS_cod -ism_masa 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA1TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_3ism.bin 48 testv/stvOMASA_3ISM_2MASA1TC48c.wav bit ../IVAS_cod -ism_masa 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA1TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_3ism.bin 48 testv/stvOMASA_3ISM_2MASA1TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP STEREO 32 netsimoutput testv/stvOMASA_3ISM_2MASA1TC48c.wav_STEREO_sw_48-32_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP STEREO 32 netsimoutput testv/stvOMASA_3ISM_2MASA1TC48c.wav_STEREO_sw_48-32_JBM5.tst
// OMASA 1Dir2TC 3ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 32kHz in, 48kHz out, 5.1.2 out, JBM Prof 5 // OMASA 1Dir2TC 3ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 32kHz in, 48kHz out, 5.1.2 out, JBM Prof 5
../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv1MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_3ism.bin 32 testv/stvOMASA_3ISM_1MASA2TC32c.wav bit ../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv1MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_3ism.bin 32 testv/stvOMASA_3ISM_1MASA2TC32c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 5_1_2 48 netsimoutput testv/stvOMASA_3ISM_1MASA2TC32c.wav_5_1_2_sw_32-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 5_1_2 48 netsimoutput testv/stvOMASA_3ISM_1MASA2TC32c.wav_5_1_2_sw_32-48_JBM5.tst
// OMASA 1Dir1TC 4ISM at br sw techs 13.2 to 512 kbps start 32 kbps, 48kHz in, 48kHz out, BINAURAL out, JBM Prof 5 // OMASA 1Dir1TC 4ISM at br sw techs 13.2 to 512 kbps start 32 kbps, 48kHz in, 48kHz out, BINAURAL out, JBM Prof 5
../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA1TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_32k_omasatechs_4ism.bin 48 testv/stvOMASA_4ISM_1MASA1TC48c.wav bit ../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA1TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_32k_omasatechs_4ism.bin 48 testv/stvOMASA_4ISM_1MASA1TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stvOMASA_4ISM_1MASA1TC48c.wav_BINAURAL_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stvOMASA_4ISM_1MASA1TC48c.wav_BINAURAL_sw_48-48_JBM5.tst
// OMASA 1Dir2TC 4ISM at br sw techs 13.2 to 512 kbps start 80 kbps, 48kHz in, 48kHz out, FOA out, JBM Prof 5 // OMASA 1Dir2TC 4ISM at br sw techs 13.2 to 512 kbps start 80 kbps, 48kHz in, 48kHz out, FOA out, JBM Prof 5
../IVAS_cod -ism_masa 4 2 NULL testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_80k_omasatechs_4ism.bin 48 testv/stvOMASA_4ISM_1MASA2TC48c.wav bit ../IVAS_cod -ism_masa 4 2 NULL testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_80k_omasatechs_4ism.bin 48 testv/stvOMASA_4ISM_1MASA2TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stvOMASA_4ISM_1MASA2TC48c.wav_FOA_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stvOMASA_4ISM_1MASA2TC48c.wav_FOA_sw_48-48_JBM5.tst
// OMASA 2Dir2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, EXT out, JBM Prof 5 // OMASA 2Dir2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, EXT out, JBM Prof 5
../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv NULL testv/stvISM4.csv testv/stv2MASA2TC48c.met 256000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit ../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv NULL testv/stvISM4.csv testv/stv2MASA2TC48c.met 256000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/stvOMASA_4ISM_2MASA2TC48c.wav_EXT_256000_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/stvOMASA_4ISM_2MASA2TC48c.wav_EXT_256000_48-48_JBM5.tst
// OMASA 1Dir1TC 4ISM 48 kbps 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out custom configuration // OMASA 1Dir1TC 4ISM 48 kbps 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out custom configuration
../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA1TC48c.met 48000 48 testv/stvOMASA_4ISM_1MASA1TC48c.wav bit ../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA1TC48c.met 48000 48 testv/stvOMASA_4ISM_1MASA1TC48c.wav bit
...@@ -1993,7 +1997,7 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_10pct.g ...@@ -1993,7 +1997,7 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_10pct.g
// OSBA 2OA 2ISM bitrate switching, 32kHz in, 48kHz out, BINAURAL_ROOM_REVERB out, JBM Prof 5 // OSBA 2OA 2ISM bitrate switching, 32kHz in, 48kHz out, BINAURAL_ROOM_REVERB out, JBM Prof 5
../IVAS_cod -ism_sba 2 2 testv/stvISM1.csv testv/stvISM2.csv ../scripts/switchPaths/sw_24k4_256k.bin 32 testv/stvOSBA_2ISM_2OA32c.wav bit ../IVAS_cod -ism_sba 2 2 testv/stvISM1.csv testv/stvISM2.csv ../scripts/switchPaths/sw_24k4_256k.bin 32 testv/stvOSBA_2ISM_2OA32c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_REVERB 48 netsimoutput testv/stvOSBA_2ISM_2OA32c.wav_BINAURAL_brsw_32-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_REVERB 48 netsimoutput testv/stvOSBA_2ISM_2OA32c.wav_BINAURAL_brsw_32-48_JBM5.tst
// OMASA 2Dir2TC 4ISM at 80 kbps, 48kHz in, 48kHz out, BINAURAL out, default object editing, 1SEP-PARAM // OMASA 2Dir2TC 4ISM at 80 kbps, 48kHz in, 48kHz out, BINAURAL out, default object editing, 1SEP-PARAM
...@@ -2003,12 +2007,12 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit ...@@ -2003,12 +2007,12 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit
// OMASA 2Dir2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing, JBM Prof 5, DISC // OMASA 2Dir2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing, JBM Prof 5, DISC
../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv2MASA2TC48c.met 256000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit ../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv2MASA2TC48c.met 256000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stvOMASA_4ISM_2MASA2TC48c.wav_BINAURAL_256000_48-48_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stvOMASA_4ISM_2MASA2TC48c.wav_BINAURAL_256000_48-48_OE_JBM5.tst
// OMASA 2Dir2TC 2ISM at 96 kbps, 48kHz in, 48kHz out, FOA out, object editing, JBM Prof 5, DISC // OMASA 2Dir2TC 2ISM at 96 kbps, 48kHz in, 48kHz out, FOA out, object editing, JBM Prof 5, DISC
../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv testv/stvISM2.csv testv/stv2MASA2TC48c.met 96000 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit ../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv testv/stvISM2.csv testv/stv2MASA2TC48c.met 96000 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stvOMASA_2ISM_2MASA2TC48c.wav_FOA_96000_48-48_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stvOMASA_2ISM_2MASA2TC48c.wav_FOA_96000_48-48_OE_JBM5.tst
// OMASA 2Dir2TC 2ISM br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing // OMASA 2Dir2TC 2ISM br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing
../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv testv/stvISM2.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit ../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv testv/stvISM2.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit
...@@ -2021,7 +2025,7 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit ...@@ -2021,7 +2025,7 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit
// OSBA 2OA 3ISM at 128 kbps, 48kHz in, 48kHz out, FOA out, object editing, JBM Prof 5, DISC // OSBA 2OA 3ISM at 128 kbps, 48kHz in, 48kHz out, FOA out, object editing, JBM Prof 5, DISC
../IVAS_cod -ism_sba 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stvOSBA_3ISM_2OA48c.wav bit ../IVAS_cod -ism_sba 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stvOSBA_3ISM_2OA48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stvOSBA_3ISM_2OA48c.wav_FOA_128000_48-48_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stvOSBA_3ISM_2OA48c.wav_FOA_128000_48-48_OE_JBM5.tst
// OSBA 2OA 3ISM at bitrate switching 13.2 to 512 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing // OSBA 2OA 3ISM at bitrate switching 13.2 to 512 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing
../IVAS_cod -ism_sba 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stvOSBA_3ISM_2OA48c.wav bit ../IVAS_cod -ism_sba 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stvOSBA_3ISM_2OA48c.wav bit
...@@ -2039,12 +2043,12 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ...@@ -2039,12 +2043,12 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1
// 3 ISM with metadata at 24.4 kbps, 48 kHz in, 48 kHz out, FOA out, object editing, JBM Prof 5, PARAM_ISM // 3 ISM with metadata at 24.4 kbps, 48 kHz in, 48 kHz out, FOA out, object editing, JBM Prof 5, PARAM_ISM
../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 24400 48 testv/stv3ISM48s.wav bit ../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 24400 48 testv/stv3ISM48s.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stv3ISM48s.wav_24400_48-48_FOA_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stv3ISM48s.wav_24400_48-48_FOA_OE_JBM5.tst
// 3 ISM with metadata at 384 kbps, 48 kHz in, 48 kHz out, FOA out, object editing, JBM Prof 5, DISC // 3 ISM with metadata at 384 kbps, 48 kHz in, 48 kHz out, FOA out, object editing, JBM Prof 5, DISC
../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 384000 48 testv/stv3ISM48s.wav bit ../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 384000 48 testv/stv3ISM48s.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit NULL -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stv3ISM48s.wav_384000_48-48_FOA_OE_JBM5.tst ../IVAS_dec -obj_edit NULL -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/stv3ISM48s.wav_384000_48-48_FOA_OE_JBM5.tst
// 4 ISM with metadata bitrate switching from 32 kbps to 48 kbps, 48 kHz in, 48 kHz out, BINAURAL_ROOM_IR out, object editing // 4 ISM with metadata bitrate switching from 32 kbps to 48 kbps, 48 kHz in, 48 kHz out, BINAURAL_ROOM_IR out, object editing
../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_32-48k_10fr.bin 48 testv/stv4ISM48s.wav bit ../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_32-48k_10fr.bin 48 testv/stv4ISM48s.wav bit
...@@ -2053,4 +2057,4 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit ...@@ -2053,4 +2057,4 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit
// 4 ISM with metadata bitrate switching from 48 kbps to 32 kbps, 48 kHz in, 48 kHz out, BINAURAL out, object editing, JBM Prof 5 // 4 ISM with metadata bitrate switching from 48 kbps to 32 kbps, 48 kHz in, 48 kHz out, BINAURAL out, object editing, JBM Prof 5
../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_48-32k_10fr.bin 48 testv/stv4ISM48s.wav bit ../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_48-32k_10fr.bin 48 testv/stv4ISM48s.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stv4ISM48s.wav_sw_48-48_BINAURAL_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stv4ISM48s.wav_sw_48-48_BINAURAL_OE_JBM5.tst
...@@ -250,14 +250,14 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ...@@ -250,14 +250,14 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1
// Codec A at 13.20 kbps, 32kHz in, 32kHz out, DTX, JBM Prof 5 // Codec A at 13.20 kbps, 32kHz in, 32kHz out, DTX, JBM Prof 5
../IVAS_cod -dtx 13200 32 testv/stv32c.wav bit ../IVAS_cod -dtx 13200 32 testv/stv32c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_13k20_32-32_DTX_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_13k20_32-32_DTX_JBM5.tst
// Codec B at 16.40 kbps, 32kHz in, 32kHz out, DTX, JBM Prof 5 // Codec B at 16.40 kbps, 32kHz in, 32kHz out, DTX, JBM Prof 5
../IVAS_cod -dtx 16400 32 testv/stv32c.wav bit ../IVAS_cod -dtx 16400 32 testv/stv32c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_16k40_32-32_DTX_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_16k40_32-32_DTX_JBM5.tst
// Codec B at 13.20 kbps, 32kHz in, 32kHz out, JBM Prof 9, Channel aware // Codec B at 13.20 kbps, 32kHz in, 32kHz out, JBM Prof 9, Channel aware
../IVAS_cod -rf 13200 32 testv/stv32c.wav bit ../IVAS_cod -rf 13200 32 testv/stv32c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_13k20_CA_32-32_JBM9.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_13k20_CA_32-32_JBM9.tst
...@@ -1582,143 +1582,143 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ...@@ -1582,143 +1582,143 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1
// stereo at 32 kbps, 48 kHz in, 32 kHz out, DTX on, JBM Prof 0 // stereo at 32 kbps, 48 kHz in, 32 kHz out, DTX on, JBM Prof 0
../IVAS_cod -stereo -dtx 32000 48 testv/ltv48_STEREO.wav bit ../IVAS_cod -stereo -dtx 32000 48 testv/ltv48_STEREO.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP STEREO 32 netsimoutput testv/ltv48_STEREO.wav_stereo_32000_48-32_DTX_JBM0.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP STEREO 32 netsimoutput testv/ltv48_STEREO.wav_stereo_32000_48-32_DTX_JBM0.tst
// 4 ISm with metadata at 64 kbps, 48 kHz in, 48 kHz out, DTX on, EXT out, JBM Prof 0 // 4 ISm with metadata at 64 kbps, 48 kHz in, 48 kHz out, DTX on, EXT out, JBM Prof 0
../IVAS_cod -dtx -ism 4 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv testv/ltvISM4.csv 64000 48 testv/ltv48_4ISM.wav bit ../IVAS_cod -dtx -ism 4 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv testv/ltvISM4.csv 64000 48 testv/ltv48_4ISM.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/ltv48_4ISM.wav_64000_48-48_DTX_EXT_JBM0.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/ltv48_4ISM.wav_64000_48-48_DTX_EXT_JBM0.tst
// MASA 1dir 1TC at 13.2 kbps, 48kHz in, 32kHz out, DTX on, EXT out, JBM Prof 0 // MASA 1dir 1TC at 13.2 kbps, 48kHz in, 32kHz out, DTX on, EXT out, JBM Prof 0
../IVAS_cod -dtx -masa 1 testv/ltv48_MASA1TC.met 13200 48 testv/ltv48_MASA1TC.wav bit ../IVAS_cod -dtx -masa 1 testv/ltv48_MASA1TC.met 13200 48 testv/ltv48_MASA1TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP EXT 32 netsimoutput testv/ltv48_MASA1TC.wav_13200_48-32_DTX_EXT_JBM0.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP EXT 32 netsimoutput testv/ltv48_MASA1TC.wav_13200_48-32_DTX_EXT_JBM0.tst
// SBA at 24.4 kbps, 32kHz in, 32kHz out, DTX on, BINAURAL out, JBM 0 // SBA at 24.4 kbps, 32kHz in, 32kHz out, DTX on, BINAURAL out, JBM 0
../IVAS_cod -sba 3 -dtx 24400 32 testv/ltv32_HOA3.wav bit ../IVAS_cod -sba 3 -dtx 24400 32 testv/ltv32_HOA3.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_0.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 32 netsimoutput testv/ltv32_HOA3.wav_SBA_24400_32-32_DTX_Binaural_JBM0.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 32 netsimoutput testv/ltv32_HOA3.wav_SBA_24400_32-32_DTX_Binaural_JBM0.tst
// stereo at 48 kbps, 16 kHz in, 16 kHz out, DTX on, JBM Prof 5 // stereo at 48 kbps, 16 kHz in, 16 kHz out, DTX on, JBM Prof 5
../IVAS_cod -stereo -dtx 48000 16 testv/ltv16_STEREO.wav bit ../IVAS_cod -stereo -dtx 48000 16 testv/ltv16_STEREO.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP STEREO 16 netsimoutput testv/ltv16_STEREO.wav_stereo_48000_16-16_DTX_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP STEREO 16 netsimoutput testv/ltv16_STEREO.wav_stereo_48000_16-16_DTX_JBM5.tst
// 4 ISm with metadata at 32 kbps, 48 kHz in, 48 kHz out, FOA out, JBM Prof 5 // 4 ISm with metadata at 32 kbps, 48 kHz in, 48 kHz out, FOA out, JBM Prof 5
../IVAS_cod -ism 4 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv testv/ltvISM4.csv 32000 48 testv/ltv48_4ISM.wav bit ../IVAS_cod -ism 4 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv testv/ltvISM4.csv 32000 48 testv/ltv48_4ISM.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_4ISM.wav_32000_48-48_FOA_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_4ISM.wav_32000_48-48_FOA_JBM5.tst
// 3 ISM with metadata bitrate switching from 48 kbps to 32 kbps, 48 kHz in, 32 kHz out, DTX, BINAURAL_ROOM_IR out, JBM Prof 5 // 3 ISM with metadata bitrate switching from 48 kbps to 32 kbps, 48 kHz in, 32 kHz out, DTX, BINAURAL_ROOM_IR out, JBM Prof 5
../IVAS_cod -dtx -ism 3 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv ../scripts/switchPaths/sw_48-32k_10fr.bin 48 testv/ltv48_3ISM.wav bit ../IVAS_cod -dtx -ism 3 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv ../scripts/switchPaths/sw_48-32k_10fr.bin 48 testv/ltv48_3ISM.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_IR 32 netsimoutput testv/ltv48_3ISM.wav_sw_48-32_DTX_BINAURAL_ROOM_IR_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_IR 32 netsimoutput testv/ltv48_3ISM.wav_sw_48-32_DTX_BINAURAL_ROOM_IR_JBM5.tst
// SBA at 80 kbps, 32kHz in, 32kHz out, HOA3 out, JBM Prof 5 // SBA at 80 kbps, 32kHz in, 32kHz out, HOA3 out, JBM Prof 5
../IVAS_cod -sba 3 80000 32 testv/ltv32_HOA3.wav bit ../IVAS_cod -sba 3 80000 32 testv/ltv32_HOA3.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP HOA3 32 netsimoutput testv/ltv32_HOA3.wav_SBA_80000_32-32_HOA3_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP HOA3 32 netsimoutput testv/ltv32_HOA3.wav_SBA_80000_32-32_HOA3_JBM5.tst
// SBA at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out, JBM Prof 5 // SBA at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out, JBM Prof 5
../IVAS_cod -sba 1 13200 48 testv/ltv48_FOA.wav bit ../IVAS_cod -sba 1 13200 48 testv/ltv48_FOA.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_FOA.wav_SBA_13200_48-48_BINAURAL_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_FOA.wav_SBA_13200_48-48_BINAURAL_JBM5.tst
// Multi-channel 5_1 at 384 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5 // Multi-channel 5_1 at 384 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5
../IVAS_cod -mc 5_1 384000 48 testv/ltv48_MC51.wav bit ../IVAS_cod -mc 5_1 384000 48 testv/ltv48_MC51.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 7_1_4 48 netsimoutput testv/ltv48_MC51.wav_MC51_384000_48-48_7_1_4_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 7_1_4 48 netsimoutput testv/ltv48_MC51.wav_MC51_384000_48-48_7_1_4_JBM5.tst
// Multi-channel 7_1_4 at 256 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5 // Multi-channel 7_1_4 at 256 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5
../IVAS_cod -mc 7_1_4 256000 48 testv/ltv48_MC714.wav bit ../IVAS_cod -mc 7_1_4 256000 48 testv/ltv48_MC714.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 7_1_4 48 netsimoutput testv/ltv48_MC714.wav_MC714_256000_48-48_7_1_4_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 7_1_4 48 netsimoutput testv/ltv48_MC714.wav_MC714_256000_48-48_7_1_4_JBM5.tst
// Multi-channel 7_1 bitrate switching, 48kHz in, 32kHz out, BINAURAL_ROOM_REVERB out, HR, JBM Prof 5 // Multi-channel 7_1 bitrate switching, 48kHz in, 32kHz out, BINAURAL_ROOM_REVERB out, HR, JBM Prof 5
../IVAS_cod -mc 7_1 ../scripts/switchPaths/sw_24k4_384k.bin 48 testv/ltv48_MC71.wav bit ../IVAS_cod -mc 7_1 ../scripts/switchPaths/sw_24k4_384k.bin 48 testv/ltv48_MC71.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -T testv/headrot.csv -Tracefile tracefile_dec -VOIP binaural_room_reverb 32 netsimoutput testv/ltv48_MC71.wav_MC71_brsw_48-32_BinauralRoomReverb_Headrot_JBM5.tst ../IVAS_dec -T testv/headrot.csv -no_delay_cmp -Tracefile tracefile_dec -VOIP binaural_room_reverb 32 netsimoutput testv/ltv48_MC71.wav_MC71_brsw_48-32_BinauralRoomReverb_Headrot_JBM5.tst
// Multi-channel 7_1_4 bitrate switching, 48kHz in, 48kHz out, BINAURAL out, HR, JBM Prof 5 // Multi-channel 7_1_4 bitrate switching, 48kHz in, 48kHz out, BINAURAL out, HR, JBM Prof 5
../IVAS_cod -mc 7_1_4 ../scripts/switchPaths/sw_24k4_384k.bin 48 testv/ltv48_MC714.wav bit ../IVAS_cod -mc 7_1_4 ../scripts/switchPaths/sw_24k4_384k.bin 48 testv/ltv48_MC714.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -T testv/headrot.csv -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_MC714.wav_MC714_brsw_48-48_BINAURAL_Headrot_JBM5.tst ../IVAS_dec -T testv/headrot.csv -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_MC714.wav_MC714_brsw_48-48_BINAURAL_Headrot_JBM5.tst
// MASA 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 32kHz out, 5_1 out, JBM Prof 5 // MASA 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 32kHz out, 5_1 out, JBM Prof 5
../IVAS_cod -masa 1 testv/ltv48_MASA1TC.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/ltv48_MASA1TC.wav bit ../IVAS_cod -masa 1 testv/ltv48_MASA1TC.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/ltv48_MASA1TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 5_1 32 netsimoutput testv/ltv48_MASA1TC.wav_sw_48-32_5_1_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 5_1 32 netsimoutput testv/ltv48_MASA1TC.wav_sw_48-32_5_1_JBM5.tst
// MASA 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, STEREO out, JBM Prof 5 // MASA 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, STEREO out, JBM Prof 5
../IVAS_cod -masa 1 testv/ltv48_MASA1TC.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/ltv48_MASA1TC.wav bit ../IVAS_cod -masa 1 testv/ltv48_MASA1TC.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/ltv48_MASA1TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP STEREO 48 netsimoutput testv/ltv48_MASA1TC.wav_sw_48-48_STEREO_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP STEREO 48 netsimoutput testv/ltv48_MASA1TC.wav_sw_48-48_STEREO_JBM5.tst
// MASA 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, FOA out, JBM Prof 5 // MASA 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, FOA out, JBM Prof 5
../IVAS_cod -masa 1 testv/ltv48_MASA1TC.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/ltv48_MASA1TC.wav bit ../IVAS_cod -masa 1 testv/ltv48_MASA1TC.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/ltv48_MASA1TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_MASA1TC.wav_sw_48-48_FOA_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_MASA1TC.wav_sw_48-48_FOA_JBM5.tst
// MASA 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out, JBM Prof 5 // MASA 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out, JBM Prof 5
../IVAS_cod -masa 2 testv/ltv48_MASA2TC.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_MASA2TC.wav bit ../IVAS_cod -masa 2 testv/ltv48_MASA2TC.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_MASA2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 16 netsimoutput testv/ltv48_MASA2TC.wav_sw_48-16_BINAURAL_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 16 netsimoutput testv/ltv48_MASA2TC.wav_sw_48-16_BINAURAL_JBM5.tst
// MASA 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 32kHz out, MONO out, JBM Prof 5 // MASA 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 32kHz out, MONO out, JBM Prof 5
../IVAS_cod -masa 2 testv/ltv48_MASA2TC.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_MASA2TC.wav bit ../IVAS_cod -masa 2 testv/ltv48_MASA2TC.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_MASA2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP MONO 32 netsimoutput testv/ltv48_MASA2TC.wav_sw_48-32_MONO_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP MONO 32 netsimoutput testv/ltv48_MASA2TC.wav_sw_48-32_MONO_JBM5.tst
// MASA 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, EXT out, JBM Prof 5 // MASA 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, EXT out, JBM Prof 5
../IVAS_cod -masa 2 testv/ltv48_MASA2TC.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_MASA2TC.wav bit ../IVAS_cod -masa 2 testv/ltv48_MASA2TC.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_MASA2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/ltv48_MASA2TC.wav_sw_48-48_EXT_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/ltv48_MASA2TC.wav_sw_48-48_EXT_JBM5.tst
// MASA 1TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out, JBM Prof 5 // MASA 1TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out, JBM Prof 5
../IVAS_cod -masa 1 testv/ltv48_MASA1TC.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_MASA1TC.wav bit ../IVAS_cod -masa 1 testv/ltv48_MASA1TC.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_MASA1TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 16 netsimoutput testv/ltv48_MASA1TC.wav_sw_48-16_BINAURAL_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 16 netsimoutput testv/ltv48_MASA1TC.wav_sw_48-16_BINAURAL_JBM5.tst
// OMASA 2TC 1ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_IR out, JBM Prof 5 // OMASA 2TC 1ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_IR out, JBM Prof 5
../IVAS_cod -ism_masa 1 2 testv/ltv48_OMASA_1ISM_2TC_ISM1.csv testv/ltv48_OMASA_1ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_1ism.bin 48 testv/ltv48_OMASA_1ISM_2TC.wav bit ../IVAS_cod -ism_masa 1 2 testv/ltv48_OMASA_1ISM_2TC_ISM1.csv testv/ltv48_OMASA_1ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_1ism.bin 48 testv/ltv48_OMASA_1ISM_2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_IR 48 netsimoutput testv/ltv48_OMASA_1ISM_2TC.wav_BINAURAL_ROOM_IR_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_IR 48 netsimoutput testv/ltv48_OMASA_1ISM_2TC.wav_BINAURAL_ROOM_IR_sw_48-48_JBM5.tst
// OMASA 2TC 2ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, 7.1 out, JBM Prof 5 // OMASA 2TC 2ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, 7.1 out, JBM Prof 5
../IVAS_cod -ism_masa 2 2 testv/ltv48_OMASA_2ISM_2TC_ISM1.csv NULL testv/ltv48_OMASA_2ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/ltv48_OMASA_2ISM_2TC.wav bit ../IVAS_cod -ism_masa 2 2 testv/ltv48_OMASA_2ISM_2TC_ISM1.csv NULL testv/ltv48_OMASA_2ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/ltv48_OMASA_2ISM_2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 7_1 48 netsimoutput testv/ltv48_OMASA_2ISM_2TC.wav_7_1_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 7_1 48 netsimoutput testv/ltv48_OMASA_2ISM_2TC.wav_7_1_sw_48-48_JBM5.tst
// OMASA 2TC 3ISM at br sw techs 13.2 to 512 kbps start 160 kbps, 48kHz in, 48kHz out, MONO out, JBM Prof 5 // OMASA 2TC 3ISM at br sw techs 13.2 to 512 kbps start 160 kbps, 48kHz in, 48kHz out, MONO out, JBM Prof 5
../IVAS_cod -ism_masa 3 2 testv/ltv48_OMASA_3ISM_2TC_ISM1.csv testv/ltv48_OMASA_3ISM_2TC_ISM2.csv testv/ltv48_OMASA_3ISM_2TC_ISM3.csv testv/ltv48_OMASA_3ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_160k_omasatechs_3ism.bin 48 testv/ltv48_OMASA_3ISM_2TC.wav bit ../IVAS_cod -ism_masa 3 2 testv/ltv48_OMASA_3ISM_2TC_ISM1.csv testv/ltv48_OMASA_3ISM_2TC_ISM2.csv testv/ltv48_OMASA_3ISM_2TC_ISM3.csv testv/ltv48_OMASA_3ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_160k_omasatechs_3ism.bin 48 testv/ltv48_OMASA_3ISM_2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP MONO 48 netsimoutput testv/ltv48_OMASA_3ISM_2TC.wav_MONO_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP MONO 48 netsimoutput testv/ltv48_OMASA_3ISM_2TC.wav_MONO_sw_48-48_JBM5.tst
// OMASA 1TC 3ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 32kHz out, STEREO out, JBM Prof 5 // OMASA 1TC 3ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 32kHz out, STEREO out, JBM Prof 5
../IVAS_cod -ism_masa 3 1 testv/ltv48_OMASA_3ISM_1TC_ISM1.csv testv/ltv48_OMASA_3ISM_1TC_ISM2.csv testv/ltv48_OMASA_3ISM_1TC_ISM3.csv testv/ltv48_OMASA_3ISM_1TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_3ism.bin 48 testv/ltv48_OMASA_3ISM_1TC.wav bit ../IVAS_cod -ism_masa 3 1 testv/ltv48_OMASA_3ISM_1TC_ISM1.csv testv/ltv48_OMASA_3ISM_1TC_ISM2.csv testv/ltv48_OMASA_3ISM_1TC_ISM3.csv testv/ltv48_OMASA_3ISM_1TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_3ism.bin 48 testv/ltv48_OMASA_3ISM_1TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP STEREO 32 netsimoutput testv/ltv48_OMASA_3ISM_1TC.wav_STEREO_sw_48-32_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP STEREO 32 netsimoutput testv/ltv48_OMASA_3ISM_1TC.wav_STEREO_sw_48-32_JBM5.tst
// OMASA 2TC 3ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 32kHz in, 48kHz out, 5.1.2 out, JBM Prof 5 // OMASA 2TC 3ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 32kHz in, 48kHz out, 5.1.2 out, JBM Prof 5
../IVAS_cod -ism_masa 3 2 testv/ltv48_OMASA_3ISM_2TC_ISM1.csv testv/ltv48_OMASA_3ISM_2TC_ISM2.csv testv/ltv48_OMASA_3ISM_2TC_ISM3.csv testv/ltv48_OMASA_3ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_3ism.bin 32 testv/ltv32_OMASA_3ISM_2TC.wav bit ../IVAS_cod -ism_masa 3 2 testv/ltv48_OMASA_3ISM_2TC_ISM1.csv testv/ltv48_OMASA_3ISM_2TC_ISM2.csv testv/ltv48_OMASA_3ISM_2TC_ISM3.csv testv/ltv48_OMASA_3ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_3ism.bin 32 testv/ltv32_OMASA_3ISM_2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP 5_1_2 48 netsimoutput testv/ltv32_OMASA_3ISM_2TC.wav_5_1_2_sw_32-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP 5_1_2 48 netsimoutput testv/ltv32_OMASA_3ISM_2TC.wav_5_1_2_sw_32-48_JBM5.tst
// OMASA 1TC 4ISM at br sw techs 13.2 to 512 kbps start 32 kbps, 48kHz in, 48kHz out, BINAURAL out, JBM Prof 5 // OMASA 1TC 4ISM at br sw techs 13.2 to 512 kbps start 32 kbps, 48kHz in, 48kHz out, BINAURAL out, JBM Prof 5
../IVAS_cod -ism_masa 4 1 testv/ltv48_OMASA_4ISM_1TC_ISM1.csv testv/ltv48_OMASA_4ISM_1TC_ISM2.csv testv/ltv48_OMASA_4ISM_1TC_ISM3.csv testv/ltv48_OMASA_4ISM_1TC_ISM4.csv testv/ltv48_OMASA_4ISM_1TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_32k_omasatechs_4ism.bin 48 testv/ltv48_OMASA_4ISM_1TC.wav bit ../IVAS_cod -ism_masa 4 1 testv/ltv48_OMASA_4ISM_1TC_ISM1.csv testv/ltv48_OMASA_4ISM_1TC_ISM2.csv testv/ltv48_OMASA_4ISM_1TC_ISM3.csv testv/ltv48_OMASA_4ISM_1TC_ISM4.csv testv/ltv48_OMASA_4ISM_1TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_32k_omasatechs_4ism.bin 48 testv/ltv48_OMASA_4ISM_1TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_OMASA_4ISM_1TC.wav_BINAURAL_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_OMASA_4ISM_1TC.wav_BINAURAL_sw_48-48_JBM5.tst
// OMASA 2TC 4ISM at br sw techs 13.2 to 512 kbps start 80 kbps, 48kHz in, 48kHz out, FOA out, JBM Prof 5 // OMASA 2TC 4ISM at br sw techs 13.2 to 512 kbps start 80 kbps, 48kHz in, 48kHz out, FOA out, JBM Prof 5
../IVAS_cod -ism_masa 4 2 NULL testv/ltv48_OMASA_4ISM_2TC_ISM2.csv testv/ltv48_OMASA_4ISM_2TC_ISM3.csv testv/ltv48_OMASA_4ISM_2TC_ISM4.csv testv/ltv48_OMASA_4ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_80k_omasatechs_4ism.bin 48 testv/ltv48_OMASA_4ISM_2TC.wav bit ../IVAS_cod -ism_masa 4 2 NULL testv/ltv48_OMASA_4ISM_2TC_ISM2.csv testv/ltv48_OMASA_4ISM_2TC_ISM3.csv testv/ltv48_OMASA_4ISM_2TC_ISM4.csv testv/ltv48_OMASA_4ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_80k_omasatechs_4ism.bin 48 testv/ltv48_OMASA_4ISM_2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_OMASA_4ISM_2TC.wav_FOA_sw_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_OMASA_4ISM_2TC.wav_FOA_sw_48-48_JBM5.tst
// OMASA 2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, EXT out, JBM Prof 5 // OMASA 2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, EXT out, JBM Prof 5
../IVAS_cod -ism_masa 4 2 testv/ltv48_OMASA_4ISM_2TC_ISM1.csv testv/ltv48_OMASA_4ISM_2TC_ISM2.csv NULL testv/ltv48_OMASA_4ISM_2TC_ISM4.csv testv/ltv48_OMASA_4ISM_2TC.met 256000 48 testv/ltv48_OMASA_4ISM_2TC.wav bit ../IVAS_cod -ism_masa 4 2 testv/ltv48_OMASA_4ISM_2TC_ISM1.csv testv/ltv48_OMASA_4ISM_2TC_ISM2.csv NULL testv/ltv48_OMASA_4ISM_2TC_ISM4.csv testv/ltv48_OMASA_4ISM_2TC.met 256000 48 testv/ltv48_OMASA_4ISM_2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/ltv48_OMASA_4ISM_2TC.wav_EXT_256000_48-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP EXT 48 netsimoutput testv/ltv48_OMASA_4ISM_2TC.wav_EXT_256000_48-48_JBM5.tst
// OMASA 1TC 4ISM 48 kbps 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out custom configuration // OMASA 1TC 4ISM 48 kbps 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out custom configuration
../IVAS_cod -ism_masa 4 1 testv/ltv48_OMASA_4ISM_1TC_ISM1.csv testv/ltv48_OMASA_4ISM_1TC_ISM2.csv testv/ltv48_OMASA_4ISM_1TC_ISM3.csv testv/ltv48_OMASA_4ISM_1TC_ISM4.csv testv/ltv48_OMASA_4ISM_1TC.met 48000 48 testv/ltv48_OMASA_4ISM_1TC.wav bit ../IVAS_cod -ism_masa 4 1 testv/ltv48_OMASA_4ISM_1TC_ISM1.csv testv/ltv48_OMASA_4ISM_1TC_ISM2.csv testv/ltv48_OMASA_4ISM_1TC_ISM3.csv testv/ltv48_OMASA_4ISM_1TC_ISM4.csv testv/ltv48_OMASA_4ISM_1TC.met 48000 48 testv/ltv48_OMASA_4ISM_1TC.wav bit
...@@ -1993,7 +1993,7 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_10pct.g ...@@ -1993,7 +1993,7 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_10pct.g
// OSBA 2OA 2ISM bitrate switching, 32kHz in, 48kHz out, BINAURAL_ROOM_REVERB out, JBM Prof 5 // OSBA 2OA 2ISM bitrate switching, 32kHz in, 48kHz out, BINAURAL_ROOM_REVERB out, JBM Prof 5
../IVAS_cod -ism_sba 2 2 testv/ltvISM1.csv testv/ltvISM2.csv ../scripts/switchPaths/sw_24k4_256k.bin 32 testv/ltv32_OSBA_2ISM_HOA2.wav bit ../IVAS_cod -ism_sba 2 2 testv/ltvISM1.csv testv/ltvISM2.csv ../scripts/switchPaths/sw_24k4_256k.bin 32 testv/ltv32_OSBA_2ISM_HOA2.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_REVERB 48 netsimoutput testv/ltv32_OSBA_2ISM_HOA2.wav_BINAURAL_brsw_32-48_JBM5.tst ../IVAS_dec -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL_ROOM_REVERB 48 netsimoutput testv/ltv32_OSBA_2ISM_HOA2.wav_BINAURAL_brsw_32-48_JBM5.tst
// OMASA 2TC 4ISM at 80 kbps, 48kHz in, 48kHz out, BINAURAL out, default object editing, 1SEP-PARAM // OMASA 2TC 4ISM at 80 kbps, 48kHz in, 48kHz out, BINAURAL out, default object editing, 1SEP-PARAM
...@@ -2003,12 +2003,12 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit ...@@ -2003,12 +2003,12 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit
// OMASA 2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing, JBM Prof 5, DISC // OMASA 2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing, JBM Prof 5, DISC
../IVAS_cod -ism_masa 4 2 testv/ltv48_OMASA_4ISM_2TC_ISM1.csv testv/ltv48_OMASA_4ISM_2TC_ISM2.csv testv/ltv48_OMASA_4ISM_2TC_ISM3.csv testv/ltv48_OMASA_4ISM_2TC_ISM4.csv testv/ltv48_OMASA_4ISM_2TC.met 256000 48 testv/ltv48_OMASA_4ISM_2TC.wav bit ../IVAS_cod -ism_masa 4 2 testv/ltv48_OMASA_4ISM_2TC_ISM1.csv testv/ltv48_OMASA_4ISM_2TC_ISM2.csv testv/ltv48_OMASA_4ISM_2TC_ISM3.csv testv/ltv48_OMASA_4ISM_2TC_ISM4.csv testv/ltv48_OMASA_4ISM_2TC.met 256000 48 testv/ltv48_OMASA_4ISM_2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_OMASA_4ISM_2TC.wav_BINAURAL_256000_48-48_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_OMASA_4ISM_2TC.wav_BINAURAL_256000_48-48_OE_JBM5.tst
// OMASA 2TC 2ISM at 96 kbps, 48kHz in, 48kHz out, FOA out, object editing, JBM Prof 5, DISC // OMASA 2TC 2ISM at 96 kbps, 48kHz in, 48kHz out, FOA out, object editing, JBM Prof 5, DISC
../IVAS_cod -ism_masa 2 2 testv/ltv48_OMASA_2ISM_2TC_ISM1.csv testv/ltv48_OMASA_2ISM_2TC_ISM2.csv testv/ltv48_OMASA_2ISM_2TC.met 96000 48 testv/ltv48_OMASA_2ISM_2TC.wav bit ../IVAS_cod -ism_masa 2 2 testv/ltv48_OMASA_2ISM_2TC_ISM1.csv testv/ltv48_OMASA_2ISM_2TC_ISM2.csv testv/ltv48_OMASA_2ISM_2TC.met 96000 48 testv/ltv48_OMASA_2ISM_2TC.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_OMASA_2ISM_2TC.wav_FOA_96000_48-48_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_OMASA_2ISM_2TC.wav_FOA_96000_48-48_OE_JBM5.tst
// OMASA 2TC 2ISM br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing // OMASA 2TC 2ISM br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing
../IVAS_cod -ism_masa 2 2 testv/ltv48_OMASA_2ISM_2TC_ISM1.csv testv/ltv48_OMASA_2ISM_2TC_ISM2.csv testv/ltv48_OMASA_2ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/ltv48_OMASA_2ISM_2TC.wav bit ../IVAS_cod -ism_masa 2 2 testv/ltv48_OMASA_2ISM_2TC_ISM1.csv testv/ltv48_OMASA_2ISM_2TC_ISM2.csv testv/ltv48_OMASA_2ISM_2TC.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/ltv48_OMASA_2ISM_2TC.wav bit
...@@ -2021,7 +2021,7 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit ...@@ -2021,7 +2021,7 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit
// OSBA 2OA 3ISM at 128 kbps, 48kHz in, 48kHz out, FOA out, object editing, JBM Prof 5, DISC // OSBA 2OA 3ISM at 128 kbps, 48kHz in, 48kHz out, FOA out, object editing, JBM Prof 5, DISC
../IVAS_cod -ism_sba 3 2 testv/ltv48_OSBA_3ISM_HOA2_ISM1.csv testv/ltv48_OSBA_3ISM_HOA2_ISM2.csv testv/ltv48_OSBA_3ISM_HOA2_ISM3.csv 128000 48 testv/ltv48_OSBA_3ISM_HOA2.wav bit ../IVAS_cod -ism_sba 3 2 testv/ltv48_OSBA_3ISM_HOA2_ISM1.csv testv/ltv48_OSBA_3ISM_HOA2_ISM2.csv testv/ltv48_OSBA_3ISM_HOA2_ISM3.csv 128000 48 testv/ltv48_OSBA_3ISM_HOA2.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_OSBA_3ISM_HOA2.wav_FOA_128000_48-48_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_OSBA_3ISM_HOA2.wav_FOA_128000_48-48_OE_JBM5.tst
// OSBA 2OA 3ISM at bitrate switching 13.2 to 512 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing // OSBA 2OA 3ISM at bitrate switching 13.2 to 512 kbps, 48kHz in, 48kHz out, BINAURAL out, object editing
../IVAS_cod -ism_sba 3 2 testv/ltv48_OSBA_3ISM_HOA2_ISM1.csv testv/ltv48_OSBA_3ISM_HOA2_ISM2.csv testv/ltv48_OSBA_3ISM_HOA2_ISM3.csv ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_OSBA_3ISM_HOA2.wav bit ../IVAS_cod -ism_sba 3 2 testv/ltv48_OSBA_3ISM_HOA2_ISM1.csv testv/ltv48_OSBA_3ISM_HOA2_ISM2.csv testv/ltv48_OSBA_3ISM_HOA2_ISM3.csv ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/ltv48_OSBA_3ISM_HOA2.wav bit
...@@ -2039,12 +2039,12 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ...@@ -2039,12 +2039,12 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1
// 3 ISM with metadata at 24.4 kbps, 48 kHz in, 48 kHz out, FOA out, object editing, JBM Prof 5, PARAM_ISM // 3 ISM with metadata at 24.4 kbps, 48 kHz in, 48 kHz out, FOA out, object editing, JBM Prof 5, PARAM_ISM
../IVAS_cod -ism 3 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv 24400 48 testv/ltv48_3ISM.wav bit ../IVAS_cod -ism 3 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv 24400 48 testv/ltv48_3ISM.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_3ISM.wav_24400_48-48_FOA_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_3ISM.wav_24400_48-48_FOA_OE_JBM5.tst
// 3 ISM with metadata at 384 kbps, 48 kHz in, 48 kHz out, FOA out, object editing, JBM Prof 5, DISC // 3 ISM with metadata at 384 kbps, 48 kHz in, 48 kHz out, FOA out, object editing, JBM Prof 5, DISC
../IVAS_cod -ism 3 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv 384000 48 testv/ltv48_3ISM.wav bit ../IVAS_cod -ism 3 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv 384000 48 testv/ltv48_3ISM.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit NULL -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_3ISM.wav_384000_48-48_FOA_OE_JBM5.tst ../IVAS_dec -obj_edit NULL -no_delay_cmp -Tracefile tracefile_dec -VOIP FOA 48 netsimoutput testv/ltv48_3ISM.wav_384000_48-48_FOA_OE_JBM5.tst
// 4 ISM with metadata bitrate switching from 32 kbps to 48 kbps, 48 kHz in, 48 kHz out, BINAURAL_ROOM_IR out, object editing // 4 ISM with metadata bitrate switching from 32 kbps to 48 kbps, 48 kHz in, 48 kHz out, BINAURAL_ROOM_IR out, object editing
../IVAS_cod -ism 4 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv testv/ltvISM4.csv ../scripts/switchPaths/sw_32-48k_10fr.bin 48 testv/ltv48_4ISM.wav bit ../IVAS_cod -ism 4 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv testv/ltvISM4.csv ../scripts/switchPaths/sw_32-48k_10fr.bin 48 testv/ltv48_4ISM.wav bit
...@@ -2053,4 +2053,4 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit ...@@ -2053,4 +2053,4 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit
// 4 ISM with metadata bitrate switching from 48 kbps to 32 kbps, 48 kHz in, 48 kHz out, BINAURAL out, object editing, JBM Prof 5 // 4 ISM with metadata bitrate switching from 48 kbps to 32 kbps, 48 kHz in, 48 kHz out, BINAURAL out, object editing, JBM Prof 5
../IVAS_cod -ism 4 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv testv/ltvISM4.csv ../scripts/switchPaths/sw_48-32k_10fr.bin 48 testv/ltv48_4ISM.wav bit ../IVAS_cod -ism 4 testv/ltvISM1.csv testv/ltvISM2.csv testv/ltvISM3.csv testv/ltvISM4.csv ../scripts/switchPaths/sw_48-32k_10fr.bin 48 testv/ltv48_4ISM.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_4ISM.wav_sw_48-48_BINAURAL_OE_JBM5.tst ../IVAS_dec -obj_edit ../scripts/object_edit/combined_edit.txt -no_delay_cmp -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/ltv48_4ISM.wav_sw_48-48_BINAURAL_OE_JBM5.tst
Source diff could not be displayed: it is stored in LFS. Options to address this: view the blob.
#!/usr/bin/env python3
import argparse
from pathlib import Path
import pandas as pd
def main(logs_dir, output_filename, measure, days, all_results, diff_thr, ratio_thr, curr_value_thr):
input_path = Path(logs_dir)
logs = [f for f in input_path.iterdir() if f.is_dir()]
# Build dict of scores
formatdict = {}
sha = {}
logdict = {}
for log in logs:
date = log.name
logdict[date] = {}
formatdict[date] = {}
for logfile in log.glob("*.csv"):
tmp = logfile.name.split("-")
job = "-".join(tmp[3:-4])
sha[date] = tmp[-1].split(".")[0]
data = pd.read_csv(logfile, usecols=["testcase", measure, "format"])
logdict[date][job] = {}
formatdict[date][job] = {}
for testcase, value, format in zip(
data["testcase"], data[measure], data["format"]
):
formatdict[date][job][testcase] = format
logdict[date][job][testcase] = value
# Restructure dict
csv_rows = []
formats = []
for date, jobs in logdict.items():
for job, testcases in jobs.items():
for testcase, value in testcases.items():
csv_rows.append((job, testcase, date, value))
formats.append((job, testcase, date, formatdict[date][job][testcase]))
result = pd.DataFrame(csv_rows, columns=["job", "testcase", "date", "value"])
result = result.pivot(
index=["job", "testcase"], columns="date", values="value"
).reset_index()
f = pd.DataFrame(formats, columns=["job", "testcase", "date", "format"])
f = f.pivot(
index=["job", "testcase"], columns="date", values="format"
).reset_index()
if days != -1:
len_history = len(result.columns) - 2
if len_history < days:
print(f"*** Warning: Requested number of days exceeds the number of days in the logs. Will use all {len_history} available days.")
if len_history > days:
remove_days = len_history - days
result = result.drop(result.columns[2:2+remove_days], axis=1)
values = result.iloc[:, 2:]
last_date = values.columns[-1]
result.insert(2, "format", f[last_date])
result.insert(3, "min_date", values.idxmin(axis=1))
result.insert(4, "min_sha", result["min_date"].map(sha))
result.insert(5, "curr_value", values[last_date])
result.insert(6, "min_value", values.min(axis=1))
result.insert(7, "diff", result["curr_value"] - result["min_value"])
result.insert(8, "ratio", result["curr_value"] / result["min_value"])
result.loc[result["min_value"] == 0, "ratio"] = (
1 # Set ratio to 1 for denominator 0
)
if not all_results:
# Filter out test cases above thresholds
result = result[result["diff"] > diff_thr]
result = result[result["ratio"] > ratio_thr]
result = result[result["curr_value"] > curr_value_thr]
result["min_sha"] = "'" + result["min_sha"] # Add apostrophy to prevent Excel reading this as a number
result.to_csv(output_filename, sep=";", index=False)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="logs dir")
parser.add_argument(
"logs_dir",
type=str,
help="Logs dir, e.g. logs",
)
parser.add_argument(
"output_filename",
type=str,
help="Filename of the combined csv file. e.g mld.csv",
)
parser.add_argument(
"--measure",
type=str,
help="Measure for summary, one of MLD MIN_SSNR MAX_ABS_DIFF MIN_ODG, (default: MLD)",
default="MLD",
)
parser.add_argument(
"--days",
type=int,
help="Number of days in history, (default: whole history)",
default=-1,
)
parser.add_argument(
"--all_results",
action="store_true",
help="Output all results, including cases without regression (default: off)",
default=False,
)
parser.add_argument(
"--diff_thr",
type=float,
help="Include test cases with diff above diff_thr, (default: 0.0)",
default=0.0,
)
parser.add_argument(
"--ratio_thr",
type=float,
help="Include test cases with ratio above ratio_thr, (default: 1.0)",
default=1.0,
)
parser.add_argument(
"--curr_value_thr",
type=float,
help="Include test cases with curr_value above curr_value_thr, (default: 0.0)",
default=0.0,
)
args = parser.parse_args()
main(args.logs_dir, args.output_filename, args.measure, args.days, args.all_results, args.diff_thr, args.ratio_thr, args.curr_value_thr)
#!/usr/bin/env python3
import argparse
import pandas as pd
REPRODUCE_REGRESSION_SCRIPT_TMPL = """
#!/bin/bash -x
SCRIPTS_DIR=/usr/local/scripts
LTV_DIR=/usr/local/ltv
MIN_DATE={min_date}
MIN_SHA={min_sha}
LEVEL_SCALING={level_scaling}
TESTCASE="{testcase}"
REF_ENC1={REF_ENC1}
REF_DEC1={REF_DEC1}
DUT_ENC1={DUT_ENC1}
DUT_DEC1={DUT_DEC1}
REF_ENC2={REF_ENC2}
REF_DEC2={REF_DEC2}
DUT_ENC2={DUT_ENC2}
DUT_DEC2={DUT_DEC2}
INV_LEVEL_SCALING=$(awk "BEGIN {{print 1.0 / $LEVEL_SCALING}}")
# Obtain executables from past reference
git checkout `git rev-list -1 --before="$MIN_DATE 22:00:00" ivas-float-update`
echo "ivas_float_update, min version: `git rev-parse HEAD`" > versions.txt
make clean
make -j
mv IVAS_cod IVAS_cod_ref_1
mv IVAS_dec IVAS_dec_ref_1
mv IVAS_rend IVAS_rend_ref_1
git checkout $MIN_SHA
echo "main, min version: `git rev-parse HEAD`" >> versions.txt
make clean
make -j
mv IVAS_cod IVAS_cod_1
mv IVAS_dec IVAS_dec_1
mv IVAS_rend IVAS_rend_1
# Obtain latest executables
git checkout ivas-float-update
git pull
echo "ivas-float-update, current version: `git rev-parse HEAD`" >> versions.txt
make clean
make -j
mv IVAS_cod IVAS_cod_ref_2
mv IVAS_dec IVAS_dec_ref_2
mv IVAS_rend IVAS_rend_ref_2
git checkout main
git pull
echo "main, current version: `git rev-parse HEAD`" >> versions.txt
make clean
make -j
mv IVAS_cod IVAS_cod_2
mv IVAS_dec IVAS_dec_2
mv IVAS_rend IVAS_rend_2
# Get fresh copy of scripts, tests and ci
cp -r $SCRIPTS_DIR/{{scripts,tests,ci,pytest.ini}} .
rm -rf tests/ref tests/dut tests/renderer/ref tests/renderer/cut
python3 ci/remove_unsupported_testcases.py scripts/config/self_test.prm scripts/config/self_test_ltv.prm
# Get LTVs
cp $LTV_DIR/* scripts/testv
# Apply level scaling
tests/scale_pcm.py ./scripts/testv/ "$LEVEL_SCALING"
# Run tests
cp IVAS_rend_ref_1 IVAS_rend_ref
cp IVAS_rend_1 IVAS_rend
python3 -m pytest "$TESTCASE" -n 1 --update_ref 1 --create_ref --param_file scripts/config/self_test_ltv.prm --use_ltv --ref_encoder_path $REF_ENC1 --ref_decoder_path $REF_DEC1
python3 -m pytest "$TESTCASE" -n 1 --create_cut --param_file scripts/config/self_test_ltv.prm --use_ltv --dut_encoder_path $DUT_ENC1 --dut_decoder_path $DUT_DEC1 --mld --ssnr --odg --scalefac $INV_LEVEL_SCALING --junit-xml=report1.xml --html=report1.html --self-contained-html
python3 scripts/parse_xml_report.py report1.xml report1.csv
# Store results from first run
mkdir -p tests1/renderer
cp -r tests/ref tests/dut tests1
cp -r tests/renderer/ref tests1/renderer
cp -r tests/renderer/cut tests1/renderer
cp IVAS_rend_ref_2 IVAS_rend_ref
cp IVAS_rend_2 IVAS_rend
python3 -m pytest "$TESTCASE" -n 1 --update_ref 1 --create_ref --param_file scripts/config/self_test_ltv.prm --use_ltv --ref_encoder_path $REF_ENC2 --ref_decoder_path $REF_DEC2
python3 -m pytest "$TESTCASE" -n 1 --create_cut --param_file scripts/config/self_test_ltv.prm --use_ltv --dut_encoder_path $DUT_ENC2 --dut_decoder_path $DUT_DEC2 --mld --ssnr --odg --scalefac $INV_LEVEL_SCALING --junit-xml=report2.xml --html=report2.html --self-contained-html
python3 scripts/parse_xml_report.py report2.xml report2.csv
"""
def main(critical_list):
critical = pd.read_csv(critical_list, sep=";")
for row_counter, row in critical.iterrows():
# Find level
level_scaling = 1.0
if "lev+10" in row["job"]:
level_scaling = 3.162
if "lev-10" in row["job"]:
level_scaling = 0.3162
# Find executables setup
REF_ENC1 = "IVAS_cod_ref_1"
REF_DEC1 = "IVAS_dec_ref_1"
DUT_ENC1 = "IVAS_cod_1"
DUT_DEC1 = "IVAS_dec_1"
REF_ENC2 = "IVAS_cod_ref_2"
REF_DEC2 = "IVAS_dec_ref_2"
DUT_ENC2 = "IVAS_cod_2"
DUT_DEC2 = "IVAS_dec_2"
if "dec" in row["job"]:
DUT_ENC1 = "IVAS_cod_ref_1"
DUT_ENC2 = "IVAS_cod_ref_2"
if "enc" in row["job"]:
DUT_DEC1 = "IVAS_dec_ref_1"
DUT_DEC2 = "IVAS_dec_ref_2"
script_content = REPRODUCE_REGRESSION_SCRIPT_TMPL.format(
min_date=row["min_date"],
min_sha=row["min_sha"][1:],
level_scaling=level_scaling,
testcase=row["testcase"],
REF_ENC1=REF_ENC1,
REF_DEC1=REF_DEC1,
DUT_ENC1=DUT_ENC1,
DUT_DEC1=DUT_DEC1,
REF_ENC2=REF_ENC2,
REF_DEC2=REF_DEC2,
DUT_ENC2=DUT_ENC2,
DUT_DEC2=DUT_DEC2,
)
script_filename = f"regression_{row_counter+2:03d}.bash"
with open(script_filename, "w") as f:
f.write(script_content)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Generate bash scripts to reproduce test cases from critical testcase csv list")
parser.add_argument(
"critical_list",
type=str,
help="critical file list, e.g. critical.csv",
)
args = parser.parse_args()
main(args.critical_list)
#!/usr/bin/env python3
from pathlib import Path
from scipy.io.wavfile import read, write
import numpy as np
MAX_NUM_CH = 20 # number of channel indices in file
MIN_DURATION_MS = 1200 # minimum duration needed for all indices at 16kHz
TESTV_DIR = Path(__file__).parent.joinpath("testv")
def create_vector(fs: int, num_ch: int):
in_file = TESTV_DIR / f"spectral_{fs}.wav"
# requires spectral_{16,32,48}.wav
if not in_file.exists():
raise FileNotFoundError(f"Source file {in_file} not found!")
# validate num_ch
if num_ch > MAX_NUM_CH or num_ch < 1:
raise ValueError(
f"Requested channel count of {num_ch} channels is invalid. Must be between 1 and {MAX_NUM_CH}!"
)
_, data = read(in_file)
# split source file into parts
part_len = data.shape[0] // MAX_NUM_CH
parts = data.reshape(MAX_NUM_CH, part_len).T
duration = fs * MIN_DURATION_MS
out = np.zeros([duration, num_ch], dtype=np.int16)
# populate output vector, loop over the channel indices
# until the duration is reached
for i in range(duration // part_len):
for ch in range(num_ch):
if i % num_ch == ch:
out[i * part_len : (i + 1) * part_len, ch] = parts[:, ch]
write(TESTV_DIR / f"spectral_test_{num_ch}ch_{fs}kHz.wav", fs * 1000, out)
def main():
for fs in [16, 32, 48]:
for ch in range(1, 21):
create_vector(fs, ch)
if __name__ == "__main__":
main()
...@@ -6,13 +6,13 @@ printf "Cleaning old version of LC3plus\n" ...@@ -6,13 +6,13 @@ printf "Cleaning old version of LC3plus\n"
rm -rf lib_lc3plus rm -rf lib_lc3plus
printf "Downloading LC3plus code\n" printf "Downloading LC3plus code\n"
if false; then if true; then
# Waiting for official ETSI release. # Waiting for official ETSI release.
# TODO: add new URL, remove `if false` when package goes public # TODO: add new URL, remove `if false` when package goes public
curl -o ./lc3plus_sources.zip NEW_URL_HERE curl -o ./lc3plus_sources.zip https://www.etsi.org/deliver/etsi_ts/103600_103699/103634/01.05.01_60/ts_103634v010501p0.zip
unzip lc3plus_sources.zip -d . unzip lc3plus_sources.zip -d .
rm lc3plus_sources.zip rm lc3plus_sources.zip
cp -r "ETSI_Release/<package name here>/src/floating_point" lib_lc3plus cp -r "ETSI_Release/LC3plus_ETSI_src_v5f640bd48cc_20240516/src/floating_point" lib_lc3plus
rm -r ETSI_Release rm -r ETSI_Release
else else
# Temp solution for downloading WIP ETSI package # Temp solution for downloading WIP ETSI package
...@@ -57,6 +57,10 @@ find lib_lc3plus -name '*.[ch]' -type f -print0 | \ ...@@ -57,6 +57,10 @@ find lib_lc3plus -name '*.[ch]' -type f -print0 | \
xargs -0 -I {} \ xargs -0 -I {} \
sed -i 's/^#[[:space:]]\+/#/' {} sed -i 's/^#[[:space:]]\+/#/' {}
# fix for sanitizer issues
sed -i 's/st->low << 8/(LC3_INT)((LC3_UINT32)st->low << 8)/' lib_lc3plus/ari_codec.c
sed -i 's/~3/(uintptr_t)(~3)/' lib_lc3plus/lc3plus.c
# Add .clang-format file to lib_lc3plus to disable formatting there # Add .clang-format file to lib_lc3plus to disable formatting there
printf "Disabling clang-format in lib_lc3plus directory\n" printf "Disabling clang-format in lib_lc3plus directory\n"
printf ' printf '
......
...@@ -227,6 +227,8 @@ find $targetdir -name "*.[ch]" -exec sed -i.bak -e "s/\(0x[0-9a-fA-F]*\)UL/\(\(u ...@@ -227,6 +227,8 @@ find $targetdir -name "*.[ch]" -exec sed -i.bak -e "s/\(0x[0-9a-fA-F]*\)UL/\(\(u
# run wmc_tool, exit if the command fails # run wmc_tool, exit if the command fails
set -e set -e
touch wmc_tool_output.txt
trap 'echo "Error calling WMC tool: $?"; cat wmc_tool_output.txt' ERR
"$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/encoder.c" "$targetdir/lib_enc/*.c" "$targetdir/lib_com/*.c" >>wmc_tool_output.txt 2>&1 "$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/encoder.c" "$targetdir/lib_enc/*.c" "$targetdir/lib_com/*.c" >>wmc_tool_output.txt 2>&1
"$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/decoder.c" "$targetdir/lib_dec/*.c" "$targetdir/lib_rend/*.c" >>wmc_tool_output.txt 2>&1 "$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/decoder.c" "$targetdir/lib_dec/*.c" "$targetdir/lib_rend/*.c" >>wmc_tool_output.txt 2>&1
for bak_file in $targetdir/lib_rend/*.bak; do mv "$bak_file" "${bak_file%.*}"; done # restore fresh .c files to avoid time-consuming des-instrumentation of files by the WMC tool for bak_file in $targetdir/lib_rend/*.bak; do mv "$bak_file" "${bak_file%.*}"; done # restore fresh .c files to avoid time-consuming des-instrumentation of files by the WMC tool
...@@ -241,6 +243,7 @@ else ...@@ -241,6 +243,7 @@ else
# ISAR post rend # ISAR post rend
"$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/isar_post_rend.c" "$targetdir/lib_isar/*.c" "$targetdir/lib_lc3plus/*.c" "$lc3plus_fftdir" >>wmc_tool_output.txt 2>&1 "$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/isar_post_rend.c" "$targetdir/lib_isar/*.c" "$targetdir/lib_lc3plus/*.c" "$lc3plus_fftdir" >>wmc_tool_output.txt 2>&1
fi fi
trap - ERR
set +e set +e
# automatically enable #define WMOPS in options.h # automatically enable #define WMOPS in options.h
......
...@@ -647,7 +647,7 @@ def runner_setup(runner, args): ...@@ -647,7 +647,7 @@ def runner_setup(runner, args):
"0", "0",
jbm_suffix, jbm_suffix,
] ]
dec_options = ["-Tracefile", "{dec_file_name}.tracefile_dec", "-VOIP"] dec_options = ["-Tracefile", "{dec_file_name}.tracefile_dec", "-no_delay_cmp", "-VOIP"]
add_to_proc_chain(bs_proc_chain, jbm_cmd, dec_options) add_to_proc_chain(bs_proc_chain, jbm_cmd, dec_options)
if args["sidstart"]: if args["sidstart"]:
...@@ -771,7 +771,7 @@ def analyzer_setup(analyzer, args): ...@@ -771,7 +771,7 @@ def analyzer_setup(analyzer, args):
"0", "0",
jbm_suffix, jbm_suffix,
] ]
dec_options = ["-Tracefile", "{dec_file_name}.tracefile_dec", "-VOIP"] dec_options = ["-Tracefile", "{dec_file_name}.tracefile_dec", "-no_delay_cmp", "-VOIP"]
add_to_proc_chain(bs_proc_chain, jbm_cmd, dec_options) add_to_proc_chain(bs_proc_chain, jbm_cmd, dec_options)
if args["sidstart"]: if args["sidstart"]:
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
the United Nations Convention on Contracts on the International Sales of Goods. the United Nations Convention on Contracts on the International Sales of Goods.
""" """
import errno import errno
import os import os
import platform import platform
...@@ -42,7 +41,6 @@ import urllib ...@@ -42,7 +41,6 @@ import urllib
import urllib.parse import urllib.parse
import numpy import numpy
import prepare_combined_format_inputs
import pyaudio3dtools import pyaudio3dtools
import pyivastest.constants as constants import pyivastest.constants as constants
import pyivastest.ivas_svn as svn import pyivastest.ivas_svn as svn
...@@ -63,7 +61,16 @@ MODES = { ...@@ -63,7 +61,16 @@ MODES = {
"5_1_4": "5_1_4", "5_1_4": "5_1_4",
"7_1_4": "7_1_4", "7_1_4": "7_1_4",
}, },
"-ISM": {"1": "ISM1", "2": "ISM2", "3": "ISM3", "4": "ISM4", "+1": "ISM+1", "+2": "ISM+2", "+3": "ISM+3", "+4": "ISM+4"}, "-ISM": {
"1": "ISM1",
"2": "ISM2",
"3": "ISM3",
"4": "ISM4",
"+1": "ISM+1",
"+2": "ISM+2",
"+3": "ISM+3",
"+4": "ISM+4",
},
"-SBA": { "-SBA": {
"-3": "HOA3", "-3": "HOA3",
"3": "HOA3", "3": "HOA3",
...@@ -198,7 +205,7 @@ class SelfTest(IvasScriptsCommon.IvasScript): ...@@ -198,7 +205,7 @@ class SelfTest(IvasScriptsCommon.IvasScript):
help="Run the decoder under test with specified render framn size", help="Run the decoder under test with specified render framn size",
default=20, default=20,
choices=[5, 10, 20], choices=[5, 10, 20],
type=int type=int,
) )
if shutil.which("valgrind"): if shutil.which("valgrind"):
self.valgrind = [ self.valgrind = [
...@@ -522,7 +529,6 @@ class SelfTest(IvasScriptsCommon.IvasScript): ...@@ -522,7 +529,6 @@ class SelfTest(IvasScriptsCommon.IvasScript):
# PESQ # PESQ
if self.run_pesq: if self.run_pesq:
pesq_success = True pesq_success = True
pesq_fs = min([16000, mode_dict["in_fs"], mode_dict["out_fs"]]) pesq_fs = min([16000, mode_dict["in_fs"], mode_dict["out_fs"]])
in_nchans = constants.OC_TO_NCHANNELS[ in_nchans = constants.OC_TO_NCHANNELS[
...@@ -564,11 +570,9 @@ class SelfTest(IvasScriptsCommon.IvasScript): ...@@ -564,11 +570,9 @@ class SelfTest(IvasScriptsCommon.IvasScript):
and not ref_condition_corrupt and not ref_condition_corrupt
and not ref_condition_run_error and not ref_condition_run_error
): ):
fd_ref, decoded_item_ref_mono = tempfile.mkstemp(".pcm") fd_ref, decoded_item_ref_mono = tempfile.mkstemp(".pcm")
os.close(fd_ref) os.close(fd_ref)
if mode_dict["out_fs"] > pesq_fs or n_channels > 1: if mode_dict["out_fs"] > pesq_fs or n_channels > 1:
pyaudio3dtools.audiofile.mono( pyaudio3dtools.audiofile.mono(
decoded_item_ref, decoded_item_ref,
decoded_item_ref_mono, decoded_item_ref_mono,
...@@ -629,7 +633,6 @@ class SelfTest(IvasScriptsCommon.IvasScript): ...@@ -629,7 +633,6 @@ class SelfTest(IvasScriptsCommon.IvasScript):
and not test_condition_corrupt and not test_condition_corrupt
and not test_condition_run_error and not test_condition_run_error
): ):
fd_test, decoded_item_test_mono = tempfile.mkstemp((".pcm")) fd_test, decoded_item_test_mono = tempfile.mkstemp((".pcm"))
os.close(fd_test) os.close(fd_test)
if mode_dict["out_fs"] > pesq_fs or n_channels > 1: if mode_dict["out_fs"] > pesq_fs or n_channels > 1:
...@@ -1004,19 +1007,8 @@ class SelfTest(IvasScriptsCommon.IvasScript): ...@@ -1004,19 +1007,8 @@ class SelfTest(IvasScriptsCommon.IvasScript):
# check if we need to produce missing combined formats # check if we need to produce missing combined formats
if not os.path.exists(in_file): if not os.path.exists(in_file):
if is_osba_or_omasa:
self.logger.info("Creating missing combined formats test vectors...")
prepare_combined_format_inputs.main()
if not os.path.exists(in_file):
self.logger.error(f"Test vector {in_file} does not exist!")
raise FileNotFoundError(
errno.ENOENT, os.strerror(errno.ENOENT), in_file
)
else:
self.logger.error(f"Test vector {in_file} does not exist!") self.logger.error(f"Test vector {in_file} does not exist!")
raise FileNotFoundError( raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), in_file)
errno.ENOENT, os.strerror(errno.ENOENT), in_file
)
# handle intermediate processing steps, e.g. networksimulator, eid-xor, ... # handle intermediate processing steps, e.g. networksimulator, eid-xor, ...
in_file = bs_enc_file in_file = bs_enc_file
...@@ -1174,7 +1166,6 @@ class SelfTest(IvasScriptsCommon.IvasScript): ...@@ -1174,7 +1166,6 @@ class SelfTest(IvasScriptsCommon.IvasScript):
return mode_dict return mode_dict
def run(self): def run(self):
self.parse_args() self.parse_args()
if self.args["list_conditions"] is True: if self.args["list_conditions"] is True:
...@@ -1542,7 +1533,9 @@ class SelfTest(IvasScriptsCommon.IvasScript): ...@@ -1542,7 +1533,9 @@ class SelfTest(IvasScriptsCommon.IvasScript):
logger_name="{}.testrunner".format(self.logger.name), logger_name="{}.testrunner".format(self.logger.name),
) )
test_runner.decoder_cmdline_options.extend(["-fr", f"{self.args['dut_fr']}"]) test_runner.decoder_cmdline_options.extend(
["-fr", f"{self.args['dut_fr']}"]
)
test_runner.set_flat_mode_list(run_dict) test_runner.set_flat_mode_list(run_dict)
test_runner.run() test_runner.run()
self.logger.console(" ") self.logger.console(" ")
......