Loading lib_com/bitstream.c +2 −7 Original line number Diff line number Diff line Loading @@ -1980,14 +1980,9 @@ ivas_error preview_indices( 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 ); #ifdef SBA_ORDER_BITSTREAM st_ivas->sba_analysis_order = st_ivas->sba_order; if ( total_brate < SBA_MIN_BRATE_HOA ) { /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ st_ivas->sba_analysis_order = 1; } #ifdef SBA_ORDER_BITSTREAM st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); #endif #ifdef SBA_ORDER_BITSTREAM Loading lib_com/ivas_prot.h +10 −0 Original line number Diff line number Diff line Loading @@ -3043,15 +3043,25 @@ void ivas_init_dec_get_num_cldfb_instances( int16_t *numCldfbSyntheses /* o : number of CLDFB synthesis instances */ ); /*! r: Ambisonic (SBA) order */ int16_t ivas_sba_get_order( const int16_t nb_channels, /* i : Number of ambisonic channels */ const int16_t sba_planar /* i : SBA planar flag */ ); #ifdef SBA_ORDER_BITSTREAM /*! r: Ambisonic (SBA) order used for analysis and coding */ int16_t ivas_sba_get_analysis_order( const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : Ambisonic (SBA) order */ ); #endif int16_t ivas_sba_get_order_transport( const int16_t nchan_transport /* i : Number of transport channels */ ); /*!r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ Loading lib_com/ivas_sba_config.c +29 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,7 @@ void ivas_sba_config( * Get Ambisonic order from number of ambisonic channels *-------------------------------------------------------------------*/ /*! r: Ambisonic (SBA) order */ int16_t ivas_sba_get_order( const int16_t nb_channels, /* i : Number of ambisonic channels */ const int16_t sba_planar /* i : SBA Planar flag */ Loading @@ -182,6 +183,33 @@ int16_t ivas_sba_get_order( } #ifdef SBA_ORDER_BITSTREAM /*-------------------------------------------------------------------* * ivas_sba_get_order() * * Get Ambisonic order used for analysis and coding *-------------------------------------------------------------------*/ /*! r: Ambisonic (SBA) order used for analysis and coding */ int16_t ivas_sba_get_analysis_order( const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { int16_t sba_analysis_order; sba_analysis_order = sba_order; if ( ivas_total_brate < SBA_MIN_BRATE_HOA ) { /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ sba_analysis_order = 1; } return sba_analysis_order; } #endif /*-------------------------------------------------------------------* * ivas_sba_get_order_transport() * Loading Loading @@ -215,6 +243,7 @@ int16_t ivas_sba_get_order_transport( * Get number of Ambisonic channels *-------------------------------------------------------------------*/ /*!r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ Loading lib_dec/ivas_init_dec.c +1 −6 Original line number Diff line number Diff line Loading @@ -123,12 +123,7 @@ ivas_error ivas_dec_setup( st_ivas->sba_order += 2 * st_ivas->bit_stream[num_bits_read]; #ifdef SBA_ORDER_BITSTREAM st_ivas->sba_analysis_order = st_ivas->sba_order; if ( ivas_total_brate < SBA_MIN_BRATE_HOA ) { /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ st_ivas->sba_analysis_order = 1; } st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); #endif num_bits_read += SBA_ORDER_BITS; Loading lib_dec/ivas_sba_dec.c +5 −1 Original line number Diff line number Diff line Loading @@ -485,11 +485,15 @@ ivas_error ivas_sba_dec_reconfigure( numCldfbAnalyses = 0; sba_total_brate = ivas_total_brate; nSCE_old = st_ivas->nSCE; nCPE_old = st_ivas->nCPE; nchan_transport_old = st_ivas->nchan_transport; sba_dirac_stereo_flag_old = st_ivas->sba_dirac_stereo_flag; #ifdef SBA_ORDER_BITSTREAM st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); #endif #ifndef SBA_ORDER_BITSTREAM ivas_sba_config( sba_total_brate, st_ivas->sba_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); #else Loading Loading
lib_com/bitstream.c +2 −7 Original line number Diff line number Diff line Loading @@ -1980,14 +1980,9 @@ ivas_error preview_indices( 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 ); #ifdef SBA_ORDER_BITSTREAM st_ivas->sba_analysis_order = st_ivas->sba_order; if ( total_brate < SBA_MIN_BRATE_HOA ) { /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ st_ivas->sba_analysis_order = 1; } #ifdef SBA_ORDER_BITSTREAM st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); #endif #ifdef SBA_ORDER_BITSTREAM Loading
lib_com/ivas_prot.h +10 −0 Original line number Diff line number Diff line Loading @@ -3043,15 +3043,25 @@ void ivas_init_dec_get_num_cldfb_instances( int16_t *numCldfbSyntheses /* o : number of CLDFB synthesis instances */ ); /*! r: Ambisonic (SBA) order */ int16_t ivas_sba_get_order( const int16_t nb_channels, /* i : Number of ambisonic channels */ const int16_t sba_planar /* i : SBA planar flag */ ); #ifdef SBA_ORDER_BITSTREAM /*! r: Ambisonic (SBA) order used for analysis and coding */ int16_t ivas_sba_get_analysis_order( const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : Ambisonic (SBA) order */ ); #endif int16_t ivas_sba_get_order_transport( const int16_t nchan_transport /* i : Number of transport channels */ ); /*!r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ Loading
lib_com/ivas_sba_config.c +29 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,7 @@ void ivas_sba_config( * Get Ambisonic order from number of ambisonic channels *-------------------------------------------------------------------*/ /*! r: Ambisonic (SBA) order */ int16_t ivas_sba_get_order( const int16_t nb_channels, /* i : Number of ambisonic channels */ const int16_t sba_planar /* i : SBA Planar flag */ Loading @@ -182,6 +183,33 @@ int16_t ivas_sba_get_order( } #ifdef SBA_ORDER_BITSTREAM /*-------------------------------------------------------------------* * ivas_sba_get_order() * * Get Ambisonic order used for analysis and coding *-------------------------------------------------------------------*/ /*! r: Ambisonic (SBA) order used for analysis and coding */ int16_t ivas_sba_get_analysis_order( const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { int16_t sba_analysis_order; sba_analysis_order = sba_order; if ( ivas_total_brate < SBA_MIN_BRATE_HOA ) { /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ sba_analysis_order = 1; } return sba_analysis_order; } #endif /*-------------------------------------------------------------------* * ivas_sba_get_order_transport() * Loading Loading @@ -215,6 +243,7 @@ int16_t ivas_sba_get_order_transport( * Get number of Ambisonic channels *-------------------------------------------------------------------*/ /*!r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ Loading
lib_dec/ivas_init_dec.c +1 −6 Original line number Diff line number Diff line Loading @@ -123,12 +123,7 @@ ivas_error ivas_dec_setup( st_ivas->sba_order += 2 * st_ivas->bit_stream[num_bits_read]; #ifdef SBA_ORDER_BITSTREAM st_ivas->sba_analysis_order = st_ivas->sba_order; if ( ivas_total_brate < SBA_MIN_BRATE_HOA ) { /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ st_ivas->sba_analysis_order = 1; } st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); #endif num_bits_read += SBA_ORDER_BITS; Loading
lib_dec/ivas_sba_dec.c +5 −1 Original line number Diff line number Diff line Loading @@ -485,11 +485,15 @@ ivas_error ivas_sba_dec_reconfigure( numCldfbAnalyses = 0; sba_total_brate = ivas_total_brate; nSCE_old = st_ivas->nSCE; nCPE_old = st_ivas->nCPE; nchan_transport_old = st_ivas->nchan_transport; sba_dirac_stereo_flag_old = st_ivas->sba_dirac_stereo_flag; #ifdef SBA_ORDER_BITSTREAM st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); #endif #ifndef SBA_ORDER_BITSTREAM ivas_sba_config( sba_total_brate, st_ivas->sba_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); #else Loading