From 7394953440a657d429772e3ccfc2f1045fd10779 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Fri, 16 May 2025 11:45:21 +0200 Subject: [PATCH 1/3] port float MR !1357 --- lib_com/options.h | 3 +++ lib_dec/ivas_jbm_dec.c | 5 +++++ lib_dec/ivas_osba_dec.c | 21 ++++++++++++++++++--- lib_rend/ivas_output_init.c | 7 +++++++ 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index aa2bbfdd3..dd17c8552 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -211,6 +211,9 @@ #define NONBE_FIX_947_STEREO_DMX_EVS_POC /* Orange: Fix clicks on POC */ #define NONBE_FIX_947_STEREO_DMX_EVS_PHA /* Orange: Fix issues on PHA */ + +#define NONBE_FIX_979_OSBA_STEREO_5MS /* FhG : issue #979 : 5ms and 20ms output different for OSBA and stereo */ + /* #################### End BASOP porting switches ############################ */ /* clang-format on */ diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 290118cc5..6f8d16aab 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -984,7 +984,12 @@ ivas_error ivas_jbm_dec_render( { for ( n = 0; n < st_ivas->hTcBuffer->nchan_buffer_full; n++ ) { + +#ifdef NONBE_FIX_979_OSBA_STEREO_5MS + p_tc[n] = &p_output[n][st_ivas->hTcBuffer->n_samples_rendered]; +#else p_tc[n] = p_output[n]; +#endif } for ( n = 0; n < MAX_TRANSPORT_CHANNELS + MAX_NUM_OBJECTS; n++ ) diff --git a/lib_dec/ivas_osba_dec.c b/lib_dec/ivas_osba_dec.c index 2800aedd8..24abc566e 100644 --- a/lib_dec/ivas_osba_dec.c +++ b/lib_dec/ivas_osba_dec.c @@ -271,10 +271,25 @@ ivas_error ivas_osba_render_sf( p_output_ism[n] = &output_ism[n][0]; } - for ( n = 0; n < st_ivas->nchan_ism; n++ ) - { - mvr2r( p_output[n], output_ism[n], nSamplesAsked ); +#ifdef NONBE_FIX_979_OSBA_STEREO_5MS + if ( !st_ivas->hDecoderConfig->Opt_tsm ) + { + int16_t tc_offset; + tc_offset = st_ivas->hTcBuffer->n_samples_rendered; +#endif + for ( n = 0; n < st_ivas->nchan_ism; n++ ) + { + +#ifdef NONBE_FIX_979_OSBA_STEREO_5MS + mvr2r( &p_output[n][tc_offset], &output_ism[n][tc_offset], nSamplesAsked ); +#else + mvr2r( p_output[n], output_ism[n], nSamplesAsked ); +#endif + } +#ifdef NONBE_FIX_979_OSBA_STEREO_5MS } +#endif + if ( ( error = ivas_sba_dec_render( st_ivas, nSamplesAsked, nSamplesRendered, nSamplesAvailableNext, p_output ) ) != IVAS_ERR_OK ) { diff --git a/lib_rend/ivas_output_init.c b/lib_rend/ivas_output_init.c index c9894e488..6445a9e64 100644 --- a/lib_rend/ivas_output_init.c +++ b/lib_rend/ivas_output_init.c @@ -293,6 +293,13 @@ int16_t ivas_get_nchan_buffers_dec( { nchan_out_buff = max( nchan_out_buff, st_ivas->hOutSetup.nchan_out_woLFE + st_ivas->hOutSetup.num_lfe ); } +#ifdef NONBE_FIX_979_OSBA_STEREO_5MS + else if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) + { + nchan_out_buff = max( nchan_out_buff, 2 * BINAURAL_CHANNELS + 2 ); + } +#endif + else if ( output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) { nchan_out_buff = max( audioCfg2channels( st_ivas->transport_config ), audioCfg2channels( st_ivas->intern_config ) ); -- GitLab From 1c1515f634eee2125f2407380634336a023e3643 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Fri, 16 May 2025 11:57:34 +0200 Subject: [PATCH 2/3] fix formatting --- lib_dec/ivas_osba_dec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib_dec/ivas_osba_dec.c b/lib_dec/ivas_osba_dec.c index 24abc566e..9437bdb55 100644 --- a/lib_dec/ivas_osba_dec.c +++ b/lib_dec/ivas_osba_dec.c @@ -272,8 +272,8 @@ ivas_error ivas_osba_render_sf( } #ifdef NONBE_FIX_979_OSBA_STEREO_5MS - if ( !st_ivas->hDecoderConfig->Opt_tsm ) - { + if ( !st_ivas->hDecoderConfig->Opt_tsm ) + { int16_t tc_offset; tc_offset = st_ivas->hTcBuffer->n_samples_rendered; #endif @@ -283,7 +283,7 @@ ivas_error ivas_osba_render_sf( #ifdef NONBE_FIX_979_OSBA_STEREO_5MS mvr2r( &p_output[n][tc_offset], &output_ism[n][tc_offset], nSamplesAsked ); #else - mvr2r( p_output[n], output_ism[n], nSamplesAsked ); + mvr2r( p_output[n], output_ism[n], nSamplesAsked ); #endif } #ifdef NONBE_FIX_979_OSBA_STEREO_5MS -- GitLab From 6fbddda7d8d42e661c071e5d801f26b518c97fc7 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Fri, 16 May 2025 12:37:55 +0200 Subject: [PATCH 3/3] delete extra newline --- lib_rend/ivas_output_init.c | 1 - 1 file changed, 1 deletion(-) diff --git a/lib_rend/ivas_output_init.c b/lib_rend/ivas_output_init.c index 6445a9e64..11eec0dd7 100644 --- a/lib_rend/ivas_output_init.c +++ b/lib_rend/ivas_output_init.c @@ -299,7 +299,6 @@ int16_t ivas_get_nchan_buffers_dec( nchan_out_buff = max( nchan_out_buff, 2 * BINAURAL_CHANNELS + 2 ); } #endif - else if ( output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) { nchan_out_buff = max( audioCfg2channels( st_ivas->transport_config ), audioCfg2channels( st_ivas->intern_config ) ); -- GitLab