Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,7 @@ #define NONBE_1240_FIX_CORE_SELECTION_ISM_SW /* VA: issue 1240: Remove the forcing of the TCX core in ISM when switching from a high bitarte to a low one */ #define FIX_1101_CLEANING_JBM_CALL /* VA: issue 1101: remove obsolete call of ivas_jbm_dec_tc_buffer_open() */ #define NONBE_FIX_1337_MISSING_DIRECTIVITY_DISTATT_EXTREND /* Eri: issue 1337: Missing directivity setting and distance attenuation in external renderer IVAS_rend */ #define NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH /* VA: issue 1220: fix bug in renderer flush in OMASA 1ISM JBM bitrate switching */ /* #################### End BASOP porting switches ############################ */ Loading lib_dec/ivas_jbm_dec_fx.c +12 −1 Original line number Diff line number Diff line Loading @@ -2688,7 +2688,7 @@ ivas_error ivas_jbm_dec_render_fx( } /*--------------------------------------------------------------------------* * ivas_jbm_dec_dec_flush_renderer() * ivas_jbm_dec_flush_renderer() * * Flush samples if renderer granularity changes on a bitrate change *--------------------------------------------------------------------------*/ Loading Loading @@ -2887,7 +2887,11 @@ ivas_error ivas_jbm_dec_flush_renderer_fx( { IF( EQ_16( ism_mode_old, ISM_MASA_MODE_DISC ) ) { #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH Word32 *tc_local_fx[MAX_NUM_OBJECTS]; #else Word32 *tc_local_fx[MAX_TRANSPORT_CHANNELS]; #endif move16(); FOR( ch_idx = 0; ch_idx < st_ivas->nchan_ism; ch_idx++ ) Loading @@ -2896,6 +2900,12 @@ ivas_error ivas_jbm_dec_flush_renderer_fx( Copy32( st_ivas->hMasaIsmData->delayBuffer_fx[ch_idx], tc_local_fx[ch_idx], st_ivas->hMasaIsmData->delayBuffer_size ); /*Q11*/ } #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH IF( NE_32( ( error = ivas_td_binaural_renderer_sf_fx( st_ivas, p_output_fx, hTcBuffer->n_samples_granularity ) ), IVAS_ERR_OK ) ) { return error; } #else IF( st_ivas->nchan_ism > 0 ) { IF( NE_32( ( error = ivas_td_binaural_renderer_sf_fx( st_ivas, p_output_fx, hTcBuffer->n_samples_granularity ) ), IVAS_ERR_OK ) ) Loading @@ -2914,6 +2924,7 @@ ivas_error ivas_jbm_dec_flush_renderer_fx( move16(); move16(); } #endif } } ELSE IF( EQ_16( st_ivas->ivas_format, SBA_ISM_FORMAT ) ) Loading lib_dec/ivas_objectRenderer_internal_fx.c +6 −0 Original line number Diff line number Diff line Loading @@ -97,7 +97,13 @@ ivas_error ivas_td_binaural_renderer_sf_fx( Word16 enableCombinedOrientation; /* Set the number of ISMs */ #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH test(); test(); IF( EQ_32( st_ivas->ivas_format, MASA_ISM_FORMAT ) || ( EQ_32( st_ivas->ivas_format, MASA_FORMAT ) && GT_16( st_ivas->nchan_ism, 0 ) ) ) #else IF( EQ_32( st_ivas->ivas_format, MASA_ISM_FORMAT ) ) #endif { nchan_ism_internal = st_ivas->nchan_ism; move16(); Loading lib_dec/ivas_omasa_dec_fx.c +11 −2 Original line number Diff line number Diff line Loading @@ -1233,17 +1233,24 @@ ivas_error ivas_omasa_dirac_td_binaural_jbm_fx( ) { Word16 n; move16(); ivas_error error; #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH Word32 *p_sepobj_fx[BINAURAL_CHANNELS]; // Q11 Word32 data_separated_objects_fx[BINAURAL_CHANNELS][L_FRAME48k]; #else Word32 *p_sepobj_fx[MAX_NUM_OBJECTS]; // Q11 Word32 data_separated_objects_fx[MAX_NUM_OBJECTS][L_FRAME48k]; move16(); #endif Word16 slot_idx_start; slot_idx_start = st_ivas->hSpatParamRendCom->slots_rendered; move16(); #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH FOR( n = 0; n < BINAURAL_CHANNELS; n++ ) #else FOR( n = 0; n < MAX_NUM_OBJECTS; n++ ) #endif { p_sepobj_fx[n] = &data_separated_objects_fx[n][0]; } Loading Loading @@ -1281,6 +1288,7 @@ ivas_error ivas_omasa_dirac_td_binaural_jbm_fx( { return error; } st_ivas->nchan_transport = nchan_transport_orig; move16(); cldfb_slots = *nSamplesRendered / num_cldfb_bands; Loading Loading @@ -1321,6 +1329,7 @@ ivas_error ivas_omasa_dirac_td_binaural_jbm_fx( return IVAS_ERR_OK; } /*--------------------------------------------------------------------------* * ivas_omasa_rearrange_channels() * Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,7 @@ #define NONBE_1240_FIX_CORE_SELECTION_ISM_SW /* VA: issue 1240: Remove the forcing of the TCX core in ISM when switching from a high bitarte to a low one */ #define FIX_1101_CLEANING_JBM_CALL /* VA: issue 1101: remove obsolete call of ivas_jbm_dec_tc_buffer_open() */ #define NONBE_FIX_1337_MISSING_DIRECTIVITY_DISTATT_EXTREND /* Eri: issue 1337: Missing directivity setting and distance attenuation in external renderer IVAS_rend */ #define NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH /* VA: issue 1220: fix bug in renderer flush in OMASA 1ISM JBM bitrate switching */ /* #################### End BASOP porting switches ############################ */ Loading
lib_dec/ivas_jbm_dec_fx.c +12 −1 Original line number Diff line number Diff line Loading @@ -2688,7 +2688,7 @@ ivas_error ivas_jbm_dec_render_fx( } /*--------------------------------------------------------------------------* * ivas_jbm_dec_dec_flush_renderer() * ivas_jbm_dec_flush_renderer() * * Flush samples if renderer granularity changes on a bitrate change *--------------------------------------------------------------------------*/ Loading Loading @@ -2887,7 +2887,11 @@ ivas_error ivas_jbm_dec_flush_renderer_fx( { IF( EQ_16( ism_mode_old, ISM_MASA_MODE_DISC ) ) { #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH Word32 *tc_local_fx[MAX_NUM_OBJECTS]; #else Word32 *tc_local_fx[MAX_TRANSPORT_CHANNELS]; #endif move16(); FOR( ch_idx = 0; ch_idx < st_ivas->nchan_ism; ch_idx++ ) Loading @@ -2896,6 +2900,12 @@ ivas_error ivas_jbm_dec_flush_renderer_fx( Copy32( st_ivas->hMasaIsmData->delayBuffer_fx[ch_idx], tc_local_fx[ch_idx], st_ivas->hMasaIsmData->delayBuffer_size ); /*Q11*/ } #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH IF( NE_32( ( error = ivas_td_binaural_renderer_sf_fx( st_ivas, p_output_fx, hTcBuffer->n_samples_granularity ) ), IVAS_ERR_OK ) ) { return error; } #else IF( st_ivas->nchan_ism > 0 ) { IF( NE_32( ( error = ivas_td_binaural_renderer_sf_fx( st_ivas, p_output_fx, hTcBuffer->n_samples_granularity ) ), IVAS_ERR_OK ) ) Loading @@ -2914,6 +2924,7 @@ ivas_error ivas_jbm_dec_flush_renderer_fx( move16(); move16(); } #endif } } ELSE IF( EQ_16( st_ivas->ivas_format, SBA_ISM_FORMAT ) ) Loading
lib_dec/ivas_objectRenderer_internal_fx.c +6 −0 Original line number Diff line number Diff line Loading @@ -97,7 +97,13 @@ ivas_error ivas_td_binaural_renderer_sf_fx( Word16 enableCombinedOrientation; /* Set the number of ISMs */ #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH test(); test(); IF( EQ_32( st_ivas->ivas_format, MASA_ISM_FORMAT ) || ( EQ_32( st_ivas->ivas_format, MASA_FORMAT ) && GT_16( st_ivas->nchan_ism, 0 ) ) ) #else IF( EQ_32( st_ivas->ivas_format, MASA_ISM_FORMAT ) ) #endif { nchan_ism_internal = st_ivas->nchan_ism; move16(); Loading
lib_dec/ivas_omasa_dec_fx.c +11 −2 Original line number Diff line number Diff line Loading @@ -1233,17 +1233,24 @@ ivas_error ivas_omasa_dirac_td_binaural_jbm_fx( ) { Word16 n; move16(); ivas_error error; #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH Word32 *p_sepobj_fx[BINAURAL_CHANNELS]; // Q11 Word32 data_separated_objects_fx[BINAURAL_CHANNELS][L_FRAME48k]; #else Word32 *p_sepobj_fx[MAX_NUM_OBJECTS]; // Q11 Word32 data_separated_objects_fx[MAX_NUM_OBJECTS][L_FRAME48k]; move16(); #endif Word16 slot_idx_start; slot_idx_start = st_ivas->hSpatParamRendCom->slots_rendered; move16(); #ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH FOR( n = 0; n < BINAURAL_CHANNELS; n++ ) #else FOR( n = 0; n < MAX_NUM_OBJECTS; n++ ) #endif { p_sepobj_fx[n] = &data_separated_objects_fx[n][0]; } Loading Loading @@ -1281,6 +1288,7 @@ ivas_error ivas_omasa_dirac_td_binaural_jbm_fx( { return error; } st_ivas->nchan_transport = nchan_transport_orig; move16(); cldfb_slots = *nSamplesRendered / num_cldfb_bands; Loading Loading @@ -1321,6 +1329,7 @@ ivas_error ivas_omasa_dirac_td_binaural_jbm_fx( return IVAS_ERR_OK; } /*--------------------------------------------------------------------------* * ivas_omasa_rearrange_channels() * Loading