Loading apps/encoder.c +13 −0 Original line number Diff line number Diff line Loading @@ -1130,18 +1130,31 @@ static bool parseCmdlIVAS_enc( { strncpy( stmp, argv[i], sizeof( stmp ) ); stmp[sizeof( stmp ) - 1] = '\0'; #ifdef FIX_411_EVS_BE_TESTS_ON_WINDOWS_FAILING to_upper( stmp ); if ( strcmp( stmp, "LO" ) == 0 ) #else to_upper( argv[i] ); if ( strcmp( argv[i], "LO" ) == 0 ) #endif { arg->caConfig.fec_indicator = IVAS_ENC_FEC_LO; } #ifdef FIX_411_EVS_BE_TESTS_ON_WINDOWS_FAILING else if ( strcmp( stmp, "HI" ) == 0 ) #else else if ( strcmp( argv[i], "HI" ) == 0 ) #endif { arg->caConfig.fec_indicator = IVAS_ENC_FEC_HI; } else { #ifdef FIX_411_EVS_BE_TESTS_ON_WINDOWS_FAILING arg->ca_config_file = argv[i]; #else arg->ca_config_file = stmp; #endif } i++; Loading apps/renderer.c +3 −3 Original line number Diff line number Diff line Loading @@ -1787,7 +1787,7 @@ IsmPositionProvider *IsmPositionProvider_open( IsmPositionProvider *ipp; uint16_t i; ipp = (IsmPositionProvider *) malloc_( sizeof( IsmPositionProvider ) ); ipp = (IsmPositionProvider *) malloc( sizeof( IsmPositionProvider ) ); ipp->frameCounter = 0; ipp->numObjects = 0; Loading Loading @@ -2182,8 +2182,8 @@ static void parseIsm( if ( parseUint32( line, &numberOfObjectPositionsToRead ) == 0 ) { positionProvider->numPositions[idx] = numberOfObjectPositionsToRead; positionProvider->positions[idx] = malloc_( numberOfObjectPositionsToRead * sizeof( IVAS_REND_AudioObjectPosition ) ); positionProvider->positionDurations[idx] = malloc_( numberOfObjectPositionsToRead * sizeof( uint16_t ) ); positionProvider->positions[idx] = malloc( numberOfObjectPositionsToRead * sizeof( IVAS_REND_AudioObjectPosition ) ); positionProvider->positionDurations[idx] = malloc( numberOfObjectPositionsToRead * sizeof( uint16_t ) ); for ( i = 0; i < numberOfObjectPositionsToRead; ++i ) { Loading ci/smoke_test.sh +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ if [ $BUILD -eq 1 ];then make clean # Replace free -> free_, malloc -> malloc_, calloc -> calloc_ ./scripts/prepare_mem_dryrun.py python3 ./scripts/prepare_mem_dryrun.py # Enable WMOPS and disable DEBUGGING sed -i.bak -e "s/\/\*\s*\(#define\s*WMOPS\)\s*\*\//\1/g" lib_com/options.h Loading lib_com/bitstream.c +25 −15 Original line number Diff line number Diff line Loading @@ -1914,7 +1914,11 @@ ivas_error preview_indices( k = IVAS_FORMAT_SIGNALING_NBITS; if ( st_ivas->ivas_format == MASA_FORMAT ) { #ifdef COMBINED_FORMAT_SIGNALING k = IVAS_FORMAT_SIGNALING_NBITS_EXTENDED; #else k = IVAS_FORMAT_SIGNALING_NBITS_SBA; #endif } if ( total_brate < MIN_BRATE_MDCT_STEREO ) Loading Loading @@ -1954,9 +1958,15 @@ ivas_error preview_indices( else if ( st_ivas->ivas_format == SBA_FORMAT ) { /* Read SBA planar flag and SBA order */ #ifdef COMBINED_FORMAT_SIGNALING st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED] == 1 ); st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + 2] == 1 ); st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + 1] == 1 ); #else st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA] == 1 ); st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 ); st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 ); #endif st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); Loading lib_com/ivas_cnst.h 100644 → 100755 +38 −0 Original line number Diff line number Diff line Loading @@ -78,7 +78,11 @@ typedef enum *----------------------------------------------------------------------------------*/ #define IVAS_FORMAT_SIGNALING_NBITS 2 /* number of bits for signaling the IVAS format */ #ifdef COMBINED_FORMAT_SIGNALING #define IVAS_FORMAT_SIGNALING_NBITS_EXTENDED ( IVAS_FORMAT_SIGNALING_NBITS + 1 ) #else #define IVAS_FORMAT_SIGNALING_NBITS_SBA ( IVAS_FORMAT_SIGNALING_NBITS + 1 ) #endif /*----------------------------------------------------------------------------------* Loading Loading @@ -170,6 +174,10 @@ typedef enum #define BINAURAL_CHANNELS 2 /* number of channels for binaural output configuration */ #define CPE_CHANNELS 2 /* number of CPE (stereo) channels */ #define FOA_CHANNELS 4 /* number of FOA channels */ #ifdef HODIRAC #define HOA2_CHANNELS 9 #endif #define MAX_NUM_OBJECTS 4 /* max. number of audio objects */ #define MAX_SCE MAX_NUM_OBJECTS /* max. number of SCEs */ Loading Loading @@ -833,6 +841,10 @@ enum fea_names #define SNS_MSVQ_NSTAGES_TCX10 3 #define SNS_MSVQ_NSTAGES_SIDE 2 #endif #ifdef FIX_445_SNS_BUGFIXES #define SNS_CDBKS_BITS_4_FRAC 12 #define SNS_MEANS_BITS_4_FRAC 14 #endif #define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f #define MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME 2 * FRAMES_PER_SEC Loading Loading @@ -864,6 +876,9 @@ typedef enum { // VE: this should be renamed to e.g. N_SPATIAL_SUBFRAMES #define MAX_PARAM_SPATIAL_SUBFRAMES 4 /* Maximum number of subframes for parameteric spatial coding */ #define L_SPATIAL_SUBFR_48k (L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES) #ifdef FIX_355_REFACTOR_PARAMBIN_TO_5MS #define CLDFB_SLOTS_PER_SUBFRAME ( CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES ) /* Number of CLDFB slots per subframe */ #endif /*----------------------------------------------------------------------------------* Loading Loading @@ -894,7 +909,11 @@ typedef enum * DirAC Constants *----------------------------------------------------------------------------------*/ #ifdef HODIRAC #define DIRAC_MAX_ANA_CHANS 11 /* Maximum number of channels for DirAC analysis */ #else #define DIRAC_MAX_ANA_CHANS FOA_CHANNELS /* Maximum number of channels for DirAC analysis */ #endif #define DIRAC_NUM_DIMS 3 /* number of directions to estimate (X,Y,Z) */ #define DIRAC_MAX_NBANDS 12 /* Maximum number of frequency bands for the DirAC Side Parameter decoding */ Loading @@ -908,6 +927,11 @@ typedef enum #define DIRAC_NO_FB_BANDS_MAX MDFT_FB_BANDS_240 #define DELAY_DIRAC_ENC_CMP_NS_PARAM_ISM ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) /* == 12 ms */ #ifdef HODIRAC #define DIRAC_HO_NUMSECTORS 2 #define NUM_ANA_SECTORS 2 #endif /* DirAC renderer setup */ typedef enum Loading Loading @@ -966,7 +990,17 @@ typedef enum #define SPAR_CONFIG_BW FB #ifndef SPAR_TUNING #define IVAS_SPAR_MAX_CH (FOA_CHANNELS + 2 * ( IVAS_MAX_SBA_ORDER - 1 )) /* FOA + planar HOA */ #else #define IVAS_SPAR_MAX_CH ((( IVAS_MAX_SBA_ORDER ) * ( IVAS_MAX_SBA_ORDER )) + 2) /* HOA2 + pHOA3*/ #define IVAS_HBR_MAX_DECOR_CHS (2) #endif #ifdef HODIRAC #define IVAS_SPAR_MAX_FB_IN_CHAN 11 #endif #define IVAS_SPAR_P_LOWERTRI ((IVAS_SPAR_MAX_CH - 1) * (IVAS_SPAR_MAX_CH - 2)) >> 1 #define IVAS_SPAR_MAX_C_COEFF (IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS) * ( IVAS_SPAR_MAX_DMX_CHS - 1) Loading Loading @@ -1175,7 +1209,11 @@ enum #define MASA_ANGLE_TOLERANCE 0.5f #define MASA_LIMIT_NO_BANDS_SUR_COH 8 #define MINIMUM_BIT_BUDGET_NORMAL_META 100 #ifdef HODIRAC #define DIFF_DFRATIO_2BIT_LIMIT_IDX_HODIRAC 4 #endif #define DIFF_DFRATIO_2BIT_LIMIT_IDX 3 #define DIFF_DFRATIO_1BIT_LIMIT_IDX 6 #define DIFF_EC_HUFF_BAND_LIMIT 8 #define DIFF_EC_HUFF_GR0_LIMIT 8 Loading Loading
apps/encoder.c +13 −0 Original line number Diff line number Diff line Loading @@ -1130,18 +1130,31 @@ static bool parseCmdlIVAS_enc( { strncpy( stmp, argv[i], sizeof( stmp ) ); stmp[sizeof( stmp ) - 1] = '\0'; #ifdef FIX_411_EVS_BE_TESTS_ON_WINDOWS_FAILING to_upper( stmp ); if ( strcmp( stmp, "LO" ) == 0 ) #else to_upper( argv[i] ); if ( strcmp( argv[i], "LO" ) == 0 ) #endif { arg->caConfig.fec_indicator = IVAS_ENC_FEC_LO; } #ifdef FIX_411_EVS_BE_TESTS_ON_WINDOWS_FAILING else if ( strcmp( stmp, "HI" ) == 0 ) #else else if ( strcmp( argv[i], "HI" ) == 0 ) #endif { arg->caConfig.fec_indicator = IVAS_ENC_FEC_HI; } else { #ifdef FIX_411_EVS_BE_TESTS_ON_WINDOWS_FAILING arg->ca_config_file = argv[i]; #else arg->ca_config_file = stmp; #endif } i++; Loading
apps/renderer.c +3 −3 Original line number Diff line number Diff line Loading @@ -1787,7 +1787,7 @@ IsmPositionProvider *IsmPositionProvider_open( IsmPositionProvider *ipp; uint16_t i; ipp = (IsmPositionProvider *) malloc_( sizeof( IsmPositionProvider ) ); ipp = (IsmPositionProvider *) malloc( sizeof( IsmPositionProvider ) ); ipp->frameCounter = 0; ipp->numObjects = 0; Loading Loading @@ -2182,8 +2182,8 @@ static void parseIsm( if ( parseUint32( line, &numberOfObjectPositionsToRead ) == 0 ) { positionProvider->numPositions[idx] = numberOfObjectPositionsToRead; positionProvider->positions[idx] = malloc_( numberOfObjectPositionsToRead * sizeof( IVAS_REND_AudioObjectPosition ) ); positionProvider->positionDurations[idx] = malloc_( numberOfObjectPositionsToRead * sizeof( uint16_t ) ); positionProvider->positions[idx] = malloc( numberOfObjectPositionsToRead * sizeof( IVAS_REND_AudioObjectPosition ) ); positionProvider->positionDurations[idx] = malloc( numberOfObjectPositionsToRead * sizeof( uint16_t ) ); for ( i = 0; i < numberOfObjectPositionsToRead; ++i ) { Loading
ci/smoke_test.sh +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ if [ $BUILD -eq 1 ];then make clean # Replace free -> free_, malloc -> malloc_, calloc -> calloc_ ./scripts/prepare_mem_dryrun.py python3 ./scripts/prepare_mem_dryrun.py # Enable WMOPS and disable DEBUGGING sed -i.bak -e "s/\/\*\s*\(#define\s*WMOPS\)\s*\*\//\1/g" lib_com/options.h Loading
lib_com/bitstream.c +25 −15 Original line number Diff line number Diff line Loading @@ -1914,7 +1914,11 @@ ivas_error preview_indices( k = IVAS_FORMAT_SIGNALING_NBITS; if ( st_ivas->ivas_format == MASA_FORMAT ) { #ifdef COMBINED_FORMAT_SIGNALING k = IVAS_FORMAT_SIGNALING_NBITS_EXTENDED; #else k = IVAS_FORMAT_SIGNALING_NBITS_SBA; #endif } if ( total_brate < MIN_BRATE_MDCT_STEREO ) Loading Loading @@ -1954,9 +1958,15 @@ ivas_error preview_indices( else if ( st_ivas->ivas_format == SBA_FORMAT ) { /* Read SBA planar flag and SBA order */ #ifdef COMBINED_FORMAT_SIGNALING st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED] == 1 ); st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + 2] == 1 ); st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + 1] == 1 ); #else st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA] == 1 ); st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 ); st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 ); #endif st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); Loading
lib_com/ivas_cnst.h 100644 → 100755 +38 −0 Original line number Diff line number Diff line Loading @@ -78,7 +78,11 @@ typedef enum *----------------------------------------------------------------------------------*/ #define IVAS_FORMAT_SIGNALING_NBITS 2 /* number of bits for signaling the IVAS format */ #ifdef COMBINED_FORMAT_SIGNALING #define IVAS_FORMAT_SIGNALING_NBITS_EXTENDED ( IVAS_FORMAT_SIGNALING_NBITS + 1 ) #else #define IVAS_FORMAT_SIGNALING_NBITS_SBA ( IVAS_FORMAT_SIGNALING_NBITS + 1 ) #endif /*----------------------------------------------------------------------------------* Loading Loading @@ -170,6 +174,10 @@ typedef enum #define BINAURAL_CHANNELS 2 /* number of channels for binaural output configuration */ #define CPE_CHANNELS 2 /* number of CPE (stereo) channels */ #define FOA_CHANNELS 4 /* number of FOA channels */ #ifdef HODIRAC #define HOA2_CHANNELS 9 #endif #define MAX_NUM_OBJECTS 4 /* max. number of audio objects */ #define MAX_SCE MAX_NUM_OBJECTS /* max. number of SCEs */ Loading Loading @@ -833,6 +841,10 @@ enum fea_names #define SNS_MSVQ_NSTAGES_TCX10 3 #define SNS_MSVQ_NSTAGES_SIDE 2 #endif #ifdef FIX_445_SNS_BUGFIXES #define SNS_CDBKS_BITS_4_FRAC 12 #define SNS_MEANS_BITS_4_FRAC 14 #endif #define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f #define MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME 2 * FRAMES_PER_SEC Loading Loading @@ -864,6 +876,9 @@ typedef enum { // VE: this should be renamed to e.g. N_SPATIAL_SUBFRAMES #define MAX_PARAM_SPATIAL_SUBFRAMES 4 /* Maximum number of subframes for parameteric spatial coding */ #define L_SPATIAL_SUBFR_48k (L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES) #ifdef FIX_355_REFACTOR_PARAMBIN_TO_5MS #define CLDFB_SLOTS_PER_SUBFRAME ( CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES ) /* Number of CLDFB slots per subframe */ #endif /*----------------------------------------------------------------------------------* Loading Loading @@ -894,7 +909,11 @@ typedef enum * DirAC Constants *----------------------------------------------------------------------------------*/ #ifdef HODIRAC #define DIRAC_MAX_ANA_CHANS 11 /* Maximum number of channels for DirAC analysis */ #else #define DIRAC_MAX_ANA_CHANS FOA_CHANNELS /* Maximum number of channels for DirAC analysis */ #endif #define DIRAC_NUM_DIMS 3 /* number of directions to estimate (X,Y,Z) */ #define DIRAC_MAX_NBANDS 12 /* Maximum number of frequency bands for the DirAC Side Parameter decoding */ Loading @@ -908,6 +927,11 @@ typedef enum #define DIRAC_NO_FB_BANDS_MAX MDFT_FB_BANDS_240 #define DELAY_DIRAC_ENC_CMP_NS_PARAM_ISM ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) /* == 12 ms */ #ifdef HODIRAC #define DIRAC_HO_NUMSECTORS 2 #define NUM_ANA_SECTORS 2 #endif /* DirAC renderer setup */ typedef enum Loading Loading @@ -966,7 +990,17 @@ typedef enum #define SPAR_CONFIG_BW FB #ifndef SPAR_TUNING #define IVAS_SPAR_MAX_CH (FOA_CHANNELS + 2 * ( IVAS_MAX_SBA_ORDER - 1 )) /* FOA + planar HOA */ #else #define IVAS_SPAR_MAX_CH ((( IVAS_MAX_SBA_ORDER ) * ( IVAS_MAX_SBA_ORDER )) + 2) /* HOA2 + pHOA3*/ #define IVAS_HBR_MAX_DECOR_CHS (2) #endif #ifdef HODIRAC #define IVAS_SPAR_MAX_FB_IN_CHAN 11 #endif #define IVAS_SPAR_P_LOWERTRI ((IVAS_SPAR_MAX_CH - 1) * (IVAS_SPAR_MAX_CH - 2)) >> 1 #define IVAS_SPAR_MAX_C_COEFF (IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS) * ( IVAS_SPAR_MAX_DMX_CHS - 1) Loading Loading @@ -1175,7 +1209,11 @@ enum #define MASA_ANGLE_TOLERANCE 0.5f #define MASA_LIMIT_NO_BANDS_SUR_COH 8 #define MINIMUM_BIT_BUDGET_NORMAL_META 100 #ifdef HODIRAC #define DIFF_DFRATIO_2BIT_LIMIT_IDX_HODIRAC 4 #endif #define DIFF_DFRATIO_2BIT_LIMIT_IDX 3 #define DIFF_DFRATIO_1BIT_LIMIT_IDX 6 #define DIFF_EC_HUFF_BAND_LIMIT 8 #define DIFF_EC_HUFF_GR0_LIMIT 8 Loading