Commit 0364da68 authored by multrus's avatar multrus
Browse files

Merge branch 'basop-2508-harmonize-getattackfortcxdecision' into 'main'

Resolve "Harmonize InitTransientDetection* and its callees "

Closes #2508

See merge request !2923
parents 31b1fc5a 816fd97c
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -99,10 +99,9 @@
#define FIX_BASOP_2532_cx_e                             /* FhG: Fix issue 2532 about additional exponent variable*/
#define HARMONIZE_2543_SQ_gain                          /* FhG: Harmonize SQ_gain */
#define FIX_ISSUE_2533_EXTRA_CONDITION                  /* FhG: Fix issue basop 2533 removing the extra condition*/

/*Harmonize SetTCXModeInfo, GetTCXMaxenergyChange*/                                                        
#define HARMONIZE_2537_SetTCXModeInfo                 /* FhG: Harmonize SetTCXModeInfo  - IVAS_VERSION OBVIOUSLY NOT FITTING FOR EVS - pipes not green */
#define HARMONIZE_2537_GetTCXMaxenergyChange            /* FhG: Harmonize GetTCXMaxenergyChange */
#define HARMONIZE_2508_InitTransientDetection          /* FhG: harmonize GetAttackForTCXDecision derivates for evs/ivas  */

/* #################### End BE switches ################################## */

+8 −0
Original line number Diff line number Diff line
@@ -1202,11 +1202,19 @@ ivas_error init_encoder_fx(

    IF( GT_16( st->element_mode, EVS_MONO ) )
    {
#ifdef HARMONIZE_2508_InitTransientDetection
        InitTransientDetection_fx( input_frame, 0, st->hTranDet, 1, 1 /* > EVS_MONO */ );
#else
        InitTransientDetection_ivas_fx( input_frame, 0, st->hTranDet, 1 );
#endif
    }
    ELSE
    {
#ifdef HARMONIZE_2508_InitTransientDetection
        InitTransientDetection_fx( input_frame, NS2SA_FX2( st->input_Fs, DELAY_FIR_RESAMPL_NS ), st->hTranDet, 0, EVS_MONO );
#else
        InitTransientDetection_fx( input_frame, NS2SA_FX2( st->input_Fs, DELAY_FIR_RESAMPL_NS ), st->hTranDet );
#endif
    }

    /*-----------------------------------------------------------------*
+4 −1
Original line number Diff line number Diff line
@@ -1195,8 +1195,11 @@ static ivas_error ivas_mc_enc_reconfig_fx(
            {
                return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Transient Detection\n" ) );
            }

#ifdef HARMONIZE_2508_InitTransientDetection
            InitTransientDetection_fx( extract_l( Mult_32_16( st->input_Fs, INV_FRAME_PER_SEC_Q15 ) ), NS2SA_FX2( st->input_Fs, DELAY_FIR_RESAMPL_NS ), st->hTranDet, 0, st->element_mode );
#else
            InitTransientDetection_ivas_fx( extract_l( Mult_32_16( st->input_Fs, INV_FRAME_PER_SEC_Q15 ) ), NS2SA_FX2( st->input_Fs, DELAY_FIR_RESAMPL_NS ), st->hTranDet, 0 );
#endif
        }

        IF( st->hIGFEnc == NULL )
+9 −0
Original line number Diff line number Diff line
@@ -878,6 +878,14 @@ void calculate_hangover_attenuation_gain_fx(
 *        Don't include the delay of the MDCT overlap.
 * @param pTransientDetection Structure to be initialized. It contains all transient detectors to be used.
 */
#ifdef HARMONIZE_2508_InitTransientDetection
void InitTransientDetection_fx(
    const Word16 nFrameLength,
    const Word16 nTCXDelay,
    TRAN_DET_HANDLE hTranDet,
    const Word16 ext_mem_flag,
    Word16 element_mode );
#else
void InitTransientDetection_fx(
    const Word16 nFrameLength,
    const Word16 nTCXDelay,
@@ -888,6 +896,7 @@ void InitTransientDetection_ivas_fx(
    const Word16 nTCXDelay,
    TRAN_DET_HANDLE hTranDet,
    const Word16 ext_mem_flag );
#endif

/** Runs transient detection.
 * Runs all transient detectors defined in pTransientDetection
+4 −0
Original line number Diff line number Diff line
@@ -160,7 +160,11 @@ typedef struct


/* Attack detection function. */
#ifdef HARMONIZE_2508_InitTransientDetection
typedef void ( *TCheckSubblocksForAttack_fx )( Word32 const *pSubblockNrg, Word32 const *pAccSubblockNrg, Word16 nSubblocks, Word16 nPastSubblocks, Word16 attackRatioThreshold, Word16 *pbIsAttackPresent, Word16 *pAttackIndex, Word16 element_mode );
#else
typedef void ( *TCheckSubblocksForAttack_fx )( Word32 const *pSubblockNrg, Word32 const *pAccSubblockNrg, Word16 nSubblocks, Word16 nPastSubblocks, Word16 attackRatioThreshold, Word16 *pbIsAttackPresent, Word16 *pAttackIndex );
#endif

/* Transient detector. */
typedef struct TransientDetector
Loading