Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -164,6 +164,8 @@ #define FIX_828_PORT_1152_FROM_FLT_REPO /* FhG: fix for issue 828 - fix uninitialized value used in BASOP */ #define NONE_BE_FIX_816_LFE_PLC_FLOAT /* DLB: issue 816: reduce required precision to float for LFE-PLC*/ #define FIX_835_PARAMMC_BUFFER_VALUES /* FhG: issue 835: wide range of buffer values for cx in ParamMC */ #define NONBE_FIX_943_PORT_1208_DFT_STEREO_PLC_BURST /* Ericsson: BASOP Issue 943, Float Issue 1208, fix for overflow of sample offset counter for burst error in DFT Stereo PLC. */ /* #################### End FIXES switches ############################ */ #define BASOP_NOGLOB /* Disable global symbols in BASOPs, Overflow/Carry in BASOPs disabled, additional BASOPs in case of Overflow */ Loading lib_dec/ivas_stereo_dft_plc.c +12 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,9 @@ void stereo_dft_res_ecu( float fac; float trigo_dec[STEREO_DFT32MS_N_8k / 2 + 1]; int16_t trigo_step; #ifdef NONBE_FIX_943_PORT_1208_DFT_STEREO_PLC_BURST int16_t time_offs; #endif set_zero( pDFT_RES, L_FRAME8k ); Loading @@ -106,7 +109,12 @@ void stereo_dft_res_ecu( if ( k == 0 ) { mvr2r( pDFT_RES, res_buf, L_FRAME8k ); #ifdef NONBE_FIX_943_PORT_1208_DFT_STEREO_PLC_BURST time_offs = min( MAX16B, hStereoDft->time_offs + output_frame ); stereo_dft_res_subst_spec( hStereoDft, res_buf, DFT_PRED_RES, time_offs, L_res, L_FRAME8k, k, num_plocs, plocs, plocsi, FALSE ); #else stereo_dft_res_subst_spec( hStereoDft, res_buf, DFT_PRED_RES, hStereoDft->time_offs + output_frame, L_res, L_FRAME8k, k, num_plocs, plocs, plocsi, FALSE ); #endif rfft( res_buf, trigo_dec, L_FRAME8k, +1 ); Loading @@ -133,7 +141,11 @@ void stereo_dft_res_ecu( } /*in case of burst error*/ #ifdef NONBE_FIX_943_PORT_1208_DFT_STEREO_PLC_BURST hStereoDft->time_offs = min( MAX16B, hStereoDft->time_offs + L_FRAME8k ); #else hStereoDft->time_offs += L_FRAME8k; #endif } set_zero( DFT_PRED_RES, 2 * L_res ); Loading Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -164,6 +164,8 @@ #define FIX_828_PORT_1152_FROM_FLT_REPO /* FhG: fix for issue 828 - fix uninitialized value used in BASOP */ #define NONE_BE_FIX_816_LFE_PLC_FLOAT /* DLB: issue 816: reduce required precision to float for LFE-PLC*/ #define FIX_835_PARAMMC_BUFFER_VALUES /* FhG: issue 835: wide range of buffer values for cx in ParamMC */ #define NONBE_FIX_943_PORT_1208_DFT_STEREO_PLC_BURST /* Ericsson: BASOP Issue 943, Float Issue 1208, fix for overflow of sample offset counter for burst error in DFT Stereo PLC. */ /* #################### End FIXES switches ############################ */ #define BASOP_NOGLOB /* Disable global symbols in BASOPs, Overflow/Carry in BASOPs disabled, additional BASOPs in case of Overflow */ Loading
lib_dec/ivas_stereo_dft_plc.c +12 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,9 @@ void stereo_dft_res_ecu( float fac; float trigo_dec[STEREO_DFT32MS_N_8k / 2 + 1]; int16_t trigo_step; #ifdef NONBE_FIX_943_PORT_1208_DFT_STEREO_PLC_BURST int16_t time_offs; #endif set_zero( pDFT_RES, L_FRAME8k ); Loading @@ -106,7 +109,12 @@ void stereo_dft_res_ecu( if ( k == 0 ) { mvr2r( pDFT_RES, res_buf, L_FRAME8k ); #ifdef NONBE_FIX_943_PORT_1208_DFT_STEREO_PLC_BURST time_offs = min( MAX16B, hStereoDft->time_offs + output_frame ); stereo_dft_res_subst_spec( hStereoDft, res_buf, DFT_PRED_RES, time_offs, L_res, L_FRAME8k, k, num_plocs, plocs, plocsi, FALSE ); #else stereo_dft_res_subst_spec( hStereoDft, res_buf, DFT_PRED_RES, hStereoDft->time_offs + output_frame, L_res, L_FRAME8k, k, num_plocs, plocs, plocsi, FALSE ); #endif rfft( res_buf, trigo_dec, L_FRAME8k, +1 ); Loading @@ -133,7 +141,11 @@ void stereo_dft_res_ecu( } /*in case of burst error*/ #ifdef NONBE_FIX_943_PORT_1208_DFT_STEREO_PLC_BURST hStereoDft->time_offs = min( MAX16B, hStereoDft->time_offs + L_FRAME8k ); #else hStereoDft->time_offs += L_FRAME8k; #endif } set_zero( DFT_PRED_RES, 2 * L_res ); Loading