From 4586a1a30e09f4fd7aadf521def132d7556ad7db Mon Sep 17 00:00:00 2001 From: Stefan Bayer Date: Mon, 26 Feb 2024 16:01:06 +0100 Subject: [PATCH 1/3] fix for #1014, fix OSBA discrete object stereo output, update TC buffer subframe information in the ISM rendering for the discrete objects --- lib_com/options.h | 1 + lib_dec/ivas_ism_renderer.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index f79b346839..12730e95f0 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -184,6 +184,7 @@ #define NONBE_FIX_991_PARAMBIN_BINARY_HRTF /* Nokia: issue #991: fix using of binary file HRTF in ParamBin */ #define NONBE_FIX_1005_MC_RS_TCBUFFER_UPDATE /* FhG: issue #1005: fix TC Buffer update at a MC rate switch */ #define NONBE_FIX_864_JBM_RENDER_FRAMESIZE /* FhG: issue #864: fix different behaviour of JBM TSM with different render frame sizes */ +#define NONBE_FIX_1014_OSBA_JBM_STEREO /* FhG: issue #1014: fix stereo output for OSBA*/ /* ##################### End NON-BE switches ########################### */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_ism_renderer.c b/lib_dec/ivas_ism_renderer.c index 3dbc6a6190..07d6217cc4 100644 --- a/lib_dec/ivas_ism_renderer.c +++ b/lib_dec/ivas_ism_renderer.c @@ -168,7 +168,10 @@ void ivas_ism_render_sf( slots_to_render -= st_ivas->hTcBuffer->subframe_nbslots[last_sf]; last_sf++; } - +#ifdef DEBUGGING + assert( slots_to_render == 0 ); + assert( last_sf <= st_ivas->hTcBuffer->nb_subframes ); +#endif num_objects = st_ivas->nchan_transport; if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) { @@ -276,7 +279,11 @@ void ivas_ism_render_sf( ivas_combined_orientation_update_index( st_ivas->hCombinedOrientationData, n_samples_in_subframe ); n_samples_rendered_loop += n_samples_in_subframe; +#ifdef NONBE_FIX_1014_OSBA_JBM_STEREO + if ( st_ivas->renderer_type == RENDERER_TD_PANNING || st_ivas->renderer_type == RENDERER_OSBA_STEREO ) +#else if ( st_ivas->renderer_type == RENDERER_TD_PANNING ) +#endif { st_ivas->hTcBuffer->subframes_rendered += 1; st_ivas->hTcBuffer->slots_rendered += st_ivas->hTcBuffer->subframe_nbslots[subframe_idx]; -- GitLab From 8f787919d58bc9b0ef98fd2cc99df1c48c18cc33 Mon Sep 17 00:00:00 2001 From: Stefan Bayer Date: Wed, 28 Feb 2024 08:01:59 +0100 Subject: [PATCH 2/3] fix for #1014, #1015, #1016, update info about rendered frames and slots in the TC buffer in the correct way in the discrete ISM renderer --- lib_com/options.h | 2 +- lib_dec/ivas_ism_renderer.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 12730e95f0..736211a7f2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -184,7 +184,7 @@ #define NONBE_FIX_991_PARAMBIN_BINARY_HRTF /* Nokia: issue #991: fix using of binary file HRTF in ParamBin */ #define NONBE_FIX_1005_MC_RS_TCBUFFER_UPDATE /* FhG: issue #1005: fix TC Buffer update at a MC rate switch */ #define NONBE_FIX_864_JBM_RENDER_FRAMESIZE /* FhG: issue #864: fix different behaviour of JBM TSM with different render frame sizes */ -#define NONBE_FIX_1014_OSBA_JBM_STEREO /* FhG: issue #1014: fix stereo output for OSBA*/ +#define NONBE_FIX_1014_1015_1016_OSBA_JBM_STEREO /* FhG: issues #1014, #1015, #1016: fix tc buffer info update in the discrete ism renderer */ /* ##################### End NON-BE switches ########################### */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_ism_renderer.c b/lib_dec/ivas_ism_renderer.c index 07d6217cc4..d5364a4bb6 100644 --- a/lib_dec/ivas_ism_renderer.c +++ b/lib_dec/ivas_ism_renderer.c @@ -279,8 +279,10 @@ void ivas_ism_render_sf( ivas_combined_orientation_update_index( st_ivas->hCombinedOrientationData, n_samples_in_subframe ); n_samples_rendered_loop += n_samples_in_subframe; -#ifdef NONBE_FIX_1014_OSBA_JBM_STEREO - if ( st_ivas->renderer_type == RENDERER_TD_PANNING || st_ivas->renderer_type == RENDERER_OSBA_STEREO ) +#ifdef NONBE_FIX_1014_1015_1016_OSBA_JBM_STEREO + /* update rendered subframe and slots info for all cases apart from a following crend call, the update will + then happen in the crend call*/ + if ( st_ivas->renderer_type != RENDERER_BINAURAL_MIXER_CONV_ROOM ) #else if ( st_ivas->renderer_type == RENDERER_TD_PANNING ) #endif -- GitLab From dcf6b7e71574b62efbe4684d2ae8528f43c3668b Mon Sep 17 00:00:00 2001 From: Stefan Bayer Date: Wed, 28 Feb 2024 08:05:35 +0100 Subject: [PATCH 3/3] fix for #1014, #1015, #1016, adress formatting comment --- lib_dec/ivas_ism_renderer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib_dec/ivas_ism_renderer.c b/lib_dec/ivas_ism_renderer.c index d5364a4bb6..6f5a2d90eb 100644 --- a/lib_dec/ivas_ism_renderer.c +++ b/lib_dec/ivas_ism_renderer.c @@ -172,6 +172,7 @@ void ivas_ism_render_sf( assert( slots_to_render == 0 ); assert( last_sf <= st_ivas->hTcBuffer->nb_subframes ); #endif + num_objects = st_ivas->nchan_transport; if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) { -- GitLab