Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,7 @@ #define NONBE_1325_TD_STEREO_QUANT_LSF_SEC /* Nokia: issue 1325: fix for usage of active_cnt variable in TD stereo LSFQ */ #define NONBE_FIX_1130_DIV_ZERO_LEV_DUR /* VA: issue 1130: avoid div by zero in L-D by thresholding R[0] to a min value of 100.0 */ #define NONBE_1329_FIX_OSBA_CRASH /* FhG: issue 1329: prevent assert when bit budget is low*/ #define NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER /* FhG: issue 1128: set output ambisonics order to input order for EXT output */ /* #################### End BASOP porting switches ############################ */ Loading lib_dec/ivas_init_dec.c +46 −0 Original line number Diff line number Diff line Loading @@ -58,8 +58,12 @@ static ivas_error ivas_read_format( Decoder_Struct *st_ivas, int16_t *num_bits_r static ivas_error doSanityChecks_IVAS( Decoder_Struct *st_ivas ); #ifdef NONBE_FIX_1052_SBA_EXT #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER static AUDIO_CONFIG ivas_set_audio_config_from_sba_order( const int16_t sba_order ); #else static AUDIO_CONFIG ivas_set_output_config_from_sba_order( const int16_t sba_order ); #endif #endif static ivas_error ivas_dec_reconfig_split_rend( Decoder_Struct *st_ivas ); Loading Loading @@ -242,10 +246,25 @@ static ivas_error ivas_dec_init_split_rend( #ifdef NONBE_FIX_1052_SBA_EXT #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER /*-------------------------------------------------------------------* * ivas_set_audio_config_from_sba_order() * * *-------------------------------------------------------------------*/ /*! r: audio configuration */ static AUDIO_CONFIG ivas_set_audio_config_from_sba_order( const int16_t sba_order /* i : Ambisonic (SBA) order */ ) #else static AUDIO_CONFIG ivas_set_output_config_from_sba_order( const int16_t sba_order ) #endif { AUDIO_CONFIG output_config; output_config = IVAS_AUDIO_CONFIG_HOA3; switch ( sba_order ) { case SBA_FOA_ORDER: Loading @@ -258,8 +277,14 @@ static AUDIO_CONFIG ivas_set_output_config_from_sba_order( const int16_t sba_ord output_config = IVAS_AUDIO_CONFIG_HOA3; break; default: #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER output_config = IVAS_AUDIO_CONFIG_INVALID; break; #else assert( 0 ); #endif } return output_config; } #endif Loading Loading @@ -346,7 +371,11 @@ ivas_error ivas_dec_setup( #ifdef NONBE_FIX_1052_SBA_EXT if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) { #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER st_ivas->hDecoderConfig->output_config = ivas_set_audio_config_from_sba_order( st_ivas->sba_order ); #else st_ivas->hDecoderConfig->output_config = ivas_set_output_config_from_sba_order( st_ivas->sba_order ); #endif st_ivas->hDecoderConfig->nchan_out = audioCfg2channels( st_ivas->hDecoderConfig->output_config ); } #endif Loading Loading @@ -614,7 +643,11 @@ ivas_error ivas_dec_setup( #ifdef NONBE_FIX_1052_SBA_EXT if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) { #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER st_ivas->hDecoderConfig->output_config = ivas_set_audio_config_from_sba_order( st_ivas->sba_order ); #else st_ivas->hDecoderConfig->output_config = ivas_set_output_config_from_sba_order( st_ivas->sba_order ); #endif st_ivas->hDecoderConfig->nchan_out = audioCfg2channels( st_ivas->hDecoderConfig->output_config ); } #endif Loading Loading @@ -1177,7 +1210,11 @@ ivas_error ivas_init_decoder( if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) #endif { #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER hDecoderConfig->nchan_out = audioCfg2channels( ivas_set_audio_config_from_sba_order( st_ivas->sba_order ) ); #else hDecoderConfig->nchan_out = audioCfg2channels( IVAS_AUDIO_CONFIG_HOA3 ); #endif hDecoderConfig->nchan_out += st_ivas->nchan_ism; } #ifdef NONBE_FIX_984_OMASA_EXT_OUTPUT Loading Loading @@ -1208,6 +1245,13 @@ ivas_error ivas_init_decoder( ivas_output_init( &( st_ivas->hOutSetup ), st_ivas->transport_config ); st_ivas->intern_config = st_ivas->transport_config; } #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER else if ( output_config == IVAS_AUDIO_CONFIG_EXTERNAL && st_ivas->ivas_format == SBA_ISM_FORMAT ) { st_ivas->intern_config = ivas_set_audio_config_from_sba_order( st_ivas->sba_order ); ivas_output_init( &( st_ivas->hOutSetup ), st_ivas->intern_config ); } #endif else { ivas_output_init( &( st_ivas->hOutSetup ), output_config ); Loading @@ -1224,6 +1268,7 @@ ivas_error ivas_init_decoder( st_ivas->hOutSetup.nchan_out_woLFE = audioCfg2channels( st_ivas->intern_config ); } #ifndef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER if ( st_ivas->ivas_format == SBA_ISM_FORMAT && output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) { st_ivas->hOutSetup.ambisonics_order = SBA_HOA3_ORDER; Loading @@ -1232,6 +1277,7 @@ ivas_error ivas_init_decoder( st_ivas->hOutSetup.nchan_out_woLFE = audioCfg2channels( IVAS_AUDIO_CONFIG_HOA3 ); } #endif /* Only initialize transport setup if it is used */ if ( st_ivas->transport_config != IVAS_AUDIO_CONFIG_INVALID ) { Loading lib_dec/ivas_output_config.c +5 −1 Original line number Diff line number Diff line Loading @@ -330,7 +330,11 @@ void ivas_renderer_select( { *internal_config = IVAS_AUDIO_CONFIG_FOA; } else #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER else if ( output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) #else if ( output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) #endif { *internal_config = IVAS_AUDIO_CONFIG_HOA3; } Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,7 @@ #define NONBE_1325_TD_STEREO_QUANT_LSF_SEC /* Nokia: issue 1325: fix for usage of active_cnt variable in TD stereo LSFQ */ #define NONBE_FIX_1130_DIV_ZERO_LEV_DUR /* VA: issue 1130: avoid div by zero in L-D by thresholding R[0] to a min value of 100.0 */ #define NONBE_1329_FIX_OSBA_CRASH /* FhG: issue 1329: prevent assert when bit budget is low*/ #define NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER /* FhG: issue 1128: set output ambisonics order to input order for EXT output */ /* #################### End BASOP porting switches ############################ */ Loading
lib_dec/ivas_init_dec.c +46 −0 Original line number Diff line number Diff line Loading @@ -58,8 +58,12 @@ static ivas_error ivas_read_format( Decoder_Struct *st_ivas, int16_t *num_bits_r static ivas_error doSanityChecks_IVAS( Decoder_Struct *st_ivas ); #ifdef NONBE_FIX_1052_SBA_EXT #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER static AUDIO_CONFIG ivas_set_audio_config_from_sba_order( const int16_t sba_order ); #else static AUDIO_CONFIG ivas_set_output_config_from_sba_order( const int16_t sba_order ); #endif #endif static ivas_error ivas_dec_reconfig_split_rend( Decoder_Struct *st_ivas ); Loading Loading @@ -242,10 +246,25 @@ static ivas_error ivas_dec_init_split_rend( #ifdef NONBE_FIX_1052_SBA_EXT #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER /*-------------------------------------------------------------------* * ivas_set_audio_config_from_sba_order() * * *-------------------------------------------------------------------*/ /*! r: audio configuration */ static AUDIO_CONFIG ivas_set_audio_config_from_sba_order( const int16_t sba_order /* i : Ambisonic (SBA) order */ ) #else static AUDIO_CONFIG ivas_set_output_config_from_sba_order( const int16_t sba_order ) #endif { AUDIO_CONFIG output_config; output_config = IVAS_AUDIO_CONFIG_HOA3; switch ( sba_order ) { case SBA_FOA_ORDER: Loading @@ -258,8 +277,14 @@ static AUDIO_CONFIG ivas_set_output_config_from_sba_order( const int16_t sba_ord output_config = IVAS_AUDIO_CONFIG_HOA3; break; default: #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER output_config = IVAS_AUDIO_CONFIG_INVALID; break; #else assert( 0 ); #endif } return output_config; } #endif Loading Loading @@ -346,7 +371,11 @@ ivas_error ivas_dec_setup( #ifdef NONBE_FIX_1052_SBA_EXT if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) { #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER st_ivas->hDecoderConfig->output_config = ivas_set_audio_config_from_sba_order( st_ivas->sba_order ); #else st_ivas->hDecoderConfig->output_config = ivas_set_output_config_from_sba_order( st_ivas->sba_order ); #endif st_ivas->hDecoderConfig->nchan_out = audioCfg2channels( st_ivas->hDecoderConfig->output_config ); } #endif Loading Loading @@ -614,7 +643,11 @@ ivas_error ivas_dec_setup( #ifdef NONBE_FIX_1052_SBA_EXT if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) { #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER st_ivas->hDecoderConfig->output_config = ivas_set_audio_config_from_sba_order( st_ivas->sba_order ); #else st_ivas->hDecoderConfig->output_config = ivas_set_output_config_from_sba_order( st_ivas->sba_order ); #endif st_ivas->hDecoderConfig->nchan_out = audioCfg2channels( st_ivas->hDecoderConfig->output_config ); } #endif Loading Loading @@ -1177,7 +1210,11 @@ ivas_error ivas_init_decoder( if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) #endif { #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER hDecoderConfig->nchan_out = audioCfg2channels( ivas_set_audio_config_from_sba_order( st_ivas->sba_order ) ); #else hDecoderConfig->nchan_out = audioCfg2channels( IVAS_AUDIO_CONFIG_HOA3 ); #endif hDecoderConfig->nchan_out += st_ivas->nchan_ism; } #ifdef NONBE_FIX_984_OMASA_EXT_OUTPUT Loading Loading @@ -1208,6 +1245,13 @@ ivas_error ivas_init_decoder( ivas_output_init( &( st_ivas->hOutSetup ), st_ivas->transport_config ); st_ivas->intern_config = st_ivas->transport_config; } #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER else if ( output_config == IVAS_AUDIO_CONFIG_EXTERNAL && st_ivas->ivas_format == SBA_ISM_FORMAT ) { st_ivas->intern_config = ivas_set_audio_config_from_sba_order( st_ivas->sba_order ); ivas_output_init( &( st_ivas->hOutSetup ), st_ivas->intern_config ); } #endif else { ivas_output_init( &( st_ivas->hOutSetup ), output_config ); Loading @@ -1224,6 +1268,7 @@ ivas_error ivas_init_decoder( st_ivas->hOutSetup.nchan_out_woLFE = audioCfg2channels( st_ivas->intern_config ); } #ifndef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER if ( st_ivas->ivas_format == SBA_ISM_FORMAT && output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) { st_ivas->hOutSetup.ambisonics_order = SBA_HOA3_ORDER; Loading @@ -1232,6 +1277,7 @@ ivas_error ivas_init_decoder( st_ivas->hOutSetup.nchan_out_woLFE = audioCfg2channels( IVAS_AUDIO_CONFIG_HOA3 ); } #endif /* Only initialize transport setup if it is used */ if ( st_ivas->transport_config != IVAS_AUDIO_CONFIG_INVALID ) { Loading
lib_dec/ivas_output_config.c +5 −1 Original line number Diff line number Diff line Loading @@ -330,7 +330,11 @@ void ivas_renderer_select( { *internal_config = IVAS_AUDIO_CONFIG_FOA; } else #ifdef NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER else if ( output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) #else if ( output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) #endif { *internal_config = IVAS_AUDIO_CONFIG_HOA3; } Loading