Loading apps/decoder.c +80 −0 Original line number Diff line number Diff line Loading @@ -538,6 +538,13 @@ cleanup: IVAS_DEC_HRTF_HANDLE hHrtfTD; IVAS_DEC_GetHrtfHandle( hIvasDec, &hHrtfTD ); dealloc_HRTF_binary( hHrtfTD ); #ifdef HRTF_BINARY_FILE #ifdef FIX_MEMORY_COUNTING_HRTF_BINARY_FILE IVAS_DEC_HRTF_CREND_HANDLE hSetOfHRTF; IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF ); destroy_SetOfHRTF( hSetOfHRTF ); #endif #endif } IVAS_DEC_Close( &hIvasDec ); CustomLsReader_close( &hLsCustomReader ); Loading Loading @@ -586,6 +593,9 @@ static IVAS_DEC_AUDIO_CONFIG cmdline2config( char argv_to_upper[FILENAME_MAX]; strncpy( argv_to_upper, argv, sizeof( argv_to_upper ) - 1 ); #ifdef FIX_343_TO_UPPER argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; #endif to_upper( argv_to_upper ); if ( strcmp( argv_to_upper, "EXT" ) == 0 ) /* external renderer */ Loading Loading @@ -664,7 +674,9 @@ static bool parseCmdlIVAS_dec( char argv_to_upper[FILENAME_MAX]; #ifdef DEBUGGING float ftmp; #ifndef FIX_343_TO_UPPER char stmp[FILENAME_MAX]; #endif arg->forcedRendMode = IVAS_DEC_FORCE_REND_UNFORCED; arg->forceSubframeBinauralization = false; Loading Loading @@ -728,6 +740,9 @@ static bool parseCmdlIVAS_dec( while ( argv[i][0] == '-' ) { strncpy( argv_to_upper, argv[i], sizeof( argv_to_upper ) - 1 ); #ifdef FIX_343_TO_UPPER argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; #endif to_upper( argv_to_upper ); if ( strcmp( argv_to_upper, "-VOIP" ) == 0 ) Loading @@ -735,13 +750,21 @@ static bool parseCmdlIVAS_dec( arg->voipMode = 1; i++; } #ifdef FIX_343_TO_UPPER else if ( strcmp( argv_to_upper, "-VOIP_HF_ONLY=0" ) == 0 ) #else else if ( strcmp( to_upper( argv[i] ), "-VOIP_HF_ONLY=0" ) == 0 ) #endif { arg->voipMode = 1; arg->inputFormat = IVAS_DEC_INPUT_FORMAT_RTPDUMP; i++; } #ifdef FIX_343_TO_UPPER else if ( strcmp( argv_to_upper, "-VOIP_HF_ONLY=1" ) == 0 ) #else else if ( strcmp( to_upper( argv[i] ), "-VOIP_HF_ONLY=1" ) == 0 ) #endif { arg->voipMode = 1; arg->inputFormat = IVAS_DEC_INPUT_FORMAT_RTPDUMP_HF; Loading Loading @@ -814,8 +837,14 @@ static bool parseCmdlIVAS_dec( i++; if ( i < argc - 3 ) { #ifdef FIX_343_TO_UPPER strncpy( argv_to_upper, argv[i], sizeof( argv_to_upper ) - 1 ); argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; arg->forcedRendMode = parseForcedRendModeDec( argv_to_upper ); #else strncpy( stmp, argv[i], sizeof( stmp ) ); arg->forcedRendMode = parseForcedRendModeDec( stmp ); #endif i++; } } Loading Loading @@ -867,8 +896,30 @@ static bool parseCmdlIVAS_dec( usage_dec(); return false; } #ifdef FIX_343_TO_UPPER strncpy( argv_to_upper, argv[i + 1], sizeof( argv_to_upper ) - 1 ); argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; to_upper( argv_to_upper ); if ( strcmp( argv_to_upper, "REF" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF; } else if ( strcmp( argv_to_upper, "AVG" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_AVG; } else { fprintf( stderr, "Error: Invalid orientation tracking type %s \n\n", argv[i + 1] ); usage_dec(); return false; } #else char tmp[4]; strcpy( tmp, argv[i + 1] ); if ( strcmp( to_upper( tmp ), "REF" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF; Loading @@ -883,6 +934,7 @@ static bool parseCmdlIVAS_dec( usage_dec(); return false; } #endif i += 2; } else if ( strcmp( argv_to_upper, "-RENDER_CONFIG" ) == 0 ) Loading @@ -909,6 +961,33 @@ static bool parseCmdlIVAS_dec( return false; } #ifdef FIX_343_TO_UPPER strncpy( argv_to_upper, argv[i], sizeof( argv_to_upper ) - 1 ); argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; if ( ( strcmp( argv_to_upper, "CENTER" ) == 0 ) || ( strchr( argv_to_upper, 'C' ) != NULL ) ) { arg->no_diegetic_pan = 0.f; } else if ( ( strcmp( argv_to_upper, "LEFT" ) == 0 ) || ( strchr( argv_to_upper, 'L' ) != NULL ) ) { arg->no_diegetic_pan = -1.f; } else if ( ( strcmp( argv_to_upper, "RIGHT" ) == 0 ) || ( strchr( argv_to_upper, 'R' ) != NULL ) ) { arg->no_diegetic_pan = 1.f; } else { arg->no_diegetic_pan = (float) atof( argv_to_upper ); if ( arg->no_diegetic_pan > 1.0f || arg->no_diegetic_pan < -1.0f ) { fprintf( stderr, "Error: Incorrect value for panning option argument specified: %s\n\n", argv[i] ); usage_dec(); return false; } } #else char *param = to_upper( argv[i] ); if ( ( strcmp( param, "CENTER" ) == 0 ) || ( strchr( param, 'C' ) != NULL ) ) { Loading @@ -933,6 +1012,7 @@ static bool parseCmdlIVAS_dec( return false; } } #endif i++; } Loading apps/encoder.c +30 −1 Original line number Diff line number Diff line Loading @@ -884,7 +884,11 @@ static bool parseCmdlIVAS_enc( while ( i < argc - 4 ) { strncpy( argv_to_upper, argv[i], sizeof( argv_to_upper ) - 1 ); #ifdef FIX_343_TO_UPPER argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; #endif to_upper( argv_to_upper ); /*-----------------------------------------------------------------* * Bandwidth limitation *-----------------------------------------------------------------*/ Loading @@ -894,6 +898,9 @@ static bool parseCmdlIVAS_enc( arg->max_bwidth_user = true; strncpy( stmp, argv[i + 1], sizeof( stmp ) - 1 ); #ifdef FIX_343_TO_UPPER stmp[sizeof( stmp ) - 1] = '\0'; #endif to_upper( stmp ); if ( strcmp( stmp, "-NB" ) == 0 || strcmp( stmp, "NB" ) == 0 ) Loading Loading @@ -1081,7 +1088,9 @@ static bool parseCmdlIVAS_enc( if ( i < argc - 4 ) { strncpy( stmp, argv[i], sizeof( stmp ) ); #ifdef FIX_343_TO_UPPER stmp[sizeof( stmp ) - 1] = '\0'; #endif to_upper( argv[i] ); if ( strcmp( argv[i], "LO" ) == 0 ) { Loading Loading @@ -1369,6 +1378,25 @@ static bool parseCmdlIVAS_enc( if ( i < argc - 4 ) { #ifdef FIX_343_TO_UPPER if ( strcmp( argv[i], "5_1" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1; } else if ( strcmp( argv[i], "7_1" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_7_1; } else if ( strcmp( argv[i], "5_1_2" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1_2; } else if ( strcmp( argv[i], "5_1_4" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1_4; } else if ( strcmp( argv[i], "7_1_4" ) == 0 ) #else if ( strcmp( to_upper( argv[i] ), "5_1" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1; Loading @@ -1386,6 +1414,7 @@ static bool parseCmdlIVAS_enc( arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1_4; } else if ( strcmp( to_upper( argv[i] ), "7_1_4" ) == 0 ) #endif { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_7_1_4; } Loading apps/renderer.c +9 −0 Original line number Diff line number Diff line Loading @@ -490,6 +490,9 @@ static void setupWithSingleFormatInput( /* It is allowed on CLI to have no metadata for an ISM input - skip opening if string is empty or contains "NULL" */ char charBuf[FILENAME_MAX]; strncpy( charBuf, args.inMetadataFilePaths[i], min( FILENAME_MAX, RENDERER_MAX_CLI_ARG_LENGTH ) - 1 ); #ifdef FIX_343_TO_UPPER charBuf[min( FILENAME_MAX, RENDERER_MAX_CLI_ARG_LENGTH ) - 1] = '\0'; #endif to_upper( charBuf ); if ( isEmptyString( args.inMetadataFilePaths[i] ) || strncmp( charBuf, "NULL", 4 ) == 0 ) { Loading Loading @@ -1100,6 +1103,9 @@ static bool parseInConfig( /* First check if input is being set to scene description file - this is not covered by parseAudioConfig(). */ strncpy( charBuf, inFormatStr, sizeof( charBuf ) - 1 ); #ifdef FIX_343_TO_UPPER charBuf[sizeof( charBuf ) - 1] = '\0'; #endif to_upper( charBuf ); if ( strcmp( charBuf, "META" ) == 0 ) { Loading Loading @@ -1285,6 +1291,9 @@ static IVAS_REND_AudioConfig parseAudioConfig( charBuf[13] = '\0'; strncpy( charBuf, configString, sizeof( charBuf ) - 1 ); #ifdef FIX_343_TO_UPPER charBuf[sizeof( charBuf ) - 1] = '\0'; #endif to_upper( charBuf ); if ( ( strcmp( charBuf, "MONO" ) == 0 ) || ( strcmp( charBuf, "HOA0" ) == 0 ) || ( strcmp( charBuf, "SBA0" ) == 0 ) ) Loading lib_com/delay_comp.c +1 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ int32_t get_delay( const int32_t io_fs, /* i : input/output sampling frequency */ const IVAS_FORMAT ivas_format, /* i : IVAS format */ HANDLE_CLDFB_FILTER_BANK hCldfb, /* i : Handle of Cldfb analysis */ const int32_t binaural_latency_ns /* i : binauralization delay in ns */ const int32_t binaural_latency_ns /* i : binaural renderer HRTF delay in ns */ ) { int32_t delay = 0; Loading lib_com/ivas_cnst.h +6 −0 Original line number Diff line number Diff line Loading @@ -570,7 +570,13 @@ typedef enum #define NO_SYMB_GR_PRED_G 8 #define STEREO_DFT_RES_BW_MAX 66 /*Maximum number of bin for residual signal in each frame (res_cod_band_max == 6 in 48kHz)*/ #ifdef DFT_STEREO_SPAR_MIXING #define SBA_DIRAC_STEREO_NUM_BANDS 12 #else #define SBA_DIRAC_STEREO_NUM_BANDS 5 #endif #define SBA_DIRAC_NRG_SMOOTH_LONG 10 #define SBA_DIRAC_NRG_SMOOTH_SHORT 3 Loading Loading
apps/decoder.c +80 −0 Original line number Diff line number Diff line Loading @@ -538,6 +538,13 @@ cleanup: IVAS_DEC_HRTF_HANDLE hHrtfTD; IVAS_DEC_GetHrtfHandle( hIvasDec, &hHrtfTD ); dealloc_HRTF_binary( hHrtfTD ); #ifdef HRTF_BINARY_FILE #ifdef FIX_MEMORY_COUNTING_HRTF_BINARY_FILE IVAS_DEC_HRTF_CREND_HANDLE hSetOfHRTF; IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF ); destroy_SetOfHRTF( hSetOfHRTF ); #endif #endif } IVAS_DEC_Close( &hIvasDec ); CustomLsReader_close( &hLsCustomReader ); Loading Loading @@ -586,6 +593,9 @@ static IVAS_DEC_AUDIO_CONFIG cmdline2config( char argv_to_upper[FILENAME_MAX]; strncpy( argv_to_upper, argv, sizeof( argv_to_upper ) - 1 ); #ifdef FIX_343_TO_UPPER argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; #endif to_upper( argv_to_upper ); if ( strcmp( argv_to_upper, "EXT" ) == 0 ) /* external renderer */ Loading Loading @@ -664,7 +674,9 @@ static bool parseCmdlIVAS_dec( char argv_to_upper[FILENAME_MAX]; #ifdef DEBUGGING float ftmp; #ifndef FIX_343_TO_UPPER char stmp[FILENAME_MAX]; #endif arg->forcedRendMode = IVAS_DEC_FORCE_REND_UNFORCED; arg->forceSubframeBinauralization = false; Loading Loading @@ -728,6 +740,9 @@ static bool parseCmdlIVAS_dec( while ( argv[i][0] == '-' ) { strncpy( argv_to_upper, argv[i], sizeof( argv_to_upper ) - 1 ); #ifdef FIX_343_TO_UPPER argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; #endif to_upper( argv_to_upper ); if ( strcmp( argv_to_upper, "-VOIP" ) == 0 ) Loading @@ -735,13 +750,21 @@ static bool parseCmdlIVAS_dec( arg->voipMode = 1; i++; } #ifdef FIX_343_TO_UPPER else if ( strcmp( argv_to_upper, "-VOIP_HF_ONLY=0" ) == 0 ) #else else if ( strcmp( to_upper( argv[i] ), "-VOIP_HF_ONLY=0" ) == 0 ) #endif { arg->voipMode = 1; arg->inputFormat = IVAS_DEC_INPUT_FORMAT_RTPDUMP; i++; } #ifdef FIX_343_TO_UPPER else if ( strcmp( argv_to_upper, "-VOIP_HF_ONLY=1" ) == 0 ) #else else if ( strcmp( to_upper( argv[i] ), "-VOIP_HF_ONLY=1" ) == 0 ) #endif { arg->voipMode = 1; arg->inputFormat = IVAS_DEC_INPUT_FORMAT_RTPDUMP_HF; Loading Loading @@ -814,8 +837,14 @@ static bool parseCmdlIVAS_dec( i++; if ( i < argc - 3 ) { #ifdef FIX_343_TO_UPPER strncpy( argv_to_upper, argv[i], sizeof( argv_to_upper ) - 1 ); argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; arg->forcedRendMode = parseForcedRendModeDec( argv_to_upper ); #else strncpy( stmp, argv[i], sizeof( stmp ) ); arg->forcedRendMode = parseForcedRendModeDec( stmp ); #endif i++; } } Loading Loading @@ -867,8 +896,30 @@ static bool parseCmdlIVAS_dec( usage_dec(); return false; } #ifdef FIX_343_TO_UPPER strncpy( argv_to_upper, argv[i + 1], sizeof( argv_to_upper ) - 1 ); argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; to_upper( argv_to_upper ); if ( strcmp( argv_to_upper, "REF" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF; } else if ( strcmp( argv_to_upper, "AVG" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_AVG; } else { fprintf( stderr, "Error: Invalid orientation tracking type %s \n\n", argv[i + 1] ); usage_dec(); return false; } #else char tmp[4]; strcpy( tmp, argv[i + 1] ); if ( strcmp( to_upper( tmp ), "REF" ) == 0 ) { arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF; Loading @@ -883,6 +934,7 @@ static bool parseCmdlIVAS_dec( usage_dec(); return false; } #endif i += 2; } else if ( strcmp( argv_to_upper, "-RENDER_CONFIG" ) == 0 ) Loading @@ -909,6 +961,33 @@ static bool parseCmdlIVAS_dec( return false; } #ifdef FIX_343_TO_UPPER strncpy( argv_to_upper, argv[i], sizeof( argv_to_upper ) - 1 ); argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; if ( ( strcmp( argv_to_upper, "CENTER" ) == 0 ) || ( strchr( argv_to_upper, 'C' ) != NULL ) ) { arg->no_diegetic_pan = 0.f; } else if ( ( strcmp( argv_to_upper, "LEFT" ) == 0 ) || ( strchr( argv_to_upper, 'L' ) != NULL ) ) { arg->no_diegetic_pan = -1.f; } else if ( ( strcmp( argv_to_upper, "RIGHT" ) == 0 ) || ( strchr( argv_to_upper, 'R' ) != NULL ) ) { arg->no_diegetic_pan = 1.f; } else { arg->no_diegetic_pan = (float) atof( argv_to_upper ); if ( arg->no_diegetic_pan > 1.0f || arg->no_diegetic_pan < -1.0f ) { fprintf( stderr, "Error: Incorrect value for panning option argument specified: %s\n\n", argv[i] ); usage_dec(); return false; } } #else char *param = to_upper( argv[i] ); if ( ( strcmp( param, "CENTER" ) == 0 ) || ( strchr( param, 'C' ) != NULL ) ) { Loading @@ -933,6 +1012,7 @@ static bool parseCmdlIVAS_dec( return false; } } #endif i++; } Loading
apps/encoder.c +30 −1 Original line number Diff line number Diff line Loading @@ -884,7 +884,11 @@ static bool parseCmdlIVAS_enc( while ( i < argc - 4 ) { strncpy( argv_to_upper, argv[i], sizeof( argv_to_upper ) - 1 ); #ifdef FIX_343_TO_UPPER argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; #endif to_upper( argv_to_upper ); /*-----------------------------------------------------------------* * Bandwidth limitation *-----------------------------------------------------------------*/ Loading @@ -894,6 +898,9 @@ static bool parseCmdlIVAS_enc( arg->max_bwidth_user = true; strncpy( stmp, argv[i + 1], sizeof( stmp ) - 1 ); #ifdef FIX_343_TO_UPPER stmp[sizeof( stmp ) - 1] = '\0'; #endif to_upper( stmp ); if ( strcmp( stmp, "-NB" ) == 0 || strcmp( stmp, "NB" ) == 0 ) Loading Loading @@ -1081,7 +1088,9 @@ static bool parseCmdlIVAS_enc( if ( i < argc - 4 ) { strncpy( stmp, argv[i], sizeof( stmp ) ); #ifdef FIX_343_TO_UPPER stmp[sizeof( stmp ) - 1] = '\0'; #endif to_upper( argv[i] ); if ( strcmp( argv[i], "LO" ) == 0 ) { Loading Loading @@ -1369,6 +1378,25 @@ static bool parseCmdlIVAS_enc( if ( i < argc - 4 ) { #ifdef FIX_343_TO_UPPER if ( strcmp( argv[i], "5_1" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1; } else if ( strcmp( argv[i], "7_1" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_7_1; } else if ( strcmp( argv[i], "5_1_2" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1_2; } else if ( strcmp( argv[i], "5_1_4" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1_4; } else if ( strcmp( argv[i], "7_1_4" ) == 0 ) #else if ( strcmp( to_upper( argv[i] ), "5_1" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1; Loading @@ -1386,6 +1414,7 @@ static bool parseCmdlIVAS_enc( arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1_4; } else if ( strcmp( to_upper( argv[i] ), "7_1_4" ) == 0 ) #endif { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_7_1_4; } Loading
apps/renderer.c +9 −0 Original line number Diff line number Diff line Loading @@ -490,6 +490,9 @@ static void setupWithSingleFormatInput( /* It is allowed on CLI to have no metadata for an ISM input - skip opening if string is empty or contains "NULL" */ char charBuf[FILENAME_MAX]; strncpy( charBuf, args.inMetadataFilePaths[i], min( FILENAME_MAX, RENDERER_MAX_CLI_ARG_LENGTH ) - 1 ); #ifdef FIX_343_TO_UPPER charBuf[min( FILENAME_MAX, RENDERER_MAX_CLI_ARG_LENGTH ) - 1] = '\0'; #endif to_upper( charBuf ); if ( isEmptyString( args.inMetadataFilePaths[i] ) || strncmp( charBuf, "NULL", 4 ) == 0 ) { Loading Loading @@ -1100,6 +1103,9 @@ static bool parseInConfig( /* First check if input is being set to scene description file - this is not covered by parseAudioConfig(). */ strncpy( charBuf, inFormatStr, sizeof( charBuf ) - 1 ); #ifdef FIX_343_TO_UPPER charBuf[sizeof( charBuf ) - 1] = '\0'; #endif to_upper( charBuf ); if ( strcmp( charBuf, "META" ) == 0 ) { Loading Loading @@ -1285,6 +1291,9 @@ static IVAS_REND_AudioConfig parseAudioConfig( charBuf[13] = '\0'; strncpy( charBuf, configString, sizeof( charBuf ) - 1 ); #ifdef FIX_343_TO_UPPER charBuf[sizeof( charBuf ) - 1] = '\0'; #endif to_upper( charBuf ); if ( ( strcmp( charBuf, "MONO" ) == 0 ) || ( strcmp( charBuf, "HOA0" ) == 0 ) || ( strcmp( charBuf, "SBA0" ) == 0 ) ) Loading
lib_com/delay_comp.c +1 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ int32_t get_delay( const int32_t io_fs, /* i : input/output sampling frequency */ const IVAS_FORMAT ivas_format, /* i : IVAS format */ HANDLE_CLDFB_FILTER_BANK hCldfb, /* i : Handle of Cldfb analysis */ const int32_t binaural_latency_ns /* i : binauralization delay in ns */ const int32_t binaural_latency_ns /* i : binaural renderer HRTF delay in ns */ ) { int32_t delay = 0; Loading
lib_com/ivas_cnst.h +6 −0 Original line number Diff line number Diff line Loading @@ -570,7 +570,13 @@ typedef enum #define NO_SYMB_GR_PRED_G 8 #define STEREO_DFT_RES_BW_MAX 66 /*Maximum number of bin for residual signal in each frame (res_cod_band_max == 6 in 48kHz)*/ #ifdef DFT_STEREO_SPAR_MIXING #define SBA_DIRAC_STEREO_NUM_BANDS 12 #else #define SBA_DIRAC_STEREO_NUM_BANDS 5 #endif #define SBA_DIRAC_NRG_SMOOTH_LONG 10 #define SBA_DIRAC_NRG_SMOOTH_SHORT 3 Loading