diff --git a/lib_com/options.h b/lib_com/options.h index 96f7e047406befd221c8cac73daefcb6c376234a..5e2938d7605e379309c511360c5ade3db2eb0aae 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -169,6 +169,7 @@ #endif #define FIX_264_AUDIO_CHANNELS_TO_HEAP /* VA: issue 243: Move audio channels memory from stack to heap */ +#define FIX_691_OSBA_CRASH /* FhG: Fix for issue 691: Crash for OSBA Stereo out */ /* ################## End BE DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 9ce01b493e4d39f8dd8c425fa9c2b0c11e8c0d86..dc62b1470ff50a2c6854aaddb7699e93fc0df747 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -1532,6 +1532,20 @@ ivas_error ivas_init_decoder( } } +#ifdef FIX_691_OSBA_CRASH + /* create CPE element for DFT Stereo like upmix */ + if ( st_ivas->sba_dirac_stereo_flag && st_ivas->nCPE == 0 ) + { + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) + { + return error; + } + + st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ + st_ivas->hCPE[0]->hCoreCoder[1] = NULL; + } +#endif + #ifdef OSBA_BR_SWITCHING if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) {