From defd7af6ddf789abf1ae57288200544bf004c605 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Thu, 26 Jun 2025 17:33:14 +0200 Subject: [PATCH 1/4] scale EXT output by 0.5 in OSBA high-BR mode --- lib_com/options.h | 2 +- lib_dec/ivas_jbm_dec.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 8dd815456f..0208e83858 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -176,7 +176,7 @@ #define NONBE_1250_MCMASA_LS_OUTPUT /* VA: issue 1250: fix crash in McMASA to custom LS output decoding */ #define NONBE_1302_FIX_OMASA_JBM_FLUSH /* VA: issue 1302: fix OMASA JBM bitrate switching flush in binaural output */ #define NONBE_1324_TC_BUFFER_MEMOERY_KEEP /* VA: issue 1324: do not reset TSM memory in JBM bitrate switching */ -#define NONBE_FIX_1337_MISSING_DIRECTIVITY_DISTATT_EXTREND /* Eri: issue 1337: Missing directivity setting and distance attenuation in external renderer IVAS_rend */ +#define NONBE_1339_FIXOSBA_EXT_LOUDNESS /* FhG: issue 1339: apply scaling with EXT output in OSBA high-BR mode */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 2c6a571c75..1d0e63df3a 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -1110,6 +1110,12 @@ ivas_error ivas_jbm_dec_render( { mvr2r( p_tc[n], p_output[n], *nSamplesRendered ); } +#ifdef NONBE_1339_FIXOSBA_EXT_LOUDNESS + for ( n = 0; n < st_ivas->hDecoderConfig->nchan_out; n++ ) + { + v_multc( p_output[n], 0.5f, p_output[n], *nSamplesRendered ); + } +#endif } else { -- GitLab From 407b1fe4af2bb3fdc6deb5c9e70190c60070adc0 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Mon, 30 Jun 2025 16:33:28 +0200 Subject: [PATCH 2/4] add missing define NONBE_FIX_1337_MISSING_DIRECTIVITY_DISTATT_EXTREND again --- lib_com/options.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lib_com/options.h b/lib_com/options.h index 0208e83858..5f9184a30a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -176,6 +176,7 @@ #define NONBE_1250_MCMASA_LS_OUTPUT /* VA: issue 1250: fix crash in McMASA to custom LS output decoding */ #define NONBE_1302_FIX_OMASA_JBM_FLUSH /* VA: issue 1302: fix OMASA JBM bitrate switching flush in binaural output */ #define NONBE_1324_TC_BUFFER_MEMOERY_KEEP /* VA: issue 1324: do not reset TSM memory in JBM bitrate switching */ +#define NONBE_FIX_1337_MISSING_DIRECTIVITY_DISTATT_EXTREND /* Eri: issue 1337: Missing directivity setting and distance attenuation in external renderer IVAS_rend */ #define NONBE_1339_FIXOSBA_EXT_LOUDNESS /* FhG: issue 1339: apply scaling with EXT output in OSBA high-BR mode */ /* ##################### End NON-BE switches ########################### */ -- GitLab From e244173daadbdb14866cb94d03de535a8632696d Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Fri, 4 Jul 2025 10:44:12 +0200 Subject: [PATCH 3/4] set gain to 0 when rendering from OSBA in the exernal renderer --- apps/renderer.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/renderer.c b/apps/renderer.c index b90244b3ad..510b8e201d 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -54,6 +54,7 @@ #endif #include "wmc_auto.h" +#define NONBE_1339_FIXOSBA_EXT_LOUDNESS_RENDERER #define WMC_TOOL_SKIP @@ -3498,13 +3499,21 @@ static void parseCombinedFormatInput( inConfig->numAmbisonicsBuses = 1; inConfig->ambisonicsBuses[0].audioConfig = audioConfig; inConfig->ambisonicsBuses[0].inputChannelIndex = inConfig->numAudioObjects; +#ifdef NONBE_1339_FIXOSBA_EXT_LOUDNESS_RENDERER + inConfig->ambisonicsBuses[0].gain_dB = 0.0f; +#else inConfig->ambisonicsBuses[0].gain_dB = -6.f; +#endif *configString += 4; /* Modify input gain for objects too */ for ( int16_t i = 0; i < inConfig->numAudioObjects; ++i ) { +#ifdef NONBE_1339_FIXOSBA_EXT_LOUDNESS_RENDERER + inConfig->audioObjects[i].gain_dB = 0.0f; +#else inConfig->audioObjects[i].gain_dB = -6.f; +#endif } } else if ( audioConfig == IVAS_AUDIO_CONFIG_MASA1 || audioConfig == IVAS_AUDIO_CONFIG_MASA2 ) -- GitLab From b927c9d33913ec4c6591349c43460078c30fdf42 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Thu, 10 Jul 2025 10:15:38 +0200 Subject: [PATCH 4/4] revert changes to apps/renderer.c --- apps/renderer.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index 206a82704b..5242242f7f 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -54,7 +54,6 @@ #endif #include "wmc_auto.h" -#define NONBE_1339_FIXOSBA_EXT_LOUDNESS_RENDERER #define WMC_TOOL_SKIP @@ -3491,21 +3490,13 @@ static void parseCombinedFormatInput( inConfig->numAmbisonicsBuses = 1; inConfig->ambisonicsBuses[0].audioConfig = audioConfig; inConfig->ambisonicsBuses[0].inputChannelIndex = inConfig->numAudioObjects; -#ifdef NONBE_1339_FIXOSBA_EXT_LOUDNESS_RENDERER - inConfig->ambisonicsBuses[0].gain_dB = 0.0f; -#else inConfig->ambisonicsBuses[0].gain_dB = -6.f; -#endif *configString += 4; /* Modify input gain for objects too */ for ( int16_t i = 0; i < inConfig->numAudioObjects; ++i ) { -#ifdef NONBE_1339_FIXOSBA_EXT_LOUDNESS_RENDERER - inConfig->audioObjects[i].gain_dB = 0.0f; -#else inConfig->audioObjects[i].gain_dB = -6.f; -#endif } } else if ( audioConfig == IVAS_AUDIO_CONFIG_MASA1 || audioConfig == IVAS_AUDIO_CONFIG_MASA2 ) -- GitLab