diff --git a/lib_com/options.h b/lib_com/options.h index 8a3a5e7b38f50669b1c6d1f627a0d9078011373e..412cb99a93070509fb5818acfb5cef8c57e17be2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -188,6 +188,7 @@ #define NONBE_FIX_839_MC_RS_CHANNEL_ALLOC /* FhG: Issues #839: problems with reallocation of the channels on the heap in case of MC RS */ #define BE_FIX_832_ASAN_ERROR_EFAP_OSBA /* FhG: issue #832: fix ASAN error caused by re-allocating EFAP memories in OSBA*/ #define NONBE_FIX_819_DOUBLE_PREC_COMB_FORMATS /* VA: issue 820: Double precision arithmetic in combined formats */ +#define NONBE_FIX_849_OMASA_BFI_CRASH /* VA: issue 849: fix OMASA 2TC and FEC crashes */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 7bf06e18ee6410496b25826405482dfca4c7b0b9..b460948a985c7e331aaf1a25799bfd039aed74e8 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -1114,15 +1114,22 @@ static void stereo_mode_combined_format_dec( ( ( st_ivas->nchan_ism == 3 && st_ivas->hDecoderConfig->ivas_total_brate == IVAS_96k ) || ( st_ivas->nchan_ism == 4 && st_ivas->hDecoderConfig->ivas_total_brate == IVAS_128k ) ) ) { - /* read OMASA stereo mode signalling */ - if ( get_next_indice( hCPE->hCoreCoder[0], NBITS_ELEMENT_MODE ) ) +#ifdef NONBE_FIX_849_OMASA_BFI_CRASH + if ( !st_ivas->bfi ) { - hCPE->element_mode = IVAS_CPE_MDCT; - } - else - { - hCPE->element_mode = IVAS_CPE_DFT; +#endif + /* read OMASA stereo mode signalling */ + if ( get_next_indice( hCPE->hCoreCoder[0], NBITS_ELEMENT_MODE ) ) + { + hCPE->element_mode = IVAS_CPE_MDCT; + } + else + { + hCPE->element_mode = IVAS_CPE_DFT; + } +#ifdef NONBE_FIX_849_OMASA_BFI_CRASH } +#endif if ( hCPE->element_mode == IVAS_CPE_MDCT ) {