diff --git a/lib_com/options.h b/lib_com/options.h index ed8f4a3f42761a2acf927a867f984bae6e37c7d1..8a6bea2e943448978134e429c4c6b491cef67b4a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -211,7 +211,7 @@ #define NONBE_FIX_1110_STEREO_DTX_BRATE_SWITCHING /* VA: issue 1110: fix encoder crash in the stereo DTX bitrate switching condition */ #define NONBE_1894_OSBA_SCALING /* FhG: port OSBA scaling MRs (298,355,360) jointly */ -#define NONBE_FIX_1141_OSBA_ROOM_RENDERING /* FhG: Fix for issue 1141: render objects in OSBA decoder with room effect */ +#define NONBE_FIX_1141_OSBA_ROOM_RENDERING /* FhG: Fix for issue 1141: render objects in OSBA decoder with room effect */ #define NONBE_1360_LFE_DELAY /* Dlb: LFE delay alignment when rendering in CLDFB domain*/ #define NONBE_1229_FIX_ISM1_DPID /* Eri: issue 1229: fix bug causing ISM 1 to use default -dpid instead of the specified one */ #define NONBE_SVD_OPTIMIZATION diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 78c11ceb5892a0fb1a83ffc84a2f5c7206e0cfdc..b7fbc2cfa55b809fb1ec4acafa35305d11c863cb 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -2241,11 +2241,16 @@ void ivas_dirac_dec_render_sf( /* render objects in combined format onto the CICP19 channels for BINAURAL_ROOM_IR */ if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC && st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { +#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING int16_t in_ch; for ( in_ch = 0; in_ch < st_ivas->nchan_ism; in_ch++ ) { - int16_t j, k, j2, l; - int16_t num_objects, nchan_out_woLFE, lfe_index; +#endif + int16_t j, k, l; +#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING + int16_t j2, lfe_index; +#endif + int16_t num_objects, nchan_out_woLFE; int16_t az1, el1; int16_t n_slots_to_render; int16_t n_samples_to_render; @@ -2268,7 +2273,7 @@ void ivas_dirac_dec_render_sf( #ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING st_ivas->hIsmRendererData->interp_offset = 0; #else - interp_offset = 0; + interp_offset = 0; #endif } @@ -2284,14 +2289,19 @@ void ivas_dirac_dec_render_sf( } } - lfe_index = 0; - for ( j = 0, j2 = 0; j < nchan_out_woLFE; j++, j2++ ) +#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING + for ( j = 0; j < nchan_out_woLFE; j++ ) +#else + lfe_index = 0; + for ( j = 0, j2 = 0; j < nchan_out_woLFE; j++, j2++ ) +#endif { +#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING if ( ( st_ivas->hIntSetup.num_lfe > 0 ) && ( st_ivas->hIntSetup.index_lfe[lfe_index] == j ) ) { ( lfe_index < ( st_ivas->hIntSetup.num_lfe - 1 ) ) ? ( lfe_index++, j2++ ) : j2++; } - +#endif gain = st_ivas->hIsmRendererData->gains[i][j]; prev_gain = st_ivas->hIsmRendererData->prev_gains[i][j]; if ( fabsf( gain ) > 0.0f || fabsf( prev_gain ) > 0.0f ) @@ -2302,7 +2312,7 @@ void ivas_dirac_dec_render_sf( #ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING w1 = &st_ivas->hIsmRendererData->interpolator[st_ivas->hIsmRendererData->interp_offset]; #else - w1 = &st_ivas->hIsmRendererData->interpolator[interp_offset]; + w1 = &st_ivas->hIsmRendererData->interpolator[interp_offset]; #endif tc_re = pppQMfFrame_ts_re[nchan_transport + i][0]; @@ -2317,8 +2327,13 @@ void ivas_dirac_dec_render_sf( for ( l = 0; l < hSpatParamRendCom->num_freq_bands; l++ ) { - Cldfb_RealBuffer[j2][k][l] += g * *( tc_re++ ); - Cldfb_ImagBuffer[j2][k][l] += g * *( tc_im++ ); +#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING + Cldfb_RealBuffer[j][k][l] += g * *( tc_re++ ); + Cldfb_ImagBuffer[j][k][l] += g * *( tc_im++ ); +#else + Cldfb_RealBuffer[j2][k][l] += g * *( tc_re++ ); + Cldfb_ImagBuffer[j2][k][l] += g * *( tc_im++ ); +#endif } w1 += hSpatParamRendCom->num_freq_bands; } @@ -2331,7 +2346,9 @@ void ivas_dirac_dec_render_sf( } } } +#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING } +#endif #ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING st_ivas->hIsmRendererData->interp_offset += hSpatParamRendCom->num_freq_bands * st_ivas->hSpar->subframe_nbslots[st_ivas->hSpar->subframes_rendered]; #endif