Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -169,10 +169,12 @@ #define MC_BITRATE_SWITCHING /* Issue 116: support bitrate switching in MC format */ #ifdef MC_BITRATE_SWITCHING #define MCMASA_BITRATE_SWITCHING /* Issue 116: support bitrate switching in MC format: sub-part of McMASA modes */ #define MC_BITRATE_SWITCHING_CLDFB #endif #define FIX_MC_BR_SW_TCX_PLC_FADEOUT #define FIX_MC_BR_SW_MCT_UPDT_ENC_COMMON /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif lib_dec/ivas_mct_dec.c +29 −0 Original line number Diff line number Diff line Loading @@ -665,7 +665,11 @@ static ivas_error ivas_mc_dec_reconfig( ) { int16_t nchan_transport_old, nSCE_old, nCPE_old, sba_dirac_stereo_flag_old, nchan_hp20_old; #ifdef MC_BITRATE_SWITCHING_CLDFB int16_t numCldfbAnalyses_old, numCldfbSyntheses_old; #else int16_t numCldfbAnalyses_old, numCldfbAnalyses, numCldfbSyntheses, numCldfbSyntheses_old, i; #endif int32_t new_brate_SCE, new_brate_CPE; RENDERER_TYPE renderer_type_old; ivas_error error; Loading Loading @@ -949,6 +953,30 @@ static ivas_error ivas_mc_dec_reconfig( * CLDFB instances *-----------------------------------------------------------------*/ #ifdef MC_BITRATE_SWITCHING_CLDFB ivas_cldfb_dec_reconfig( st_ivas, nchan_transport_old, numCldfbAnalyses_old, numCldfbSyntheses_old ); // !!! VE: what is the following block needed for? if ( last_mc_mode == MC_MODE_MCMASA && nchan_transport_old == 1 && ( renderer_type_old == RENDERER_BINAURAL_PARAMETRIC ) || ( renderer_type_old == RENDERER_BINAURAL_PARAMETRIC_ROOM || renderer_type_old == RENDERER_STEREO_PARAMETRIC ) ) { int16_t numCldfbAnalyses, numCldfbSyntheses; ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses, &numCldfbSyntheses ); /* cldfbAnaDec[1] might be modified by DirAC (ivas_dirac_dec_binaural_internal) -> re-instantiate it */ if ( numCldfbAnalyses_old > 1 && numCldfbAnalyses > 1 ) { deleteCldfb( &( st_ivas->cldfbAnaDec[1] ) ); st_ivas->cldfbAnaDec[1] = NULL; if ( ( error = openCldfb( &( st_ivas->cldfbAnaDec[1] ), CLDFB_ANALYSIS, st_ivas->hDecoderConfig->output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK ) { return error; } } } #else ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses, &numCldfbSyntheses ); /* Analysis*/ Loading Loading @@ -1008,6 +1036,7 @@ static ivas_error ivas_mc_dec_reconfig( } } } #endif /*-----------------------------------------------------------------* * Allocate the LFE handle that is coded seperately after the allocation of the core coders Loading Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -169,10 +169,12 @@ #define MC_BITRATE_SWITCHING /* Issue 116: support bitrate switching in MC format */ #ifdef MC_BITRATE_SWITCHING #define MCMASA_BITRATE_SWITCHING /* Issue 116: support bitrate switching in MC format: sub-part of McMASA modes */ #define MC_BITRATE_SWITCHING_CLDFB #endif #define FIX_MC_BR_SW_TCX_PLC_FADEOUT #define FIX_MC_BR_SW_MCT_UPDT_ENC_COMMON /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif
lib_dec/ivas_mct_dec.c +29 −0 Original line number Diff line number Diff line Loading @@ -665,7 +665,11 @@ static ivas_error ivas_mc_dec_reconfig( ) { int16_t nchan_transport_old, nSCE_old, nCPE_old, sba_dirac_stereo_flag_old, nchan_hp20_old; #ifdef MC_BITRATE_SWITCHING_CLDFB int16_t numCldfbAnalyses_old, numCldfbSyntheses_old; #else int16_t numCldfbAnalyses_old, numCldfbAnalyses, numCldfbSyntheses, numCldfbSyntheses_old, i; #endif int32_t new_brate_SCE, new_brate_CPE; RENDERER_TYPE renderer_type_old; ivas_error error; Loading Loading @@ -949,6 +953,30 @@ static ivas_error ivas_mc_dec_reconfig( * CLDFB instances *-----------------------------------------------------------------*/ #ifdef MC_BITRATE_SWITCHING_CLDFB ivas_cldfb_dec_reconfig( st_ivas, nchan_transport_old, numCldfbAnalyses_old, numCldfbSyntheses_old ); // !!! VE: what is the following block needed for? if ( last_mc_mode == MC_MODE_MCMASA && nchan_transport_old == 1 && ( renderer_type_old == RENDERER_BINAURAL_PARAMETRIC ) || ( renderer_type_old == RENDERER_BINAURAL_PARAMETRIC_ROOM || renderer_type_old == RENDERER_STEREO_PARAMETRIC ) ) { int16_t numCldfbAnalyses, numCldfbSyntheses; ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses, &numCldfbSyntheses ); /* cldfbAnaDec[1] might be modified by DirAC (ivas_dirac_dec_binaural_internal) -> re-instantiate it */ if ( numCldfbAnalyses_old > 1 && numCldfbAnalyses > 1 ) { deleteCldfb( &( st_ivas->cldfbAnaDec[1] ) ); st_ivas->cldfbAnaDec[1] = NULL; if ( ( error = openCldfb( &( st_ivas->cldfbAnaDec[1] ), CLDFB_ANALYSIS, st_ivas->hDecoderConfig->output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK ) { return error; } } } #else ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses, &numCldfbSyntheses ); /* Analysis*/ Loading Loading @@ -1008,6 +1036,7 @@ static ivas_error ivas_mc_dec_reconfig( } } } #endif /*-----------------------------------------------------------------* * Allocate the LFE handle that is coded seperately after the allocation of the core coders Loading