Loading lib_com/cldfb_fx.c +13 −0 Original line number Diff line number Diff line Loading @@ -1428,6 +1428,19 @@ ivas_error openCldfb_ivas_fx( return IVAS_ERR_OK; } #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT ivas_error getLongCLDFBStates( HANDLE_CLDFB_FILTER_BANK h_cldfb , /* i/o: filter bank handle */ Word16 len ) { free( h_cldfb->cldfb_state_fx ); IF( ( h_cldfb->cldfb_state_fx = (Word32 *) malloc( sizeof( Word32 ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate long states memory for CLDFB" ); } return IVAS_ERR_OK; } #endif /*-------------------------------------------------------------------* * resampleCldfb_ivas() Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ #define HARM_FD_BWE /* VA: harmonize core-coder FD BWE function duplications */ #define FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT /* FhG: basop issue 2411: harmonize TNSAnalysis*_fx(), DetectTnsFilt*_fx()*/ #define HARMONIZE_READ_DECODE_TNS /* FhG basop 2389: Harm between two pairs of functions. */ #define FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT /* #################### End BE switches ################################## */ Loading lib_com/prot_fx.h +5 −1 Original line number Diff line number Diff line Loading @@ -8902,6 +8902,10 @@ ivas_error openCldfb_ivas_fx( CLDFB_PROTOTYPE prototype, /* i : CLDFB version (1.25ms/5ms delay) */ const Word16 enc_dec ); /* i : encoder/decoder flag */ #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT ivas_error getLongCLDFBStates( HANDLE_CLDFB_FILTER_BANK h_cldfb , Word16 len) ; #endif Word32 rand_gauss_fx( Word32 *x, Word16 *seed, Loading lib_dec/lib_dec_fx.c +5 −0 Original line number Diff line number Diff line Loading @@ -6266,7 +6266,12 @@ static ivas_error ivas_dec_init_split_rend( move16(); } #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT /*call with a flag indicating long ana states*/ error = ISAR_PRE_REND_open( &st_ivas->hSplitBinRend->splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, st_ivas->hDecoderConfig->render_num_subframes, mixed_td_cldfb_flag, 0 ); #else error = ISAR_PRE_REND_open( &st_ivas->hSplitBinRend->splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, st_ivas->hDecoderConfig->render_num_subframes, mixed_td_cldfb_flag ); #endif move16(); return error; Loading lib_isar/lib_isar_pre_rend.c +14 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,10 @@ #include "isar_rom_post_rend.h" #include "lib_isar_pre_rend.h" #include "isar_prot.h" #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT #include "lib_rend.h" #endif #ifdef DEBUGGING #include "debug.h" #endif Loading @@ -58,6 +62,9 @@ ivas_error ISAR_PRE_REND_open( const Word16 pcm_out_flag, /* i : Flag to indicate PCM output */ const IVAS_RENDER_NUM_SUBFR render_num_subframes, /* i : rendering number of subframes */ const Word16 mixed_td_cldfb_flag /* i : Flag to indicate combined TD and CLDFB input */ #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT , const int createLongStates #endif ) { ivas_error error, ch, num_ch; Loading Loading @@ -123,6 +130,13 @@ ivas_error ISAR_PRE_REND_open( { return error; } #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT IF( createLongStates ) { Word16 buf_len = buf_len = sub( hSplitRendWrapper->hCldfbHandles->cldfbAna[ch]->p_filter_length, hSplitRendWrapper->hCldfbHandles->cldfbAna[ch]->no_channels ); getLongCLDFBStates( hSplitRendWrapper->hCldfbHandles->cldfbSyn[ch] , buf_len * RENDERER_MAX_ISM_INPUTS ); } #endif } FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) Loading Loading
lib_com/cldfb_fx.c +13 −0 Original line number Diff line number Diff line Loading @@ -1428,6 +1428,19 @@ ivas_error openCldfb_ivas_fx( return IVAS_ERR_OK; } #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT ivas_error getLongCLDFBStates( HANDLE_CLDFB_FILTER_BANK h_cldfb , /* i/o: filter bank handle */ Word16 len ) { free( h_cldfb->cldfb_state_fx ); IF( ( h_cldfb->cldfb_state_fx = (Word32 *) malloc( sizeof( Word32 ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate long states memory for CLDFB" ); } return IVAS_ERR_OK; } #endif /*-------------------------------------------------------------------* * resampleCldfb_ivas() Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ #define HARM_FD_BWE /* VA: harmonize core-coder FD BWE function duplications */ #define FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT /* FhG: basop issue 2411: harmonize TNSAnalysis*_fx(), DetectTnsFilt*_fx()*/ #define HARMONIZE_READ_DECODE_TNS /* FhG basop 2389: Harm between two pairs of functions. */ #define FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT /* #################### End BE switches ################################## */ Loading
lib_com/prot_fx.h +5 −1 Original line number Diff line number Diff line Loading @@ -8902,6 +8902,10 @@ ivas_error openCldfb_ivas_fx( CLDFB_PROTOTYPE prototype, /* i : CLDFB version (1.25ms/5ms delay) */ const Word16 enc_dec ); /* i : encoder/decoder flag */ #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT ivas_error getLongCLDFBStates( HANDLE_CLDFB_FILTER_BANK h_cldfb , Word16 len) ; #endif Word32 rand_gauss_fx( Word32 *x, Word16 *seed, Loading
lib_dec/lib_dec_fx.c +5 −0 Original line number Diff line number Diff line Loading @@ -6266,7 +6266,12 @@ static ivas_error ivas_dec_init_split_rend( move16(); } #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT /*call with a flag indicating long ana states*/ error = ISAR_PRE_REND_open( &st_ivas->hSplitBinRend->splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, st_ivas->hDecoderConfig->render_num_subframes, mixed_td_cldfb_flag, 0 ); #else error = ISAR_PRE_REND_open( &st_ivas->hSplitBinRend->splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, st_ivas->hDecoderConfig->render_num_subframes, mixed_td_cldfb_flag ); #endif move16(); return error; Loading
lib_isar/lib_isar_pre_rend.c +14 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,10 @@ #include "isar_rom_post_rend.h" #include "lib_isar_pre_rend.h" #include "isar_prot.h" #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT #include "lib_rend.h" #endif #ifdef DEBUGGING #include "debug.h" #endif Loading @@ -58,6 +62,9 @@ ivas_error ISAR_PRE_REND_open( const Word16 pcm_out_flag, /* i : Flag to indicate PCM output */ const IVAS_RENDER_NUM_SUBFR render_num_subframes, /* i : rendering number of subframes */ const Word16 mixed_td_cldfb_flag /* i : Flag to indicate combined TD and CLDFB input */ #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT , const int createLongStates #endif ) { ivas_error error, ch, num_ch; Loading Loading @@ -123,6 +130,13 @@ ivas_error ISAR_PRE_REND_open( { return error; } #ifdef FIX_2436_RENDERER_CLDFBSTATES_EACH_ISM_INPUT IF( createLongStates ) { Word16 buf_len = buf_len = sub( hSplitRendWrapper->hCldfbHandles->cldfbAna[ch]->p_filter_length, hSplitRendWrapper->hCldfbHandles->cldfbAna[ch]->no_channels ); getLongCLDFBStates( hSplitRendWrapper->hCldfbHandles->cldfbSyn[ch] , buf_len * RENDERER_MAX_ISM_INPUTS ); } #endif } FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) Loading