From 54b325a90a4d07448ddf2c636bcf2b747da44df2 Mon Sep 17 00:00:00 2001 From: "Azizi, Arash" Date: Fri, 13 Feb 2026 09:56:08 +0100 Subject: [PATCH 1/6] issue: 2435 changes required for harmonization: removing function writetnsdata_fx() and renaming writetnsdata_ivas_fx() definition and instances --- lib_com/options.h | 1 + lib_enc/enc_prm_fx.c | 8 ++++++-- lib_enc/prot_fx_enc.h | 2 ++ lib_enc/tns_base_enc_fx.c | 10 ++++++++-- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 6f0d8e55e..a2ec1b224 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -92,6 +92,7 @@ #define HARM_FD_BWE /* VA: harmonize core-coder FD BWE function duplications */ #define FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT /* FhG: basop issue 2411: harmonize TNSAnalysis*_fx(), DetectTnsFilt*_fx()*/ #define HARMONIZE_READ_DECODE_TNS /* FhG basop 2389: Harm between two pairs of functions. */ +#define HARMONIZE_ISSUE_2435_WRITETNSDATA /*FhG basop 2435: Harmonize WriteTnsData_ivas_fx(), WriteTnsData_fx()*/ /* #################### End BE switches ################################## */ diff --git a/lib_enc/enc_prm_fx.c b/lib_enc/enc_prm_fx.c index e28dd0bf9..221be2024 100644 --- a/lib_enc/enc_prm_fx.c +++ b/lib_enc/enc_prm_fx.c @@ -1203,8 +1203,12 @@ void writeTCXparam_fx( move16(); } ELSE - { - WriteTnsData_ivas_fx( st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, hBstr, &nTnsBits ); + { +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA + WriteTnsData_ivas_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, hBstr, &nTnsBits); +#else + WriteTnsData_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, hBstr, &nTnsBits); +#endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA } IF( no_param_tns ) { diff --git a/lib_enc/prot_fx_enc.h b/lib_enc/prot_fx_enc.h index d6b13aa6e..7a66a42a5 100644 --- a/lib_enc/prot_fx_enc.h +++ b/lib_enc/prot_fx_enc.h @@ -1494,12 +1494,14 @@ Word16 EncodeTnsData_fx( Word16 *pnSize, Word16 *pnBits ); +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA Word16 WriteTnsData_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word16 *pnSize, Encoder_State *st, Word16 *pnBits ); +#endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA Word16 WriteTnsData_ivas_fx( STnsConfig const *pTnsConfig, diff --git a/lib_enc/tns_base_enc_fx.c b/lib_enc/tns_base_enc_fx.c index be7c06760..01434c9ed 100644 --- a/lib_enc/tns_base_enc_fx.c +++ b/lib_enc/tns_base_enc_fx.c @@ -770,7 +770,7 @@ void EncodeTnsData_ivas_fx( return; } - +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA Word16 WriteTnsData_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word16 *pnSize, Encoder_State *st, Word16 *pnBits ) { @@ -794,7 +794,13 @@ Word16 WriteTnsData_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word return TNS_NO_ERROR; } -Word16 WriteTnsData_ivas_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word16 *pnSize, BSTR_ENC_HANDLE hBstr, Word16 *pnBits ) +#endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA + +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA +Word16 WriteTnsData_ivas_fx(STnsConfig const* pTnsConfig, Word16 const* stream, Word16* pnSize, BSTR_ENC_HANDLE hBstr, Word16* pnBits) +#else +Word16 WriteTnsData_fx(STnsConfig const* pTnsConfig, Word16 const* stream, Word16* pnSize, BSTR_ENC_HANDLE hBstr, Word16* pnBits) +#endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA { IF( GT_16( pTnsConfig->nMaxFilters, 1 ) ) { -- GitLab From 04c90339a3541d655e61745db19edfa172373707 Mon Sep 17 00:00:00 2001 From: "Azizi, Arash" Date: Fri, 13 Feb 2026 10:08:25 +0100 Subject: [PATCH 2/6] issue: 2435 Clang formatting --- lib_enc/enc_prm_fx.c | 6 +++--- lib_enc/tns_base_enc_fx.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib_enc/enc_prm_fx.c b/lib_enc/enc_prm_fx.c index 221be2024..34819cb3e 100644 --- a/lib_enc/enc_prm_fx.c +++ b/lib_enc/enc_prm_fx.c @@ -1203,11 +1203,11 @@ void writeTCXparam_fx( move16(); } ELSE - { + { #ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA - WriteTnsData_ivas_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, hBstr, &nTnsBits); + WriteTnsData_ivas_fx( st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, hBstr, &nTnsBits ); #else - WriteTnsData_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, hBstr, &nTnsBits); + WriteTnsData_fx( st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, hBstr, &nTnsBits ); #endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA } IF( no_param_tns ) diff --git a/lib_enc/tns_base_enc_fx.c b/lib_enc/tns_base_enc_fx.c index 01434c9ed..990011dab 100644 --- a/lib_enc/tns_base_enc_fx.c +++ b/lib_enc/tns_base_enc_fx.c @@ -797,9 +797,9 @@ Word16 WriteTnsData_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word #endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA #ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA -Word16 WriteTnsData_ivas_fx(STnsConfig const* pTnsConfig, Word16 const* stream, Word16* pnSize, BSTR_ENC_HANDLE hBstr, Word16* pnBits) +Word16 WriteTnsData_ivas_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word16 *pnSize, BSTR_ENC_HANDLE hBstr, Word16 *pnBits ) #else -Word16 WriteTnsData_fx(STnsConfig const* pTnsConfig, Word16 const* stream, Word16* pnSize, BSTR_ENC_HANDLE hBstr, Word16* pnBits) +Word16 WriteTnsData_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word16 *pnSize, BSTR_ENC_HANDLE hBstr, Word16 *pnBits ) #endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA { IF( GT_16( pTnsConfig->nMaxFilters, 1 ) ) -- GitLab From 817daa1c077ba528e7fec034f3d92b15f993e7d5 Mon Sep 17 00:00:00 2001 From: "Azizi, Arash" Date: Fri, 13 Feb 2026 10:35:49 +0100 Subject: [PATCH 3/6] issue: 2435 changing the declaration for writetnsdata_fx --- lib_enc/prot_fx_enc.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib_enc/prot_fx_enc.h b/lib_enc/prot_fx_enc.h index 7a66a42a5..4f7cb6e74 100644 --- a/lib_enc/prot_fx_enc.h +++ b/lib_enc/prot_fx_enc.h @@ -1494,22 +1494,22 @@ Word16 EncodeTnsData_fx( Word16 *pnSize, Word16 *pnBits ); -#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA + Word16 WriteTnsData_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word16 *pnSize, Encoder_State *st, Word16 *pnBits ); -#endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA Word16 WriteTnsData_ivas_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word16 *pnSize, BSTR_ENC_HANDLE hBstr, Word16 *pnBits ); - +#endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA void subband_FFT_fx( Word32 **Sr, /*(i) real part of the CLDFB*/ Word32 **Si, /*(i) imag part of the CLDFB*/ -- GitLab From 65ef63836a2528c6d01b994aba26c3dd4352f120 Mon Sep 17 00:00:00 2001 From: "Azizi, Arash" Date: Fri, 13 Feb 2026 11:01:13 +0100 Subject: [PATCH 4/6] issue: 2435 changing argument 4 from st to st->hBstr across instances. --- lib_enc/enc_prm_fx.c | 15 +++++++++++++-- lib_enc/prot_fx_enc.h | 11 +++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/lib_enc/enc_prm_fx.c b/lib_enc/enc_prm_fx.c index 34819cb3e..7ba2d0937 100644 --- a/lib_enc/enc_prm_fx.c +++ b/lib_enc/enc_prm_fx.c @@ -744,8 +744,14 @@ void enc_prm_fx( move16(); IF( st->hTcxCfg->fIsTNSAllowed ) - { + { +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA + WriteTnsData_fx( st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st, &nTnsBits ); +#else + WriteTnsData_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st->hBstr, &nTnsBits); +#endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA + j = add( j, nTnsParams ); /* Q0 */ } @@ -895,8 +901,13 @@ void enc_prm_fx( { SetTnsConfig( st->hTcxCfg, 0, ( last_core == ACELP_CORE ) && ( k == 0 ) ); +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA + WriteTnsData_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st, &nTnsBits); +#else + WriteTnsData_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st->hBstr, &nTnsBits); +#endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA - WriteTnsData_fx( st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st, &nTnsBits ); + j = add( j, nTnsParams ); } diff --git a/lib_enc/prot_fx_enc.h b/lib_enc/prot_fx_enc.h index 4f7cb6e74..de8654444 100644 --- a/lib_enc/prot_fx_enc.h +++ b/lib_enc/prot_fx_enc.h @@ -1494,15 +1494,22 @@ Word16 EncodeTnsData_fx( Word16 *pnSize, Word16 *pnBits ); +#ifdef HARMONIZE_ISSUE_2435_WRITETNSDATA +Word16 WriteTnsData_fx( + STnsConfig const* pTnsConfig, + Word16 const* stream, + Word16* pnSize, + BSTR_ENC_HANDLE hBstr, + Word16* pnBits); +#endif // HARMONIZE_ISSUE_2435_WRITETNSDATA +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA Word16 WriteTnsData_fx( STnsConfig const *pTnsConfig, Word16 const *stream, Word16 *pnSize, Encoder_State *st, Word16 *pnBits ); - -#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA Word16 WriteTnsData_ivas_fx( STnsConfig const *pTnsConfig, Word16 const *stream, -- GitLab From 81c3ca0cc692c75656b67217e4a6c758146324a7 Mon Sep 17 00:00:00 2001 From: "Azizi, Arash" Date: Fri, 13 Feb 2026 11:03:25 +0100 Subject: [PATCH 5/6] issue: 2435 Clang formatting patch --- lib_enc/enc_prm_fx.c | 10 +++++----- lib_enc/prot_fx_enc.h | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib_enc/enc_prm_fx.c b/lib_enc/enc_prm_fx.c index 7ba2d0937..a15612fd4 100644 --- a/lib_enc/enc_prm_fx.c +++ b/lib_enc/enc_prm_fx.c @@ -744,12 +744,12 @@ void enc_prm_fx( move16(); IF( st->hTcxCfg->fIsTNSAllowed ) - { + { #ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA WriteTnsData_fx( st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st, &nTnsBits ); #else - WriteTnsData_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st->hBstr, &nTnsBits); + WriteTnsData_fx( st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st->hBstr, &nTnsBits ); #endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA j = add( j, nTnsParams ); /* Q0 */ @@ -902,12 +902,12 @@ void enc_prm_fx( SetTnsConfig( st->hTcxCfg, 0, ( last_core == ACELP_CORE ) && ( k == 0 ) ); #ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA - WriteTnsData_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st, &nTnsBits); + WriteTnsData_fx( st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st, &nTnsBits ); #else - WriteTnsData_fx(st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st->hBstr, &nTnsBits); + WriteTnsData_fx( st->hTcxCfg->pCurrentTnsConfig, prm + j, &nTnsParams, st->hBstr, &nTnsBits ); #endif // !HARMONIZE_ISSUE_2435_WRITETNSDATA - + j = add( j, nTnsParams ); } diff --git a/lib_enc/prot_fx_enc.h b/lib_enc/prot_fx_enc.h index de8654444..f7133fb4f 100644 --- a/lib_enc/prot_fx_enc.h +++ b/lib_enc/prot_fx_enc.h @@ -1496,11 +1496,11 @@ Word16 EncodeTnsData_fx( #ifdef HARMONIZE_ISSUE_2435_WRITETNSDATA Word16 WriteTnsData_fx( - STnsConfig const* pTnsConfig, - Word16 const* stream, - Word16* pnSize, + STnsConfig const *pTnsConfig, + Word16 const *stream, + Word16 *pnSize, BSTR_ENC_HANDLE hBstr, - Word16* pnBits); + Word16 *pnBits ); #endif // HARMONIZE_ISSUE_2435_WRITETNSDATA #ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA -- GitLab From b6c4bac4c55edd97a6d47a5dfe5d5c70b2bf6f83 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 13 Feb 2026 14:45:01 +0100 Subject: [PATCH 6/6] also include EncodeTnsData*_fx() --- lib_com/options.h | 2 +- lib_com/prot_fx.h | 13 +++++++++++++ lib_enc/cod_tcx_fx.c | 4 ++++ lib_enc/prot_fx_enc.h | 10 +++++++++- lib_enc/tns_base_enc_fx.c | 12 ++++++++++++ 5 files changed, 39 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index a2ec1b224..3cc4e72f5 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -92,7 +92,7 @@ #define HARM_FD_BWE /* VA: harmonize core-coder FD BWE function duplications */ #define FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT /* FhG: basop issue 2411: harmonize TNSAnalysis*_fx(), DetectTnsFilt*_fx()*/ #define HARMONIZE_READ_DECODE_TNS /* FhG basop 2389: Harm between two pairs of functions. */ -#define HARMONIZE_ISSUE_2435_WRITETNSDATA /*FhG basop 2435: Harmonize WriteTnsData_ivas_fx(), WriteTnsData_fx()*/ +#define HARMONIZE_ISSUE_2435_WRITETNSDATA /* FhG basop 2435: Harmonize WriteTnsData*_fx(), EncodeTnsData*_fx() */ /* #################### End BE switches ################################## */ diff --git a/lib_com/prot_fx.h b/lib_com/prot_fx.h index 49e042e2d..aaee2d37a 100644 --- a/lib_com/prot_fx.h +++ b/lib_com/prot_fx.h @@ -8186,6 +8186,7 @@ void GetParameters_fx( Word16 *pnBits // Q0 ); +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA void EncodeTnsData_ivas_fx( STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ STnsData const *pTnsData, /* i : TNS data struct (quantized param) */ @@ -8193,6 +8194,15 @@ void EncodeTnsData_ivas_fx( Word16 *pnSize, /* o : number of written parameters Q0*/ Word16 *pnBits /* o : number of written bits Q0*/ ); +#else +void EncodeTnsData_ivas_fx( + STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ + STnsData const *pTnsData, /* i : TNS data struct (quantized param) */ + Word16 *stream, /* o : internal data stream Q0 */ + Word16 *pnSize, /* o : number of written parameters Q0 */ + Word16 *pnBits /* o : number of written bits Q0 */ +); +#endif void SetParameters( ParamsBitMap const *paramsBitMap, @@ -10805,6 +10815,7 @@ void ResetTnsData_flt( void ClearTnsFilterCoefficients_flt( STnsFilter *pTnsFilter ); +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA void EncodeTnsData( STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ STnsData const *pTnsData, /* i : TNS data struct (quantized param) */ @@ -10812,6 +10823,7 @@ void EncodeTnsData( Word16 *pnSize, /* o : number of written parameters */ Word16 *pnBits /* o : number of written bits */ ); +#endif void WriteTnsData( const STnsConfig *pTnsConfig, /* i : TNS Configuration struct */ @@ -10820,6 +10832,7 @@ void WriteTnsData( BSTR_ENC_HANDLE hBstr, /* o : bitstream */ Word16 *pnBits /* o : number of written bits */ ); + #ifndef HARMONIZE_READ_DECODE_TNS void ReadTnsData_ivas( STnsConfig const *pTnsConfig, diff --git a/lib_enc/cod_tcx_fx.c b/lib_enc/cod_tcx_fx.c index ec0a7372d..c7c7bd83d 100644 --- a/lib_enc/cod_tcx_fx.c +++ b/lib_enc/cod_tcx_fx.c @@ -5506,7 +5506,11 @@ void TNSAnalysisStereo_fx( st->hTcxEnc->tnsData[k].tnsOnWhitenedSpectra = st->hTcxEnc->bTnsOnWhithenedSpectra[k]; move16(); +#ifdef HARMONIZE_ISSUE_2435_WRITETNSDATA + EncodeTnsData_fx( st->hTcxCfg->pCurrentTnsConfig, &st->hTcxEnc->tnsData[k], param_core[ch] + k * NPRM_DIV + 1 + NOISE_FILL_RANGES + LTPSIZE, tnsSize[ch] + k, tnsBits[ch] + k ); +#else EncodeTnsData_ivas_fx( st->hTcxCfg->pCurrentTnsConfig, &st->hTcxEnc->tnsData[k], param_core[ch] + k * NPRM_DIV + 1 + NOISE_FILL_RANGES + LTPSIZE, tnsSize[ch] + k, tnsBits[ch] + k ); +#endif } IF( EQ_16( st->hTcxEnc->transform_type[k], TCX_5 ) ) diff --git a/lib_enc/prot_fx_enc.h b/lib_enc/prot_fx_enc.h index f7133fb4f..f111a67d6 100644 --- a/lib_enc/prot_fx_enc.h +++ b/lib_enc/prot_fx_enc.h @@ -1486,13 +1486,21 @@ Word16 DetectTnsFilt_ivas_fx( Word16 *predictionGain /* o : TNS prediction gain Q=7 */ ); - +#ifdef HARMONIZE_ISSUE_2435_WRITETNSDATA +void EncodeTnsData_fx( + STnsConfig const *pTnsConfig, + STnsData const *pTnsData, + Word16 *stream, + Word16 *pnSize, + Word16 *pnBits ); +#else Word16 EncodeTnsData_fx( STnsConfig const *pTnsConfig, STnsData const *pTnsData, Word16 *stream, Word16 *pnSize, Word16 *pnBits ); +#endif #ifdef HARMONIZE_ISSUE_2435_WRITETNSDATA Word16 WriteTnsData_fx( diff --git a/lib_enc/tns_base_enc_fx.c b/lib_enc/tns_base_enc_fx.c index 990011dab..1b9f67de7 100644 --- a/lib_enc/tns_base_enc_fx.c +++ b/lib_enc/tns_base_enc_fx.c @@ -697,6 +697,7 @@ Word16 DetectTnsFilt_ivas_fx( return ( pTnsData->nFilters > 0 ); } +#ifndef HARMONIZE_ISSUE_2435_WRITETNSDATA Word16 EncodeTnsData_fx( STnsConfig const *pTnsConfig, STnsData const *pTnsData, Word16 *stream, Word16 *pnSize, Word16 *pnBits ) { @@ -724,7 +725,17 @@ Word16 EncodeTnsData_fx( STnsConfig const *pTnsConfig, STnsData const *pTnsData, return TNS_NO_ERROR; } +#endif +#ifdef HARMONIZE_ISSUE_2435_WRITETNSDATA +void EncodeTnsData_fx( + STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ + STnsData const *pTnsData, /* i : TNS data struct (quantized param) */ + Word16 *stream, /* o : internal data stream Q0*/ + Word16 *pnSize, /* o : number of written parameters Q0*/ + Word16 *pnBits /* o : number of written bits Q0*/ +) +#else void EncodeTnsData_ivas_fx( STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ STnsData const *pTnsData, /* i : TNS data struct (quantized param) */ @@ -732,6 +743,7 @@ void EncodeTnsData_ivas_fx( Word16 *pnSize, /* o : number of written parameters Q0*/ Word16 *pnBits /* o : number of written bits Q0*/ ) +#endif { *pnSize = 0; move16(); -- GitLab