From c7e76b2555fde379bf92bd0a895d0afc27d23720 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 29 Jan 2026 20:54:41 +0100 Subject: [PATCH 1/2] FIX_2396_OOB_JBM_16KHZ --- lib_com/options.h | 2 ++ lib_dec/ivas_dec.c | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index e327b58ecb..6e37b5440b 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -171,6 +171,8 @@ #define FIX_1465_SWB_TBE_RANDOM_VECTOR_CREATION /* Dolby: issue 1465: Fix constant in create_random_vector() to allow more reliable fixed point port */ #define FIX_BASOP_2317_UNINIT_VALUE_IN_STEREO_CNG /* Eri: Basop issue 2317: Uninitialized value read in case of DTX and BW switching */ #define FIX_1283_STEREO_DFT_COLLAPSE /* FhG: issue 1283: fix for critical issue with DFT stereo core coder */ +#define FIX_2396_OOB_JBM_16KHZ /* VA: basop issue 2396: fix OOB scaling of buffer output_32_fx[] in JBM at 16kHz */ + /* ##################### End NON-BE switches ########################### */ /* ################## End MAINTENANCE switches ######################### */ diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index bebc8a6a42..15f1d80dfc 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -79,6 +79,30 @@ ivas_error ivas_dec( output_frame = (int16_t) ( output_Fs / FRAMES_PER_SEC ); +#ifdef FIX_2396_OOB_JBM_16KHZ + if ( st_ivas->hDecoderConfig->Opt_tsm ) + { + int16_t len_offset, offset; + DECODER_TC_BUFFER_HANDLE hTcBuffer; + hTcBuffer = st_ivas->hTcBuffer; + + /* buffers are shared between 'hTcBuffer->tc[]' and 'p_output_f[]': + set TC buffers to their original locations if they were changed in ivas_dec_feed_tc_to_renderer() */ + len_offset = NS2SA( st_ivas->hDecoderConfig->output_Fs, MAX_JBM_L_FRAME_NS ); + + IF( LT_16( len_offset, L_FRAME48k ) ) + { + offset = 0; + for( n = 0; n < s_max( hTcBuffer->nchan_transport_rend, hTcBuffer->nchan_buffer_full ); n++ ) + { + hTcBuffer->tc[n] = &hTcBuffer->tc_buffer[offset]; + st_ivas->p_output_f[n] = hTcBuffer->tc[n]; + offset += L_FRAME48k; + } + } + } + +#endif /* set pointers to transport channels audio */ for ( n = 0; n < MAX_TRANSPORT_CHANNELS; n++ ) { -- GitLab From 25ab20c9943a8ddd7c0ca181e9648c7a1b51e884 Mon Sep 17 00:00:00 2001 From: vaclav Date: Fri, 30 Jan 2026 09:56:21 +0100 Subject: [PATCH 2/2] clang-format --- lib_dec/ivas_dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index 15f1d80dfc..bb21d5f0ad 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -93,7 +93,7 @@ ivas_error ivas_dec( IF( LT_16( len_offset, L_FRAME48k ) ) { offset = 0; - for( n = 0; n < s_max( hTcBuffer->nchan_transport_rend, hTcBuffer->nchan_buffer_full ); n++ ) + for ( n = 0; n < s_max( hTcBuffer->nchan_transport_rend, hTcBuffer->nchan_buffer_full ); n++ ) { hTcBuffer->tc[n] = &hTcBuffer->tc_buffer[offset]; st_ivas->p_output_f[n] = hTcBuffer->tc[n]; -- GitLab