Commit 198464b7 authored by multrus's avatar multrus
Browse files

hardcode output of BASOP_Util_Divide3232_Scale_cadence() for fad_r calculation

parent 1ccc3c58
Loading
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
@@ -2419,7 +2419,34 @@ ivas_error stereo_dmx_evs_init_encoder_fx(

    fad_g = hStereoDmxEVS->hPHA->fad_g_fx;
    // fad_r = 1.0f / (float) ( fad_len + 1 );
#if 1
    SWITCH( fad_len )
    {
        case STEREO_DMX_EVS_FAD_LEN_16:
            fad_r = 13338408;
            move32();
            tmp_e = -6;
            move16();
            BREAK;
        case STEREO_DMX_EVS_FAD_LEN_32:
            fad_r = 856317467;
            move32();
            tmp_e = -7;
            move16();
            BREAK;
        case STEREO_DMX_EVS_FAD_LEN_48:
            fad_r = 571471740;
            move32();
            tmp_e = -7;
            move16();
            BREAK;
        default:
            fad_r = BASOP_Util_Divide3232_Scale_newton( 1, add( fad_len, 1 ), &tmp_e );
            BREAK;
    }
#else
    fad_r = BASOP_Util_Divide3232_Scale_cadence( 1, add( fad_len, 1 ), &tmp_e );
#endif
    fad_r = L_shl_r( fad_r, tmp_e );
    fad_len2 = shr( fad_len, 1 );
    FOR( ( n = 0, m = ( fad_len - 1 ) ); n < fad_len2; ( n++, m-- ) )
@@ -2537,7 +2564,34 @@ ivas_error stereo_dmx_evs_init_encoder_fx(
    move16();
    fad_g = hStereoDmxEVS->hPHA->fad_g_prc_fx;
    // fad_r = 1.0f / (float) ( fad_len + 1 );
#if 1
    SWITCH( fad_len )
    {
        case STEREO_DMX_EVS_FADE_LEN_PRC_Q0 * 16:
            fad_r = 856317467;
            move32();
            tmp_e = -7;
            move16();
            BREAK;
        case STEREO_DMX_EVS_FADE_LEN_PRC_Q0 * 32:
            fad_r = 857653375;
            move32();
            tmp_e = -8;
            move16();
            BREAK;
        case STEREO_DMX_EVS_FADE_LEN_PRC_Q0 * 48:
            fad_r = 572066403;
            move32();
            tmp_e = -8;
            move16();
            BREAK;
        default:
            fad_r = BASOP_Util_Divide3232_Scale_cadence( 1, add( fad_len, 1 ), &tmp_e );
            BREAK;
    }
#else
    fad_r = BASOP_Util_Divide3232_Scale_cadence( 1, add( fad_len, 1 ), &tmp_e );
#endif
    fad_r = L_shl_r( fad_r, tmp_e );
    fad_len2 = shr( fad_len, 1 );
    FOR( ( n = 0, m = ( fad_len - 1 ) ); n < fad_len2; ( n++, m-- ) )