Loading .gitlab-ci.yml +2 −0 Original line number Diff line number Diff line Loading @@ -481,6 +481,8 @@ codec-comparison-on-main-push: when: always paths: - ep_015.g192 # second wildcard is necessary to get encoder and no-PLC run logs - "CLANG*/logs*" sanitizer-test-mono: extends: .sanitizer-test-template Loading ci/run_scheduled_sanitizer_test.py +11 −3 Original line number Diff line number Diff line Loading @@ -93,12 +93,20 @@ def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True) subprocess.call(GENPATT_CMD.split()) # cleanup to avoid script errors # we want "logs" and "dec" subfolders to be empty -> delete and recreate them cleanup_folders = ["logs", "dec"] # we want "logs" and "dec" subfolders to be empty -> delete "dec" and rename "log" # to keep the log files from the first run with no frame losses folders_to_delete = ["dec"] folders_to_backup = ["logs"] for t in tests: for fol in cleanup_folders: for fol in folders_to_delete: for fi in pathlib.Path(t).joinpath(fol).iterdir(): fi.unlink() for fol in folders_to_backup: path = pathlib.Path(t).joinpath(fol) new_name = pathlib.Path(str(path) + "_noPLC") path.rename(new_name) # need empty log folder to avoid crashes path.mkdir() cmd_fec = cmd_no_fec + ["--decoder_only", "-f", EP_FILE] print("======== Script command line WITH plc: ========\n{}".format(" ".join(cmd_no_fec))) Loading lib_com/bitstream.c +0 −4 Original line number Diff line number Diff line Loading @@ -1974,11 +1974,7 @@ ivas_error preview_indices( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ) ); #else ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); #endif } } Loading lib_com/ivas_cnst.h +2 −16 Original line number Diff line number Diff line Loading @@ -166,10 +166,9 @@ typedef enum #define MAX_CICP_CHANNELS 16 /* max channels for loudspeaker layouts (16 for custom layouts)*/ #define MAX_OUTPUT_CHANNELS 16 /* Maximum number of output channels (HOA 3rd order) */ #define FOA_CHANNELS 4 /* number of FOA channels */ #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 */ #define MAX_NUM_OBJECTS 4 /* max. number of audio objects */ #define MAX_SCE MAX_NUM_OBJECTS /* max. number of SCEs */ Loading Loading @@ -854,20 +853,7 @@ typedef enum * DirAC Constants *----------------------------------------------------------------------------------*/ #ifdef FIX_DIRAC_CHANNELS #define DIRAC_MAX_ANA_CHANS FOA_CHANNELS /* Maximum number of channels for DirAC analysis */ #else #define DIRAC_MAX_ANA_CHANS 4 /* Maximum number of channels for DirAC analysis */ #endif #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT #define DIRAC_MAX_TRANS_CHANS 8 /* Maximum number of transport channels for DirAC */ #endif #define DIRAC_MIN_BITRATE_8_TRANS_CHAN IVAS_384k #define DIRAC_MIN_BITRATE_6_TRANS_CHAN IVAS_256k #define DIRAC_MIN_BITRATE_4_TRANS_CHAN IVAS_160k /* minimum bitrate for sending 4 transport channels (FOA) */ #define DIRAC_MIN_BITRATE_2_TRANS_CHAN IVAS_48k /* minimum bitrate for sending 2 transport channels (Stereo) */ #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 Loading @@ -934,7 +920,7 @@ typedef enum #define SPAR_CONFIG_BW FB #define IVAS_SPAR_MAX_CH (2*IVAS_MAX_SBA_ORDER + 2) /* FOA + planar HOA */ #define IVAS_SPAR_MAX_CH (FOA_CHANNELS + 2 * ( IVAS_MAX_SBA_ORDER - 1 )) /* FOA + planar HOA */ #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 lib_com/ivas_dirac_com.c +3 −98 Original line number Diff line number Diff line Loading @@ -60,11 +60,7 @@ ivas_error ivas_dirac_config( ) { IVAS_FORMAT ivas_format; #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT int16_t sba_order; #else int16_t sba_order, sba_planar; #endif int16_t *nSCE, *nCPE, *element_mode, *nchan_transport; int32_t ivas_total_brate; DIRAC_CONFIG_DATA_HANDLE hConfig; Loading @@ -87,9 +83,6 @@ ivas_error ivas_dirac_config( element_mode = &( (Encoder_Struct *) st_ivas )->hEncoderConfig->element_mode_init; nchan_transport = &( (Encoder_Struct *) st_ivas )->nchan_transport; sba_order = ( (Encoder_Struct *) st_ivas )->sba_analysis_order; #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar; #endif ivas_total_brate = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->ivas_total_brate; Fs = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->input_Fs; band_grouping = ( (Encoder_Struct *) st_ivas )->hDirAC->band_grouping; Loading @@ -114,9 +107,6 @@ ivas_error ivas_dirac_config( element_mode = &( (Decoder_Struct *) st_ivas )->element_mode_init; nchan_transport = &( (Decoder_Struct *) st_ivas )->nchan_transport; sba_order = ( (Decoder_Struct *) st_ivas )->sba_analysis_order; #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar; #endif ivas_total_brate = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->ivas_total_brate; Fs = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->output_Fs; band_grouping = ( (Decoder_Struct *) st_ivas )->hDirAC->band_grouping; Loading Loading @@ -150,12 +140,7 @@ ivas_error ivas_dirac_config( if ( ivas_format == SBA_FORMAT ) /* skip for MASA decoder */ { #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_planar, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -319,9 +304,6 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* i/o: element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT const int16_t sba_planar, /* i : SBA planar flag */ #endif const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t nbands /* i : number of frequency bands */ ) Loading Loading @@ -436,11 +418,7 @@ ivas_error ivas_dirac_sba_config( if ( sba_total_brate > IVAS_SID_5k2 ) { #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); #else *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); #endif } else if ( sba_total_brate == IVAS_SID_5k2 ) { Loading Loading @@ -581,79 +559,6 @@ ivas_error ivas_dirac_sba_config( return error; } #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*------------------------------------------------------------------------- * ivas_dirac_getNumTransportChannels() * * *------------------------------------------------------------------------*/ /*! r: number of IVAS transport channels */ int16_t ivas_dirac_getNumTransportChannels( const int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : SBA order */ const int16_t sba_planar /* i : SBA planar flag */ ) { int16_t num_channels; num_channels = 0; if ( sba_total_brate >= DIRAC_MIN_BITRATE_8_TRANS_CHAN ) { switch ( sba_order ) { case 3: num_channels = sba_planar ? 7 : 8; break; case 2: num_channels = sba_planar ? 5 : 6; break; case 1: num_channels = sba_planar ? 3 : 4; break; default: assert( 0 && "Order not supported!" ); } } else if ( sba_total_brate >= DIRAC_MIN_BITRATE_6_TRANS_CHAN ) { switch ( sba_order ) { case 3: case 2: num_channels = sba_planar ? 5 : 6; break; case 1: num_channels = sba_planar ? 3 : 4; break; default: assert( 0 && "Order not supported!" ); } } else if ( sba_total_brate >= DIRAC_MIN_BITRATE_4_TRANS_CHAN ) { if ( sba_planar ) { num_channels = 3; } else { num_channels = 4; } } else if ( sba_total_brate >= DIRAC_MIN_BITRATE_2_TRANS_CHAN ) { num_channels = 2; } else { num_channels = 1; } return num_channels; } #endif /*------------------------------------------------------------------------- * computeDirectionVectors() Loading Loading
.gitlab-ci.yml +2 −0 Original line number Diff line number Diff line Loading @@ -481,6 +481,8 @@ codec-comparison-on-main-push: when: always paths: - ep_015.g192 # second wildcard is necessary to get encoder and no-PLC run logs - "CLANG*/logs*" sanitizer-test-mono: extends: .sanitizer-test-template Loading
ci/run_scheduled_sanitizer_test.py +11 −3 Original line number Diff line number Diff line Loading @@ -93,12 +93,20 @@ def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True) subprocess.call(GENPATT_CMD.split()) # cleanup to avoid script errors # we want "logs" and "dec" subfolders to be empty -> delete and recreate them cleanup_folders = ["logs", "dec"] # we want "logs" and "dec" subfolders to be empty -> delete "dec" and rename "log" # to keep the log files from the first run with no frame losses folders_to_delete = ["dec"] folders_to_backup = ["logs"] for t in tests: for fol in cleanup_folders: for fol in folders_to_delete: for fi in pathlib.Path(t).joinpath(fol).iterdir(): fi.unlink() for fol in folders_to_backup: path = pathlib.Path(t).joinpath(fol) new_name = pathlib.Path(str(path) + "_noPLC") path.rename(new_name) # need empty log folder to avoid crashes path.mkdir() cmd_fec = cmd_no_fec + ["--decoder_only", "-f", EP_FILE] print("======== Script command line WITH plc: ========\n{}".format(" ".join(cmd_no_fec))) Loading
lib_com/bitstream.c +0 −4 Original line number Diff line number Diff line Loading @@ -1974,11 +1974,7 @@ ivas_error preview_indices( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ) ); #else ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); #endif } } Loading
lib_com/ivas_cnst.h +2 −16 Original line number Diff line number Diff line Loading @@ -166,10 +166,9 @@ typedef enum #define MAX_CICP_CHANNELS 16 /* max channels for loudspeaker layouts (16 for custom layouts)*/ #define MAX_OUTPUT_CHANNELS 16 /* Maximum number of output channels (HOA 3rd order) */ #define FOA_CHANNELS 4 /* number of FOA channels */ #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 */ #define MAX_NUM_OBJECTS 4 /* max. number of audio objects */ #define MAX_SCE MAX_NUM_OBJECTS /* max. number of SCEs */ Loading Loading @@ -854,20 +853,7 @@ typedef enum * DirAC Constants *----------------------------------------------------------------------------------*/ #ifdef FIX_DIRAC_CHANNELS #define DIRAC_MAX_ANA_CHANS FOA_CHANNELS /* Maximum number of channels for DirAC analysis */ #else #define DIRAC_MAX_ANA_CHANS 4 /* Maximum number of channels for DirAC analysis */ #endif #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT #define DIRAC_MAX_TRANS_CHANS 8 /* Maximum number of transport channels for DirAC */ #endif #define DIRAC_MIN_BITRATE_8_TRANS_CHAN IVAS_384k #define DIRAC_MIN_BITRATE_6_TRANS_CHAN IVAS_256k #define DIRAC_MIN_BITRATE_4_TRANS_CHAN IVAS_160k /* minimum bitrate for sending 4 transport channels (FOA) */ #define DIRAC_MIN_BITRATE_2_TRANS_CHAN IVAS_48k /* minimum bitrate for sending 2 transport channels (Stereo) */ #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 Loading @@ -934,7 +920,7 @@ typedef enum #define SPAR_CONFIG_BW FB #define IVAS_SPAR_MAX_CH (2*IVAS_MAX_SBA_ORDER + 2) /* FOA + planar HOA */ #define IVAS_SPAR_MAX_CH (FOA_CHANNELS + 2 * ( IVAS_MAX_SBA_ORDER - 1 )) /* FOA + planar HOA */ #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
lib_com/ivas_dirac_com.c +3 −98 Original line number Diff line number Diff line Loading @@ -60,11 +60,7 @@ ivas_error ivas_dirac_config( ) { IVAS_FORMAT ivas_format; #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT int16_t sba_order; #else int16_t sba_order, sba_planar; #endif int16_t *nSCE, *nCPE, *element_mode, *nchan_transport; int32_t ivas_total_brate; DIRAC_CONFIG_DATA_HANDLE hConfig; Loading @@ -87,9 +83,6 @@ ivas_error ivas_dirac_config( element_mode = &( (Encoder_Struct *) st_ivas )->hEncoderConfig->element_mode_init; nchan_transport = &( (Encoder_Struct *) st_ivas )->nchan_transport; sba_order = ( (Encoder_Struct *) st_ivas )->sba_analysis_order; #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar; #endif ivas_total_brate = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->ivas_total_brate; Fs = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->input_Fs; band_grouping = ( (Encoder_Struct *) st_ivas )->hDirAC->band_grouping; Loading @@ -114,9 +107,6 @@ ivas_error ivas_dirac_config( element_mode = &( (Decoder_Struct *) st_ivas )->element_mode_init; nchan_transport = &( (Decoder_Struct *) st_ivas )->nchan_transport; sba_order = ( (Decoder_Struct *) st_ivas )->sba_analysis_order; #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar; #endif ivas_total_brate = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->ivas_total_brate; Fs = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->output_Fs; band_grouping = ( (Decoder_Struct *) st_ivas )->hDirAC->band_grouping; Loading Loading @@ -150,12 +140,7 @@ ivas_error ivas_dirac_config( if ( ivas_format == SBA_FORMAT ) /* skip for MASA decoder */ { #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_planar, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -319,9 +304,6 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* i/o: element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT const int16_t sba_planar, /* i : SBA planar flag */ #endif const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t nbands /* i : number of frequency bands */ ) Loading Loading @@ -436,11 +418,7 @@ ivas_error ivas_dirac_sba_config( if ( sba_total_brate > IVAS_SID_5k2 ) { #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); #else *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); #endif } else if ( sba_total_brate == IVAS_SID_5k2 ) { Loading Loading @@ -581,79 +559,6 @@ ivas_error ivas_dirac_sba_config( return error; } #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*------------------------------------------------------------------------- * ivas_dirac_getNumTransportChannels() * * *------------------------------------------------------------------------*/ /*! r: number of IVAS transport channels */ int16_t ivas_dirac_getNumTransportChannels( const int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : SBA order */ const int16_t sba_planar /* i : SBA planar flag */ ) { int16_t num_channels; num_channels = 0; if ( sba_total_brate >= DIRAC_MIN_BITRATE_8_TRANS_CHAN ) { switch ( sba_order ) { case 3: num_channels = sba_planar ? 7 : 8; break; case 2: num_channels = sba_planar ? 5 : 6; break; case 1: num_channels = sba_planar ? 3 : 4; break; default: assert( 0 && "Order not supported!" ); } } else if ( sba_total_brate >= DIRAC_MIN_BITRATE_6_TRANS_CHAN ) { switch ( sba_order ) { case 3: case 2: num_channels = sba_planar ? 5 : 6; break; case 1: num_channels = sba_planar ? 3 : 4; break; default: assert( 0 && "Order not supported!" ); } } else if ( sba_total_brate >= DIRAC_MIN_BITRATE_4_TRANS_CHAN ) { if ( sba_planar ) { num_channels = 3; } else { num_channels = 4; } } else if ( sba_total_brate >= DIRAC_MIN_BITRATE_2_TRANS_CHAN ) { num_channels = 2; } else { num_channels = 1; } return num_channels; } #endif /*------------------------------------------------------------------------- * computeDirectionVectors() Loading