From 9d609ea617dfdd61d2d271332fcb3103f4a25f33 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Sat, 4 Oct 2025 20:56:10 +0200 Subject: [PATCH] port flt MR 2040 --- lib_com/options.h | 2 ++ lib_dec/jbm_jb4sb.h | 4 ++++ lib_dec/jbm_jb4sb_fx.c | 28 ++++++++++++++++++++++++++++ lib_dec/lib_dec_fx.c | 7 +++++++ 4 files changed, 41 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index fdf73590a..ff9581f08 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -137,6 +137,8 @@ #define FIX_1053_REVERB_RECONFIGURATION #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1113_EXTREND_ISAR /* FhG: issue 1113: fix external renderer asserts for FOA/HOA2 and CLDFB config */ +#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. */ /* #################### End BASOP porting switches ############################ */ diff --git a/lib_dec/jbm_jb4sb.h b/lib_dec/jbm_jb4sb.h index 7abe205c3..acc44ad32 100644 --- a/lib_dec/jbm_jb4sb.h +++ b/lib_dec/jbm_jb4sb.h @@ -86,6 +86,10 @@ void JB4_Destroy( JB4_HANDLE *ph ); ivas_error JB4_Init( JB4_HANDLE h, const Word16 safetyMargin ); +#ifdef NONBE_1122_KEEP_EVS_MODE_UNCHANGED +void JB4_TMP_SetEvsCompatFlag( JB4_HANDLE h ); +#endif + JB4_DATAUNIT_HANDLE JB4_AllocDataUnit( JB4_HANDLE h ); void JB4_FreeDataUnit( JB4_HANDLE h, JB4_DATAUNIT_HANDLE dataUnit ); diff --git a/lib_dec/jbm_jb4sb_fx.c b/lib_dec/jbm_jb4sb_fx.c index 261954e0f..6357c3a1b 100644 --- a/lib_dec/jbm_jb4sb_fx.c +++ b/lib_dec/jbm_jb4sb_fx.c @@ -198,6 +198,9 @@ struct JB4 JB4_DATAUNIT_HANDLE freeMemorySlots[MAX_JBM_SLOTS]; UWord16 nFreeMemorySlots; /*@} */ +#ifdef NONBE_1122_KEEP_EVS_MODE_UNCHANGED + bool evsMode; +#endif }; /* JB4 */ @@ -323,6 +326,10 @@ ivas_error JB4_Create( } h->nFreeMemorySlots = MAX_JBM_SLOTS; move16(); +#ifdef NONBE_1122_KEEP_EVS_MODE_UNCHANGED + h->evsMode = false; + move16(); +#endif *ph = h; return IVAS_ERR_OK; @@ -407,6 +414,13 @@ ivas_error JB4_Init( return IVAS_ERR_OK; } +#ifdef NONBE_1122_KEEP_EVS_MODE_UNCHANGED +void JB4_TMP_SetEvsCompatFlag( JB4_HANDLE h ) +{ + h->evsMode = true; + move16(); +} +#endif /* Returns a memory slot to store a new data unit */ JB4_DATAUNIT_HANDLE JB4_AllocDataUnit( @@ -760,11 +774,25 @@ 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 ) + { +#endif + *targetDtx = JB4_MAX( *targetDtx, (UWord32) h->safetyMargin ); + move32(); +#ifdef NONBE_1122_KEEP_EVS_MODE_UNCHANGED + } +#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 1e67b7110..51af2036b 100644 --- a/lib_dec/lib_dec_fx.c +++ b/lib_dec/lib_dec_fx.c @@ -942,6 +942,13 @@ ivas_error IVAS_DEC_EnableVoIP( return IVAS_ERR_FAILED_ALLOC; } +#ifdef NONBE_1122_KEEP_EVS_MODE_UNCHANGED + if ( EQ_16( hIvasDec->mode, IVAS_DEC_MODE_EVS ) ) + { + JB4_TMP_SetEvsCompatFlag( hIvasDec->hVoIP->hJBM ); + } +#endif + return IVAS_ERR_OK; } -- GitLab