Loading lib_com/bitstream.c +4 −1 Original line number Diff line number Diff line Loading @@ -1981,7 +1981,6 @@ ivas_error preview_indices( } else if ( st_ivas->ivas_format == SBA_FORMAT ) { /* Read SBA planar flag and SBA order */ 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 ); Loading @@ -1989,7 +1988,11 @@ 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 +9 −0 Original line number Diff line number Diff line Loading @@ -165,7 +165,9 @@ typedef enum #define HEAD_ROTATION_HOA_ORDER 3 /* HOA 3rd order */ #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) */ #ifndef FIX_CREND_CHANNELS #define IVAS_MAX_NUM_CH 16 /* == MAX_OUTPUT_CHANNELS */ #endif #define FOA_CHANNELS 4 /* number of FOA channels */ Loading Loading @@ -867,8 +869,15 @@ 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 Loading lib_com/ivas_dirac_com.c +15 −5 Original line number Diff line number Diff line Loading @@ -142,8 +142,12 @@ 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 @@ -307,7 +311,9 @@ 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 @@ -430,7 +436,11 @@ ivas_error ivas_dirac_sba_config( if ( sba_total_brate > IVAS_SID_4k4 ) #endif { #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 } #ifdef ALIGN_SID_SIZE else if ( sba_total_brate == IVAS_SID_5k2 ) Loading Loading @@ -575,7 +585,7 @@ ivas_error ivas_dirac_sba_config( return error; } #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*------------------------------------------------------------------------- * ivas_dirac_getNumTransportChannels() * Loading Loading @@ -647,7 +657,7 @@ int16_t ivas_dirac_getNumTransportChannels( return num_channels; } #endif /*------------------------------------------------------------------------- * computeDirectionVectors() Loading lib_com/ivas_prot.h +12 −2 Original line number Diff line number Diff line Loading @@ -3033,8 +3033,10 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ int16_t *element_mode, /* o : element mode of the core coder */ int16_t *element_mode /* o : element mode of the core coder */ #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT const SBA_MODE sba_mode /* i : SBA mode */ #endif ); ivas_error ivas_sba_dec_reconfigure( Loading Loading @@ -3173,18 +3175,21 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* 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 */ ); #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*! 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 */ ); #endif ivas_error ivas_dirac_dec_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); Loading Loading @@ -3827,7 +3832,12 @@ int16_t ivas_get_spar_table_idx( int16_t *ind /* o : indice */ ); #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT /*! r: number of transport channels */ int16_t ivas_get_sba_num_TCs( #else int16_t ivas_get_spar_num_TCs( #endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : IVAS SBA order */ ); Loading lib_com/ivas_sba_config.c +9 −2 Original line number Diff line number Diff line Loading @@ -87,8 +87,11 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA Planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ int16_t *element_mode, /* o : element mode of the core coder */ int16_t *element_mode /* o : element mode of the core coder */ #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT , const SBA_MODE sba_mode /* i : SBA mode */ #endif ) { if ( ( sba_order < 0 ) && ( nb_channels < 0 ) ) Loading Loading @@ -117,6 +120,9 @@ void ivas_sba_config( if ( nchan_transport != NULL ) { #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); #else if ( sba_mode == SBA_MODE_SPAR ) { *nchan_transport = ivas_get_spar_num_TCs( sba_total_brate, sba_order ); Loading @@ -125,6 +131,7 @@ void ivas_sba_config( { *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); } #endif } /* Configure core coder number of elements*/ Loading Loading
lib_com/bitstream.c +4 −1 Original line number Diff line number Diff line Loading @@ -1981,7 +1981,6 @@ ivas_error preview_indices( } else if ( st_ivas->ivas_format == SBA_FORMAT ) { /* Read SBA planar flag and SBA order */ 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 ); Loading @@ -1989,7 +1988,11 @@ 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 +9 −0 Original line number Diff line number Diff line Loading @@ -165,7 +165,9 @@ typedef enum #define HEAD_ROTATION_HOA_ORDER 3 /* HOA 3rd order */ #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) */ #ifndef FIX_CREND_CHANNELS #define IVAS_MAX_NUM_CH 16 /* == MAX_OUTPUT_CHANNELS */ #endif #define FOA_CHANNELS 4 /* number of FOA channels */ Loading Loading @@ -867,8 +869,15 @@ 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 Loading
lib_com/ivas_dirac_com.c +15 −5 Original line number Diff line number Diff line Loading @@ -142,8 +142,12 @@ 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 @@ -307,7 +311,9 @@ 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 @@ -430,7 +436,11 @@ ivas_error ivas_dirac_sba_config( if ( sba_total_brate > IVAS_SID_4k4 ) #endif { #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 } #ifdef ALIGN_SID_SIZE else if ( sba_total_brate == IVAS_SID_5k2 ) Loading Loading @@ -575,7 +585,7 @@ ivas_error ivas_dirac_sba_config( return error; } #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*------------------------------------------------------------------------- * ivas_dirac_getNumTransportChannels() * Loading Loading @@ -647,7 +657,7 @@ int16_t ivas_dirac_getNumTransportChannels( return num_channels; } #endif /*------------------------------------------------------------------------- * computeDirectionVectors() Loading
lib_com/ivas_prot.h +12 −2 Original line number Diff line number Diff line Loading @@ -3033,8 +3033,10 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ int16_t *element_mode, /* o : element mode of the core coder */ int16_t *element_mode /* o : element mode of the core coder */ #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT const SBA_MODE sba_mode /* i : SBA mode */ #endif ); ivas_error ivas_sba_dec_reconfigure( Loading Loading @@ -3173,18 +3175,21 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* 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 */ ); #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*! 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 */ ); #endif ivas_error ivas_dirac_dec_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); Loading Loading @@ -3827,7 +3832,12 @@ int16_t ivas_get_spar_table_idx( int16_t *ind /* o : indice */ ); #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT /*! r: number of transport channels */ int16_t ivas_get_sba_num_TCs( #else int16_t ivas_get_spar_num_TCs( #endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : IVAS SBA order */ ); Loading
lib_com/ivas_sba_config.c +9 −2 Original line number Diff line number Diff line Loading @@ -87,8 +87,11 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA Planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ int16_t *element_mode, /* o : element mode of the core coder */ int16_t *element_mode /* o : element mode of the core coder */ #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT , const SBA_MODE sba_mode /* i : SBA mode */ #endif ) { if ( ( sba_order < 0 ) && ( nb_channels < 0 ) ) Loading Loading @@ -117,6 +120,9 @@ void ivas_sba_config( if ( nchan_transport != NULL ) { #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); #else if ( sba_mode == SBA_MODE_SPAR ) { *nchan_transport = ivas_get_spar_num_TCs( sba_total_brate, sba_order ); Loading @@ -125,6 +131,7 @@ void ivas_sba_config( { *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); } #endif } /* Configure core coder number of elements*/ Loading