Loading lib_com/ivas_prot.h +10 −1 Original line number Diff line number Diff line Loading @@ -4529,7 +4529,12 @@ void ivas_get_spar_md_from_dirac( /*! r: number of MD subframes */ int16_t ivas_get_spar_dec_md_num_subframes( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int32_t ivas_total_brate ); const int32_t ivas_total_brate #ifdef VLBR_20MS_MD , const int32_t ivas_last_active_brate /* i : IVAS last active bitrate */ #endif ); #ifdef VLBR_20MS_MD ivas_error ivas_spar_md_dec_matrix_open( Loading @@ -4548,6 +4553,10 @@ ivas_error ivas_spar_md_dec_open( const int16_t num_channels, /* i : number of internal channels */ const int16_t sba_order, /* i : SBA order */ const int16_t sid_format /* i : SID format */ #ifdef VLBR_20MS_MD , const int32_t last_active_ivas_total_brate /* i : IVAS last active bitrate */ #endif ); void ivas_spar_md_dec_close( Loading lib_dec/ivas_dec.c +8 −2 Original line number Diff line number Diff line Loading @@ -360,7 +360,12 @@ ivas_error ivas_dec( } ivas_spar_dec_gen_umx_mat( st_ivas->hSpar->hMdDec, st_ivas->nchan_transport, IVAS_MAX_NUM_BANDS, st_ivas->bfi, ivas_get_spar_dec_md_num_subframes( st_ivas->sba_order, st_ivas->hDecoderConfig->ivas_total_brate ) ); ivas_get_spar_dec_md_num_subframes( st_ivas->sba_order, st_ivas->hDecoderConfig->ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ) ); } ivas_sba_dirac_stereo_dec( st_ivas, output, output_frame, st_ivas->ivas_format == MC_FORMAT ); Loading @@ -384,7 +389,8 @@ ivas_error ivas_dec( if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) { #ifdef VLBR_20MS_MD num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->last_active_ivas_total_brate ); ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame, num_md_sub_frames ); #else ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame ); Loading lib_dec/ivas_jbm_dec.c +12 −2 Original line number Diff line number Diff line Loading @@ -262,7 +262,12 @@ ivas_error ivas_jbm_dec_tc( } ivas_spar_dec_gen_umx_mat( st_ivas->hSpar->hMdDec, st_ivas->nchan_transport, IVAS_MAX_NUM_BANDS, st_ivas->bfi, ivas_get_spar_dec_md_num_subframes( st_ivas->sba_order, st_ivas->hDecoderConfig->ivas_total_brate ) ); ivas_get_spar_dec_md_num_subframes( st_ivas->sba_order, st_ivas->hDecoderConfig->ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ) ); } ivas_sba_dirac_stereo_dec( st_ivas, output, output_frame, st_ivas->ivas_format == MC_FORMAT ); Loading @@ -286,7 +291,12 @@ ivas_error ivas_jbm_dec_tc( if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) { #ifdef VLBR_20MS_MD num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ); ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame, num_md_sub_frames ); #else ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame ); Loading lib_dec/ivas_masa_dec.c +10 −3 Original line number Diff line number Diff line Loading @@ -1170,7 +1170,14 @@ void ivas_spar_param_to_masa_param_mapping( else { #ifdef VLBR_20MS_MD mixer_mat_index = ( ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ) == 1 ) ? 0 : ( sf - SPAR_META_DELAY_SUBFRAMES ); mixer_mat_index = ( ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ) == 1 ) ? 0 : ( sf - SPAR_META_DELAY_SUBFRAMES ); #else mixer_mat_index = sf - SPAR_META_DELAY_SUBFRAMES; #endif Loading lib_dec/ivas_sba_dec.c +6 −1 Original line number Diff line number Diff line Loading @@ -191,7 +191,12 @@ ivas_error ivas_sba_dec_reconfigure( ivas_spar_md_dec_matrix_close( st_ivas->hSpar->hMdDec, num_channels ); num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( sba_order_internal, ivas_total_brate ); num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( sba_order_internal, ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ); if ( ( error = ivas_spar_md_dec_matrix_open( st_ivas->hSpar->hMdDec, num_channels, num_md_sub_frames ) ) != IVAS_ERR_OK ) { Loading Loading
lib_com/ivas_prot.h +10 −1 Original line number Diff line number Diff line Loading @@ -4529,7 +4529,12 @@ void ivas_get_spar_md_from_dirac( /*! r: number of MD subframes */ int16_t ivas_get_spar_dec_md_num_subframes( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int32_t ivas_total_brate ); const int32_t ivas_total_brate #ifdef VLBR_20MS_MD , const int32_t ivas_last_active_brate /* i : IVAS last active bitrate */ #endif ); #ifdef VLBR_20MS_MD ivas_error ivas_spar_md_dec_matrix_open( Loading @@ -4548,6 +4553,10 @@ ivas_error ivas_spar_md_dec_open( const int16_t num_channels, /* i : number of internal channels */ const int16_t sba_order, /* i : SBA order */ const int16_t sid_format /* i : SID format */ #ifdef VLBR_20MS_MD , const int32_t last_active_ivas_total_brate /* i : IVAS last active bitrate */ #endif ); void ivas_spar_md_dec_close( Loading
lib_dec/ivas_dec.c +8 −2 Original line number Diff line number Diff line Loading @@ -360,7 +360,12 @@ ivas_error ivas_dec( } ivas_spar_dec_gen_umx_mat( st_ivas->hSpar->hMdDec, st_ivas->nchan_transport, IVAS_MAX_NUM_BANDS, st_ivas->bfi, ivas_get_spar_dec_md_num_subframes( st_ivas->sba_order, st_ivas->hDecoderConfig->ivas_total_brate ) ); ivas_get_spar_dec_md_num_subframes( st_ivas->sba_order, st_ivas->hDecoderConfig->ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ) ); } ivas_sba_dirac_stereo_dec( st_ivas, output, output_frame, st_ivas->ivas_format == MC_FORMAT ); Loading @@ -384,7 +389,8 @@ ivas_error ivas_dec( if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) { #ifdef VLBR_20MS_MD num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->last_active_ivas_total_brate ); ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame, num_md_sub_frames ); #else ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame ); Loading
lib_dec/ivas_jbm_dec.c +12 −2 Original line number Diff line number Diff line Loading @@ -262,7 +262,12 @@ ivas_error ivas_jbm_dec_tc( } ivas_spar_dec_gen_umx_mat( st_ivas->hSpar->hMdDec, st_ivas->nchan_transport, IVAS_MAX_NUM_BANDS, st_ivas->bfi, ivas_get_spar_dec_md_num_subframes( st_ivas->sba_order, st_ivas->hDecoderConfig->ivas_total_brate ) ); ivas_get_spar_dec_md_num_subframes( st_ivas->sba_order, st_ivas->hDecoderConfig->ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ) ); } ivas_sba_dirac_stereo_dec( st_ivas, output, output_frame, st_ivas->ivas_format == MC_FORMAT ); Loading @@ -286,7 +291,12 @@ ivas_error ivas_jbm_dec_tc( if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) { #ifdef VLBR_20MS_MD num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ); ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame, num_md_sub_frames ); #else ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame ); Loading
lib_dec/ivas_masa_dec.c +10 −3 Original line number Diff line number Diff line Loading @@ -1170,7 +1170,14 @@ void ivas_spar_param_to_masa_param_mapping( else { #ifdef VLBR_20MS_MD mixer_mat_index = ( ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ) == 1 ) ? 0 : ( sf - SPAR_META_DELAY_SUBFRAMES ); mixer_mat_index = ( ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ) == 1 ) ? 0 : ( sf - SPAR_META_DELAY_SUBFRAMES ); #else mixer_mat_index = sf - SPAR_META_DELAY_SUBFRAMES; #endif Loading
lib_dec/ivas_sba_dec.c +6 −1 Original line number Diff line number Diff line Loading @@ -191,7 +191,12 @@ ivas_error ivas_sba_dec_reconfigure( ivas_spar_md_dec_matrix_close( st_ivas->hSpar->hMdDec, num_channels ); num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( sba_order_internal, ivas_total_brate ); num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( sba_order_internal, ivas_total_brate #ifdef VLBR_20MS_MD , st_ivas->last_active_ivas_total_brate #endif ); if ( ( error = ivas_spar_md_dec_matrix_open( st_ivas->hSpar->hMdDec, num_channels, num_md_sub_frames ) ) != IVAS_ERR_OK ) { Loading