diff --git a/lib_com/options.h b/lib_com/options.h index 953ce6f489963f1ef0daf0324670015602c8952e..298c4bff0e05d065ad1a156771d4aab1e361d718 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -162,6 +162,7 @@ #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1226_FASTCONV_HRTF_LOADING_OPTIM /* VA: issue 1226: for FastConv binaural renderer in decoder, load only HTRT coefficient set that is needed */ #define FIX_1227_Crend_HRTF_LOADING_OPTIM /* VA: issue 1227: for Crend binaural renderer in decoder, load only HTRT coefficient set that is needed */ +#define FIX_1222_OMASA_DEC_CHANNEL_BUFFERS /* VA: issue 1222: Reduction of the number of channel buffers in OMASA decoder */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index 2b9d07190104c9b06d57ef72243a5722ea53d4ed..e0b12fd9627a9ef72629e19b9de36c24a6d158c5 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -1483,7 +1483,11 @@ ivas_error ivas_masa_dec_reconfigure( { if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) { +#ifdef FIX_1222_OMASA_DEC_CHANNEL_BUFFERS + tc_nchan_to_allocate = BINAURAL_CHANNELS + st_ivas->nchan_ism; +#else tc_nchan_to_allocate = 2 * BINAURAL_CHANNELS + 2; +#endif } else { diff --git a/lib_rend/ivas_dirac_dec_binaural_functions.c b/lib_rend/ivas_dirac_dec_binaural_functions.c index 7acf77dfd930f9ca90c4d5cae518a19756cf9407..dc617485458ca9ba557a92de19fb10cc13f4efe0 100644 --- a/lib_rend/ivas_dirac_dec_binaural_functions.c +++ b/lib_rend/ivas_dirac_dec_binaural_functions.c @@ -321,7 +321,11 @@ ivas_error ivas_dirac_dec_init_binaural_data( nchan_to_allocate = 2 * BINAURAL_CHANNELS; if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) { +#ifdef FIX_1222_OMASA_DEC_CHANNEL_BUFFERS + nchan_to_allocate = BINAURAL_CHANNELS + st_ivas->nchan_ism; +#else nchan_to_allocate = 2 * BINAURAL_CHANNELS + 2; +#endif } n_samples_granularity = NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS ); diff --git a/lib_rend/ivas_output_init.c b/lib_rend/ivas_output_init.c index 594f09ea472f3bc23f4c8db727cde9d294e8e22d..46025d48293fd8a3303a54677715ce9fc556189f 100644 --- a/lib_rend/ivas_output_init.c +++ b/lib_rend/ivas_output_init.c @@ -344,7 +344,11 @@ int16_t ivas_get_nchan_buffers_dec( } else if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) { +#ifdef FIX_1222_OMASA_DEC_CHANNEL_BUFFERS + nchan_out_buff = max( nchan_out_buff, BINAURAL_CHANNELS + st_ivas->nchan_ism ); +#else nchan_out_buff = max( nchan_out_buff, 2 * BINAURAL_CHANNELS + 2 ); +#endif } else if ( output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) {