From b054e79a514f496a81fb39118487539cb64292c7 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 16 Oct 2025 09:41:37 +0200 Subject: [PATCH 1/2] port float MR 2075 --- lib_com/options.h | 5 - lib_dec/FEC_HQ_phase_ecu_fx.c | 49 ++----- lib_dec/ivas_jbm_dec_fx.c | 190 ++++++++++++-------------- lib_dec/ivas_sba_dec_fx.c | 4 - lib_dec/jbm_jb4sb_fx.c | 8 -- lib_dec/lib_dec_fx.c | 5 - lib_rend/ivas_objectRenderer_sfx_fx.c | 3 - 7 files changed, 101 insertions(+), 163 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index d963b98fa..1e0801cc6 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -98,22 +98,17 @@ #define FIX_1113_EXTREND_ISAR /* FhG: issue 1113: fix external renderer asserts for FOA/HOA2 and CLDFB config */ #define FIX_1166_TDREND_DIV0 /* FhG,Eri: issue 1166: potential divide by zero in TD Renderer */ #define NONBE_1203_MDCT2DFT_SWITCHING /* VA: issue 1203: fix severe artifacts during MDCT to DFT stereo switching when MDCT ITD is not used */ -#define NONBE_1122_JBM_FIX_PLAYOUT_DELAY_IN_DTX /* FhG: Avoid JBM ignoring safety margin and setting playout delay to 0 during DTX */ #define NONBE_1122_KEEP_EVS_MODE_UNCHANGED /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR. */ #define FIX_938_COMPILER_WARNING /* FhG: Fix compiler warning in ivas_mdct_core_reconstruct() */ #define FIX_1376_MISSING_ISM_METADATA /* FhG: IVAS_rend: throw error if there exists an ISM input without a corresponding metadata file path */ #define FIX_1385_INIT_IGF_STOP_FREQ /* FhG: Initialize infoIGFStopFreq in init_igf_dec() */ #define FIX_1387_INIT_PRM_SQQ /* FhG: initialize pointer prm_sqQ, which might be uninitialized in case of bfi == 1 */ -#define NONBE_1296_TDREND_ITD_OUT_OF_BOUNDS_ACCESS /* Eri: issue 1296: ITD resampling can occasionally read out of bounds, especially when the requested subframes are short (1.25 ms). Seen for headtracking+JBM. */ #define FIX_1349_TNS_CRASH /* FhG: Fix crash in TNS entropy coding, in case order of joint TNS coding is reduced to 0 */ -#define NONBE_FIX_1180_HQMDCT_PHECU_LT_MUTING /* Ericsson: issue 1180, corrected long term mute loop attnuation after 200ms in PhECU-PLC */ #define FIX_1179_USAN_PHASEECU /* Eri: issue 1179: better handling of 16 bit wrap around for very long(>200ms) FER-bursts */ #define NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH /* VA: issue 1199: fix bug in renderer flush in OMASA JBM bitrate switching */ #define NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* VA: issue 1200: fix bug in renderer flush in ISM JBM bitrate switching */ #define NONBE_1293_CRASH_FIRST_FRAME_LOST /* VA: issue 1293: fix G.192 decoder crash when first frame is lost */ #define FIX_1384_MSAN_stereo_tcx_core_enc /* VA: issue 1384: fix use-of-uninitialized value in stereo_tcx_core_enc() */ -#define NONBE_FIX_1297_SPAR_JBM_MEM_SAN /* Dolby: issue 1297, SPAR + JBM + BR switch memory sanitizer */ -#define NONBE_1303_GRANULARITY_OSBA_REND /* VA: issue 1303: Correctly set the granularity in OSBA, Disc mode, and BINAURAL_ROOM_REVERB output */ #define NONBE_1303_REND_GRANULARITY /* VA: issue 1303: Renderer granularity revision */ // object-editing feature porting diff --git a/lib_dec/FEC_HQ_phase_ecu_fx.c b/lib_dec/FEC_HQ_phase_ecu_fx.c index 4c6d6fe34..de3f39799 100644 --- a/lib_dec/FEC_HQ_phase_ecu_fx.c +++ b/lib_dec/FEC_HQ_phase_ecu_fx.c @@ -63,11 +63,7 @@ static Word16 sqrt2ndOrder( const Word16 ); static void windowing( const Word16 *, Word16 *, const Word16 *, const Word16, const Word16 ); static void windowing_ROM_optimized( const Word16 *, Word16 *, const Word16, const Word16, const Word16 ); static void fft_spec2_fx( const Word16[], Word32[], const Word16 ); -#ifdef NONBE_FIX_1180_HQMDCT_PHECU_LT_MUTING static void trans_ana_fx( const Word16 *, Word16 *, Word16 *, Word16 *, const Word16, const Word16, const Word16, const Word16, const Word16, Word16 *, Word16 *, Word16 *, Word16 * ); -#else -static void trans_ana_fx( const Word16 *, Word16 *, Word16 *, Word16 *, const Word16, const Word16, const Word16, const Word16, Word16 *, Word16 *, Word16 *, Word16 * ); -#endif static void peakfinder_fx( const Word16 *, const Word16, Word16 *, Word16 *, const Word16 ); static Word16 imax_fx( const Word16 *, const Word16 ); static void spec_ana_fx( const Word16 *prevsynth, Word16 *plocs, Word32 *plocsi, Word16 *num_plocs, Word16 *X_sav, const Word16 output_frame, const Word16 bwidth_fx, Word16 *Q ); @@ -234,13 +230,11 @@ static void trans_ana_fx( const Word16 time_offs, /* i : Time offset (integral multiple of output_frame) */ const Word16 est_mus_content, /* i : 0.0=speech_like ... 1.0=Music (==st->env_stab ) */ const Word16 last_fec, /* i : signal that previous frame was concealed with fec_alg */ -#ifdef NONBE_FIX_1180_HQMDCT_PHECU_LT_MUTING - const Word16 element_mode, /* i : element_mode req to handle EVS_MONO specific BE path */ -#endif - Word16 *alpha, /* o : Magnitude modification factors for fade to average */ - Word16 *beta, /* o : Magnitude modification factors for fade to average */ - Word16 *beta_mute, /* o : Factor for long-term mute Q15 */ - Word16 *Xavg /* o : Frequency group average gain to fade to */ + const Word16 element_mode, /* i : element_mode req to handle EVS_MONO specific BE path */ + Word16 *alpha, /* o : Magnitude modification factors for fade to average */ + Word16 *beta, /* o : Magnitude modification factors for fade to average */ + Word16 *beta_mute, /* o : Factor for long-term mute Q15 */ + Word16 *Xavg /* o : Frequency group average gain to fade to */ ) { const Word16 *w_hamm, *pFftTbl; @@ -562,7 +556,6 @@ static void trans_ana_fx( mag_chg[k] = mult_r( mag_chg_1st[k], att_val ); /* Q15 */ move16(); -#ifdef NONBE_FIX_1180_HQMDCT_PHECU_LT_MUTING IF( NE_16( element_mode, EVS_MONO ) ) { IF( EQ_16( k, 0 ) && GT_16( burst_len, BETA_MUTE_THR ) ) /* beta_mute final long term attenuation adjusted only once per frame in the first sub-band, Ref Eq(184) in 26.447 */ @@ -579,13 +572,7 @@ static void trans_ana_fx( move16(); } } -#else - IF( GT_16( burst_len, BETA_MUTE_THR ) ) - { - *beta_mute = shr( *beta_mute, 1 ); - move16(); - } -#endif + alpha[k] = mag_chg[k]; move16(); /*beta[k] = sqrt(1.0f - SQR(alpha[k])) * *beta_mute;*/ @@ -4545,13 +4532,9 @@ static void ivas_hq_phase_ecu_fx( #endif offset = add( sub( sub( shl( output_frame, 1 ), lprot ), *time_offs ), ph_ecu_lookahead ); -#ifdef NONBE_FIX_1180_HQMDCT_PHECU_LT_MUTING + trans_ana_fx( prevsynth + offset, mag_chg, &ph_dith, mag_chg_1st, output_frame, *time_offs, env_stab, *last_fec, element_mode, alpha, beta, beta_mute, Xavg ); -#else - trans_ana_fx( prevsynth + offset, mag_chg, &ph_dith, mag_chg_1st, output_frame, *time_offs, env_stab, - *last_fec, alpha, beta, beta_mute, Xavg ); -#endif ivas_spec_ana_fx( prevsynth + offset, plocs, plocsi, num_p, X_sav, output_frame, bwidth_fx, Q_spec, element_mode, &noise_fac, pcorr ); @@ -4571,13 +4554,9 @@ static void ivas_hq_phase_ecu_fx( *time_offs = add_sat( *time_offs, output_frame ); move16(); offset = sub( shl( output_frame, 1 ), lprot ); -#ifdef NONBE_FIX_1180_HQMDCT_PHECU_LT_MUTING + trans_ana_fx( prevsynth + offset, mag_chg, &ph_dith, mag_chg_1st, output_frame, *time_offs, env_stab, 0, element_mode, alpha, beta, beta_mute, Xavg ); -#else - trans_ana_fx( prevsynth + offset, mag_chg, &ph_dith, mag_chg_1st, output_frame, *time_offs, env_stab, - 0, alpha, beta, beta_mute, Xavg ); -#endif } Copy( X_sav, X, lprot ); @@ -4666,13 +4645,9 @@ static void hq_phase_ecu_fx( } offset = sub( sub( shl( output_frame, 1 ), lprot ), *time_offs ); -#ifdef NONBE_FIX_1180_HQMDCT_PHECU_LT_MUTING + trans_ana_fx( prevsynth + offset, mag_chg, &ph_dith, mag_chg_1st, output_frame, *time_offs, env_stab, *last_fec, EVS_MONO, alpha, beta, beta_mute, Xavg ); -#else - trans_ana_fx( prevsynth + offset, mag_chg, &ph_dith, mag_chg_1st, output_frame, *time_offs, env_stab, - *last_fec, alpha, beta, beta_mute, Xavg ); -#endif spec_ana_fx( prevsynth + offset, plocs, plocsi, num_p, X_sav, output_frame, bwidth_fx, Q_spec ); @@ -4697,13 +4672,9 @@ static void hq_phase_ecu_fx( move16(); offset = sub( shl( output_frame, 1 ), lprot ); -#ifdef NONBE_FIX_1180_HQMDCT_PHECU_LT_MUTING + trans_ana_fx( prevsynth + offset, mag_chg, &ph_dith, mag_chg_1st, output_frame, *time_offs, env_stab, 0, EVS_MONO, alpha, beta, beta_mute, Xavg ); -#else - trans_ana_fx( prevsynth + offset, mag_chg, &ph_dith, mag_chg_1st, output_frame, *time_offs, env_stab, - 0, alpha, beta, beta_mute, Xavg ); -#endif } Copy( X_sav, X, lprot ); diff --git a/lib_dec/ivas_jbm_dec_fx.c b/lib_dec/ivas_jbm_dec_fx.c index 2d9484d45..4a8462323 100644 --- a/lib_dec/ivas_jbm_dec_fx.c +++ b/lib_dec/ivas_jbm_dec_fx.c @@ -1609,7 +1609,7 @@ void ivas_jbm_dec_feed_tc_to_renderer_fx( } ELSE #endif - IF( EQ_16( st_ivas->ivas_format, ISM_FORMAT ) ) + IF( EQ_16( st_ivas->ivas_format, ISM_FORMAT ) ) { /* Rendering */ IF( EQ_16( st_ivas->ism_mode, ISM_MODE_PARAM ) ) @@ -1626,7 +1626,7 @@ void ivas_jbm_dec_feed_tc_to_renderer_fx( } ELSE #endif - IF( EQ_16( st_ivas->renderer_type, RENDERER_PARAM_ISM ) || EQ_16( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) ) + IF( EQ_16( st_ivas->renderer_type, RENDERER_PARAM_ISM ) || EQ_16( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) ) { ivas_param_ism_dec_digest_tc_fx( st_ivas, n_render_timeslots, p_data_f_fx, Q11 ); @@ -2947,120 +2947,112 @@ ivas_error ivas_jbm_dec_flush_renderer_fx( #endif } } - ELSE IF( EQ_16( st_ivas->ivas_format, SBA_ISM_FORMAT ) ){ -#ifdef NONBE_FIX_1297_SPAR_JBM_MEM_SAN - IF( EQ_32( ism_mode_old, ISM_SBA_MODE_DISC ) ){ -#endif - Word32 * tc_local_fx[MAX_TRANSPORT_CHANNELS]; - Word16 last_spar_md_idx; - Word16 last_dirac_md_idx; - UWord16 nSamplesAvailableNext; -#ifdef NONBE_FIX_1297_SPAR_JBM_MEM_SAN - ISM_MODE ism_mode_orig; - RENDERER_TYPE renderer_type_orig; - Word32 ivas_total_brate; - - ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; - renderer_type_orig = st_ivas->renderer_type; - ism_mode_orig = st_ivas->ism_mode; - - /* to render flushed samples, use configuration from the last received frame */ - move32(); - st_ivas->ism_mode = ism_mode_old; - st_ivas->renderer_type = renderer_type_old; - st_ivas->hDecoderConfig->ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate; -#endif + ELSE IF( EQ_16( st_ivas->ivas_format, SBA_ISM_FORMAT ) ) + { + IF( EQ_32( ism_mode_old, ISM_SBA_MODE_DISC ) ) + { + Word32 *tc_local_fx[MAX_TRANSPORT_CHANNELS]; + Word16 last_spar_md_idx; + Word16 last_dirac_md_idx; + UWord16 nSamplesAvailableNext; + ISM_MODE ism_mode_orig; + RENDERER_TYPE renderer_type_orig; + Word32 ivas_total_brate; - last_spar_md_idx = st_ivas->hSpar->render_to_md_map[st_ivas->hSpar->slots_rendered - 1]; - last_dirac_md_idx = st_ivas->hSpatParamRendCom->render_to_md_map[st_ivas->hSpatParamRendCom->slots_rendered - 1]; - move16(); - move16(); + ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; + renderer_type_orig = st_ivas->renderer_type; + ism_mode_orig = st_ivas->ism_mode; - /* copy from ISM delay buffer to the correct place in TCs */ - FOR( ch_idx = 0; ch_idx < st_ivas->nchan_ism; ch_idx++ ) - { -#ifdef NONBE_FIX_1297_SPAR_JBM_MEM_SAN - tc_local_fx[ch_idx] = &st_ivas->hTcBuffer->tc_fx[ch_idx][hTcBuffer->n_samples_rendered]; -#else - tc_local_fx[ch_idx] = &st_ivas->hTcBuffer->tc_fx[ch_idx + 2][hTcBuffer->n_samples_rendered]; -#endif - Copy32( st_ivas->hSbaIsmData->delayBuffer_fx[ch_idx], tc_local_fx[ch_idx], st_ivas->hSbaIsmData->delayBuffer_size ); - } - - /* transfer adapted sf info from hTcBuffer to SPAR and DirAC */ - st_ivas->hSpar->nb_subframes = 1; - st_ivas->hSpar->subframes_rendered = 0; - st_ivas->hSpar->subframe_nbslots[0] = JBM_CLDFB_SLOTS_IN_SUBFRAME; - st_ivas->hSpar->slots_rendered = 0; - st_ivas->hSpar->num_slots = JBM_CLDFB_SLOTS_IN_SUBFRAME; - st_ivas->hSpatParamRendCom->nb_subframes = 1; - st_ivas->hSpatParamRendCom->subframes_rendered = 0; - st_ivas->hSpatParamRendCom->subframe_nbslots[0] = JBM_CLDFB_SLOTS_IN_SUBFRAME; - st_ivas->hSpatParamRendCom->slots_rendered = 0; - st_ivas->hSpatParamRendCom->num_slots = JBM_CLDFB_SLOTS_IN_SUBFRAME; - move16(); - move16(); - move16(); - move16(); - move16(); - move16(); - move16(); - move16(); - move16(); - move16(); + /* to render flushed samples, use configuration from the last received frame */ + move32(); + st_ivas->ism_mode = ism_mode_old; + st_ivas->renderer_type = renderer_type_old; + st_ivas->hDecoderConfig->ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate; + + last_spar_md_idx = st_ivas->hSpar->render_to_md_map[st_ivas->hSpar->slots_rendered - 1]; + last_dirac_md_idx = st_ivas->hSpatParamRendCom->render_to_md_map[st_ivas->hSpatParamRendCom->slots_rendered - 1]; + move16(); + move16(); + + /* copy from ISM delay buffer to the correct place in TCs */ + FOR( ch_idx = 0; ch_idx < st_ivas->nchan_ism; ch_idx++ ) + { + tc_local_fx[ch_idx] = &st_ivas->hTcBuffer->tc_fx[ch_idx][hTcBuffer->n_samples_rendered]; + Copy32( st_ivas->hSbaIsmData->delayBuffer_fx[ch_idx], tc_local_fx[ch_idx], st_ivas->hSbaIsmData->delayBuffer_size ); + } + + /* transfer adapted sf info from hTcBuffer to SPAR and DirAC */ + st_ivas->hSpar->nb_subframes = 1; + st_ivas->hSpar->subframes_rendered = 0; + st_ivas->hSpar->subframe_nbslots[0] = JBM_CLDFB_SLOTS_IN_SUBFRAME; + st_ivas->hSpar->slots_rendered = 0; + st_ivas->hSpar->num_slots = JBM_CLDFB_SLOTS_IN_SUBFRAME; + st_ivas->hSpatParamRendCom->nb_subframes = 1; + st_ivas->hSpatParamRendCom->subframes_rendered = 0; + st_ivas->hSpatParamRendCom->subframe_nbslots[0] = JBM_CLDFB_SLOTS_IN_SUBFRAME; + st_ivas->hSpatParamRendCom->slots_rendered = 0; + st_ivas->hSpatParamRendCom->num_slots = JBM_CLDFB_SLOTS_IN_SUBFRAME; + move16(); + move16(); + move16(); + move16(); + move16(); + move16(); + move16(); + move16(); + move16(); + move16(); - /* also adapt md maps, just use the last index */ - set16_fx( st_ivas->hSpar->render_to_md_map, last_spar_md_idx, n_slots_still_available ); - set16_fx( st_ivas->hSpatParamRendCom->render_to_md_map, last_dirac_md_idx, n_slots_still_available ); + /* also adapt md maps, just use the last index */ + set16_fx( st_ivas->hSpar->render_to_md_map, last_spar_md_idx, n_slots_still_available ); + set16_fx( st_ivas->hSpatParamRendCom->render_to_md_map, last_dirac_md_idx, n_slots_still_available ); + + /* render the last subframe */ + IF( NE_32( ( error = ivas_osba_dirac_td_binaural_jbm_fx( st_ivas, (UWord16) hTcBuffer->n_samples_granularity, nSamplesRendered, &nSamplesAvailableNext, p_output_fx ) ), IVAS_ERR_OK ) ) + { + return error; + } - /* render the last subframe */ - IF( NE_32( ( error = ivas_osba_dirac_td_binaural_jbm_fx( st_ivas, (UWord16) hTcBuffer->n_samples_granularity, nSamplesRendered, &nSamplesAvailableNext, p_output_fx ) ), IVAS_ERR_OK ) ) + /* restore original configuration */ + st_ivas->ism_mode = ism_mode_orig; + st_ivas->renderer_type = renderer_type_orig; + st_ivas->hDecoderConfig->ivas_total_brate = ivas_total_brate; + } + } + ELSE { - return error; + return IVAS_ERROR( IVAS_ERR_WRONG_MODE, "Wrong IVAS format in VoIP renderer flushing!" ); } -#ifdef NONBE_FIX_1297_SPAR_JBM_MEM_SAN - /* restore original configuration */ - st_ivas->ism_mode = ism_mode_orig; - st_ivas->renderer_type = renderer_type_orig; - st_ivas->hDecoderConfig->ivas_total_brate = ivas_total_brate; + hTcBuffer->n_samples_rendered = hTcBuffer->n_samples_granularity; } -#endif -} -ELSE -{ - return IVAS_ERROR( IVAS_ERR_WRONG_MODE, "Wrong IVAS format in VoIP renderer flushing!" ); -} - -hTcBuffer->n_samples_rendered = hTcBuffer->n_samples_granularity; -} -/* update global combined orientation start index */ -ivas_combined_orientation_update_start_index( st_ivas->hCombinedOrientationData, *nSamplesRendered ); + /* update global combined orientation start index */ + ivas_combined_orientation_update_start_index( st_ivas->hCombinedOrientationData, *nSamplesRendered ); -*nSamplesRendered = n_samples_to_render; -move16(); + *nSamplesRendered = n_samples_to_render; + move16(); -/* Only write out the valid data*/ -IF( is_split_rendering_enabled( st_ivas->hDecoderConfig, st_ivas->hRenderConfig ) == 0 ) -{ - IF( NE_16( st_ivas->ivas_format, MONO_FORMAT ) ) + /* Only write out the valid data*/ + IF( is_split_rendering_enabled( st_ivas->hDecoderConfig, st_ivas->hRenderConfig ) == 0 ) { -#ifndef DISABLE_LIMITER - Word16 ch_idx, exp = 11; - move16(); - FOR( ch_idx = 0; ch_idx < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; ch_idx++ ) + IF( NE_16( st_ivas->ivas_format, MONO_FORMAT ) ) { - p_output_fx[ch_idx] = st_ivas->p_output_fx[ch_idx]; - } - ivas_limiter_dec_fx( st_ivas->hLimiter, p_output_fx, st_ivas->hDecoderConfig->nchan_out, *nSamplesRendered, st_ivas->BER_detect, exp ); +#ifndef DISABLE_LIMITER + Word16 ch_idx, exp = 11; + move16(); + FOR( ch_idx = 0; ch_idx < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; ch_idx++ ) + { + p_output_fx[ch_idx] = st_ivas->p_output_fx[ch_idx]; + } + ivas_limiter_dec_fx( st_ivas->hLimiter, p_output_fx, st_ivas->hDecoderConfig->nchan_out, *nSamplesRendered, st_ivas->BER_detect, exp ); #endif + } } -} -ivas_syn_output_fx( p_output_fx, Q11, *nSamplesRendered, st_ivas->hDecoderConfig->nchan_out, data ); + ivas_syn_output_fx( p_output_fx, Q11, *nSamplesRendered, st_ivas->hDecoderConfig->nchan_out, data ); -return IVAS_ERR_OK; + return IVAS_ERR_OK; } diff --git a/lib_dec/ivas_sba_dec_fx.c b/lib_dec/ivas_sba_dec_fx.c index 63463d444..6ffd97cdb 100644 --- a/lib_dec/ivas_sba_dec_fx.c +++ b/lib_dec/ivas_sba_dec_fx.c @@ -207,13 +207,9 @@ ivas_error ivas_sba_dec_reconfigure_fx( ELSE { test(); -#ifdef NONBE_1303_GRANULARITY_OSBA_REND test(); test(); IF( EQ_16( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_BINAURAL ) || EQ_16( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) || EQ_16( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) || EQ_16( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) -#else - IF( EQ_16( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_BINAURAL ) || EQ_16( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) || EQ_16( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) -#endif { renderer_type_new = RENDERER_BINAURAL_FASTCONV; move16(); diff --git a/lib_dec/jbm_jb4sb_fx.c b/lib_dec/jbm_jb4sb_fx.c index 2c36024b8..eccd8cb03 100644 --- a/lib_dec/jbm_jb4sb_fx.c +++ b/lib_dec/jbm_jb4sb_fx.c @@ -774,7 +774,6 @@ static void JB4_targetPlayoutDelay( move32(); move32(); -#ifdef NONBE_1122_JBM_FIX_PLAYOUT_DELAY_IN_DTX #ifdef NONBE_1122_KEEP_EVS_MODE_UNCHANGED IF( !h->evsMode ) { @@ -786,13 +785,6 @@ static void JB4_targetPlayoutDelay( #endif *targetStartUp = JB4_MAX( *targetStartUp, (UWord32) h->safetyMargin ); move32(); -#else - if ( LT_64( *targetStartUp, 60 ) ) - { - *targetStartUp = 60; - move32(); - } -#endif return; } diff --git a/lib_dec/lib_dec_fx.c b/lib_dec/lib_dec_fx.c index 67c602eed..bb0d10b72 100644 --- a/lib_dec/lib_dec_fx.c +++ b/lib_dec/lib_dec_fx.c @@ -3726,15 +3726,10 @@ ivas_error IVAS_DEC_ReadFormat( test(); test(); test(); -#ifdef NONBE_FIX_1297_SPAR_JBM_MEM_SAN IF( ( NE_32( renderer_type_old, st_ivas->renderer_type ) && NE_32( renderer_type_old, RENDERER_DISABLE ) ) || ( st_ivas->ini_active_frame > 0 && ( ( ( EQ_32( st_ivas->ivas_format, MASA_FORMAT ) || EQ_32( st_ivas->ivas_format, MASA_ISM_FORMAT ) ) && EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_PARAMETRIC ) && NE_32( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) ) || ( EQ_32( st_ivas->ivas_format, SBA_ISM_FORMAT ) && EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV ) && NE_32( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) ) ) ) ) -#else - IF( ( NE_32( renderer_type_old, st_ivas->renderer_type ) && NE_32( renderer_type_old, RENDERER_DISABLE ) ) || - ( st_ivas->ini_active_frame > 0 && ( EQ_32( st_ivas->ivas_format, MASA_FORMAT ) || EQ_32( st_ivas->ivas_format, MASA_ISM_FORMAT ) ) && EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_PARAMETRIC ) && NE_32( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) ) ) -#endif { /* JBM: when granularity goes down (e.g. Discrete ISM with TD Obj Renderer -> ParamISM with binaural fastconv render what still fits in the new granularity */ diff --git a/lib_rend/ivas_objectRenderer_sfx_fx.c b/lib_rend/ivas_objectRenderer_sfx_fx.c index d5abdadba..361cc403d 100644 --- a/lib_rend/ivas_objectRenderer_sfx_fx.c +++ b/lib_rend/ivas_objectRenderer_sfx_fx.c @@ -252,9 +252,6 @@ static void sincResample_fx( p_backward_fx--; // Qx } -#ifndef NONBE_1296_TDREND_ITD_OUT_OF_BOUNDS_ACCESS - tmp64_fx = W_mac_32_32( tmp64_fx, *p_forward_fx, *p_sinc_forward_fx ); /* Integer index always rounded down --> 4 steps backward, 5 steps forward */ // Qx + 32 -#endif output_fx[i] = W_extract_h( tmp64_fx ); // Qx move32(); -- GitLab From bff72952e94c948e64b70108271b68d6109e88dc Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 16 Oct 2025 10:07:06 +0200 Subject: [PATCH 2/2] clang-format --- lib_dec/ivas_jbm_dec_fx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_dec/ivas_jbm_dec_fx.c b/lib_dec/ivas_jbm_dec_fx.c index 4a8462323..d7882ffda 100644 --- a/lib_dec/ivas_jbm_dec_fx.c +++ b/lib_dec/ivas_jbm_dec_fx.c @@ -1609,7 +1609,7 @@ void ivas_jbm_dec_feed_tc_to_renderer_fx( } ELSE #endif - IF( EQ_16( st_ivas->ivas_format, ISM_FORMAT ) ) + IF( EQ_16( st_ivas->ivas_format, ISM_FORMAT ) ) { /* Rendering */ IF( EQ_16( st_ivas->ism_mode, ISM_MODE_PARAM ) ) @@ -1626,7 +1626,7 @@ void ivas_jbm_dec_feed_tc_to_renderer_fx( } ELSE #endif - IF( EQ_16( st_ivas->renderer_type, RENDERER_PARAM_ISM ) || EQ_16( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) ) + IF( EQ_16( st_ivas->renderer_type, RENDERER_PARAM_ISM ) || EQ_16( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) ) { ivas_param_ism_dec_digest_tc_fx( st_ivas, n_render_timeslots, p_data_f_fx, Q11 ); -- GitLab