Commit ac879f74 authored by vaclav's avatar vaclav
Browse files

Merge branch 'basop-2556-conditions-alignment-between-float-and-fix-for-corner-cases' into 'main'

Resolve "basop-2556-conditions-alignment-between-float-and-fix-for-corner-cases"

Closes #2556

See merge request !2983
parents b490a193 c727e2eb
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -136,6 +136,8 @@
#define FIX_BASOP_2571_MASA_EXT_RENDER_FIXES            /* Nokia: BASOP issue 2571: Fix MASA EXT DirAC renderer by unifying it with decoder */
#define NONBE_FIX_2575                                  /* Fhg: Fix issue 2575, precision loss in FD CNG */

#define FIX_2556_ALIGN_CONDITIONS                       /* VA: Fix different conditions that were not exact between float and fix, BE on self-test */

/* ##################### End NON-BE switches ########################### */

/* ################## End MAINTENANCE switches ######################### */
+4 −0
Original line number Diff line number Diff line
@@ -265,7 +265,11 @@ void FEC_scale_syn_fx(
                        ener_max = *lp_ener_FEC_max; /*Q0*/
                        move32();
                        test();
#ifdef FIX_2556_ALIGN_CONDITIONS
                        if ( ( LE_16( clas, VOICED_TRANSITION ) && element_mode > EVS_MONO ) || EQ_16( clas, VOICED_TRANSITION ) || ( GE_16( clas, INACTIVE_CLAS ) ) )
#else
                        if ( EQ_16( clas, VOICED_TRANSITION ) || ( GE_16( clas, INACTIVE_CLAS ) ) )
#endif
                        {
                            ener_max = *lp_ener_FEC_av; /*Q0*/
                            move32();
+4 −0
Original line number Diff line number Diff line
@@ -1838,7 +1838,11 @@ ivas_error core_switching_pre_dec_fx(
    {
        hHQ_core->pastpre = sub( hHQ_core->pastpre, 1 );
        move16();
#ifdef FIX_2556_ALIGN_CONDITIONS
        IF( hHQ_core->pastpre <= 0 )
#else
        IF( hHQ_core->pastpre < 0 )
#endif
        {
            reset_preecho_dec_fx( hHQ_core );
        }
+6 −3
Original line number Diff line number Diff line
@@ -182,9 +182,12 @@ void decod_unvoiced_fx(
        }
        voice_factors_fx[tmp_idx] = 0;
        move16();

#ifdef FIX_2556_ALIGN_CONDITIONS
        IF( st_fx->hBWE_TD != NULL )
#endif
        {
            interp_code_5over2_fx( &exc_fx[i_subfr_fx], &bwe_exc_fx[( ( i_subfr_fx * 2 * HIBND_ACB_L_FAC ) >> 1 )], L_SUBFR );

        }
        p_Aq_fx += ( M + 1 );
        pt_pitch_fx++;
        st_fx->tilt_code_dec_fx[tmp_idx] = st_fx->tilt_code_fx;
+4 −0
Original line number Diff line number Diff line
@@ -242,7 +242,11 @@ Word16 stereo_tdm_ener_analysis_fx(
    {
        test();
        test();
#ifdef FIX_2556_ALIGN_CONDITIONS
        if ( ( EQ_16( hCPE->hStereoClassif->lrtd_mode, 1 ) || EQ_16( hCPE->hStereoTD->prev_fr_LRTD_TD_dec, 1 ) ) && ( LT_32( L_add( L_sub( hCPE->element_brate, 50 * FRAMES_PER_SEC ), L_add( hCPE->brate_surplus, hCPE->brate_surplus ) ), IVAS_BRATE_OMASA_STEREO_SW_THR ) ) )
#else
        if ( ( EQ_16( hCPE->hStereoClassif->lrtd_mode, 1 ) || EQ_16( hCPE->hStereoTD->prev_fr_LRTD_TD_dec, 1 ) ) && ( LE_32( L_add( L_sub( hCPE->element_brate, 50 * FRAMES_PER_SEC ), L_add( hCPE->brate_surplus, hCPE->brate_surplus ) ), IVAS_BRATE_OMASA_STEREO_SW_THR ) ) )
#endif
        {
            hStereoTD->prev_fr_LRTD_TD_dec = 0;
            move16();
Loading