From b8bcb70c8855037cc150a94cd854a3109ee14bc6 Mon Sep 17 00:00:00 2001 From: Stefan Bayer Date: Tue, 6 Feb 2024 09:26:03 +0100 Subject: [PATCH 1/2] fix #983, use the correct number of objects for the gain calculations for discrete objects --- lib_com/options.h | 1 + lib_dec/ivas_ism_param_dec.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index ff06f7b58a..7769b18788 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -158,6 +158,7 @@ #define FIX_955_FASTCONV_REND_IN_ISM /* VA: put FastConv rendering call under DEBUGGING */ #define FIX_969_USAN_IGF_ARITH /* FhG: issue 969: fix USAN error in igf_sce_dec; same issue as #962 */ #define FIX_959_MASA_LINEAR_REND /* VA: issue 959: remove unused calling of ivas_sba_linear_renderer() in MASA rendering */ +#define FIX_983_DISC_ISM_DIGEST_NUM_OBJS /* FhG: issue #983: the discrete ISM digest function uses the wrong number of objects */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index da12741551..ab452983bc 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1029,7 +1029,11 @@ void ivas_ism_dec_digest_tc( } /* also get the gains here */ +#ifdef FIX_983_DISC_ISM_DIGEST_NUM_OBJS + num_objects = st_ivas->nchan_ism; +#else num_objects = st_ivas->nchan_transport; +#endif for ( i = 0; i < num_objects; i++ ) { mvr2r( st_ivas->hIsmRendererData->gains[i], st_ivas->hIsmRendererData->prev_gains[i], MAX_OUTPUT_CHANNELS ); -- GitLab From a7037668fde8792e59eab8e37c23646ae0641e9a Mon Sep 17 00:00:00 2001 From: Stefan Bayer Date: Wed, 7 Feb 2024 15:49:16 +0100 Subject: [PATCH 2/2] fix for #983, improvement, remove unnecessary variable --- lib_dec/ivas_ism_param_dec.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index ab452983bc..b458e2c713 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -996,7 +996,11 @@ void ivas_ism_dec_digest_tc( st_ivas->renderer_type == RENDERER_OSBA_STEREO || ( st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM && st_ivas->hDecoderConfig->Opt_Headrotation == 0 ) ) { +#ifdef FIX_983_DISC_ISM_DIGEST_NUM_OBJS + int16_t i; +#else int16_t i, num_objects; +#endif int16_t azimuth, elevation; /* we have a full frame interpolator, adapt it */ @@ -1030,11 +1034,12 @@ void ivas_ism_dec_digest_tc( /* also get the gains here */ #ifdef FIX_983_DISC_ISM_DIGEST_NUM_OBJS - num_objects = st_ivas->nchan_ism; + for ( i = 0; i < st_ivas->nchan_ism; i++ ) #else num_objects = st_ivas->nchan_transport; -#endif + for ( i = 0; i < num_objects; i++ ) +#endif { mvr2r( st_ivas->hIsmRendererData->gains[i], st_ivas->hIsmRendererData->prev_gains[i], MAX_OUTPUT_CHANNELS ); -- GitLab