static av_always_inline int vc1_filter_line(uint8_t* src, int stride, int pq){

    uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;



    int a0 = (2*(src[-2*stride] - src[ 1*stride]) - 5*(src[-1*stride] - src[ 0*stride]) + 4) >> 3;

    int a0_sign = a0 >> 31;        /* Store sign */

    a0 = (a0 ^ a0_sign) - a0_sign; /* a0 = FFABS(a0); */

    if(a0 < pq){

        int a1 = FFABS((2*(src[-4*stride] - src[-1*stride]) - 5*(src[-3*stride] - src[-2*stride]) + 4) >> 3);

        int a2 = FFABS((2*(src[ 0*stride] - src[ 3*stride]) - 5*(src[ 1*stride] - src[ 2*stride]) + 4) >> 3);

        if(a1 < a0 || a2 < a0){

            int clip = src[-1*stride] - src[ 0*stride];

            int clip_sign = clip >> 31;

            clip = ((clip ^ clip_sign) - clip_sign)>>1;

            if(clip){

                int a3 = FFMIN(a1, a2);

                int d = 5 * (a3 - a0);

                int d_sign = (d >> 31);

                d = ((d ^ d_sign) - d_sign) >> 3;

                d_sign ^= a0_sign;



                if( d_sign ^ clip_sign )

                    d = 0;

                else{

                    d = FFMIN(d, clip);

                    d = (d ^ d_sign) - d_sign;          /* Restore sign */

                    src[-1*stride] = cm[src[-1*stride] - d];

                    src[ 0*stride] = cm[src[ 0*stride] + d];

                }

                return 1;

            }

        }

    }

    return 0;

}

static av_always_inline int vc1_filter_line(uint8_t* src, int stride, int pq){

    uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;



    int a0 = (2*(src[-2*stride] - src[ 1*stride]) - 5*(src[-1*stride] - src[ 0*stride]) + 4) >> 3;

    int a0_sign = a0 >> 31;        

    a0 = (a0 ^ a0_sign) - a0_sign; 

    if(a0 < pq){

        int a1 = FFABS((2*(src[-4*stride] - src[-1*stride]) - 5*(src[-3*stride] - src[-2*stride]) + 4) >> 3);

        int a2 = FFABS((2*(src[ 0*stride] - src[ 3*stride]) - 5*(src[ 1*stride] - src[ 2*stride]) + 4) >> 3);

        if(a1 < a0 || a2 < a0){

            int clip = src[-1*stride] - src[ 0*stride];

            int clip_sign = clip >> 31;

            clip = ((clip ^ clip_sign) - clip_sign)>>1;

            if(clip){

                int a3 = FFMIN(a1, a2);

                int d = 5 * (a3 - a0);

                int d_sign = (d >> 31);

                d = ((d ^ d_sign) - d_sign) >> 3;

                d_sign ^= a0_sign;



                if( d_sign ^ clip_sign )

                    d = 0;

                else{

                    d = FFMIN(d, clip);

                    d = (d ^ d_sign) - d_sign;          

                    src[-1*stride] = cm[src[-1*stride] - d];

                    src[ 0*stride] = cm[src[ 0*stride] + d];

                }

                return 1;

            }

        }

    }

    return 0;

}

    uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;                     src[-1*stride] = cm[src[-1*stride] - d];                     src[ 0*stride] = cm[src[ 0*stride] + d];     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
static av_always_inline int FUNC_0(uint8_t* src, int stride, int pq){

    uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;



    int VAR_0 = (2*(src[-2*stride] - src[ 1*stride]) - 5*(src[-1*stride] - src[ 0*stride]) + 4) >> 3;

    int VAR_1 = VAR_0 >> 31;        

    VAR_0 = (VAR_0 ^ VAR_1) - VAR_1; 

    if(VAR_0 < pq){

        int VAR_2 = FFABS((2*(src[-4*stride] - src[-1*stride]) - 5*(src[-3*stride] - src[-2*stride]) + 4) >> 3);

        int VAR_3 = FFABS((2*(src[ 0*stride] - src[ 3*stride]) - 5*(src[ 1*stride] - src[ 2*stride]) + 4) >> 3);

        if(VAR_2 < VAR_0 || VAR_3 < VAR_0){

            int VAR_4 = src[-1*stride] - src[ 0*stride];

            int VAR_5 = VAR_4 >> 31;

            VAR_4 = ((VAR_4 ^ VAR_5) - VAR_5)>>1;

            if(VAR_4){

                int VAR_6 = FFMIN(VAR_2, VAR_3);

                int VAR_7 = 5 * (VAR_6 - VAR_0);

                int VAR_8 = (VAR_7 >> 31);

                VAR_7 = ((VAR_7 ^ VAR_8) - VAR_8) >> 3;

                VAR_8 ^= VAR_1;



                if( VAR_8 ^ VAR_5 )

                    VAR_7 = 0;

                else{

                    VAR_7 = FFMIN(VAR_7, VAR_4);

                    VAR_7 = (VAR_7 ^ VAR_8) - VAR_8;          

                    src[-1*stride] = cm[src[-1*stride] - VAR_7];

                    src[ 0*stride] = cm[src[ 0*stride] + VAR_7];

                }

                return 1;

            }

        }

    }

    return 0;

}

static av_always_inline int FUNC_0(uint8_t* src, int stride, int pq){ uint8_t *cm = ff_cropTbl + MAX_NEG_CROP; int VAR_0 = (2*(src[-2*stride] - src[ 1*stride]) - 5*(src[-1*stride] - src[ 0*stride]) + 4) >> 3; int VAR_1 = VAR_0 >> 31; VAR_0 = (VAR_0 ^ VAR_1) - VAR_1; if(VAR_0 < pq){ int VAR_2 = FFABS((2*(src[-4*stride] - src[-1*stride]) - 5*(src[-3*stride] - src[-2*stride]) + 4) >> 3); int VAR_3 = FFABS((2*(src[ 0*stride] - src[ 3*stride]) - 5*(src[ 1*stride] - src[ 2*stride]) + 4) >> 3); if(VAR_2 < VAR_0 || VAR_3 < VAR_0){ int VAR_4 = src[-1*stride] - src[ 0*stride]; int VAR_5 = VAR_4 >> 31; VAR_4 = ((VAR_4 ^ VAR_5) - VAR_5)>>1; if(VAR_4){ int VAR_6 = FFMIN(VAR_2, VAR_3); int VAR_7 = 5 * (VAR_6 - VAR_0); int VAR_8 = (VAR_7 >> 31); VAR_7 = ((VAR_7 ^ VAR_8) - VAR_8) >> 3; VAR_8 ^= VAR_1; if( VAR_8 ^ VAR_5 )
VAR_7 = 0; else{ VAR_7 = FFMIN(VAR_7, VAR_4); VAR_7 = (VAR_7 ^ VAR_8) - VAR_8; src[-1*stride] = cm[src[-1*stride] - VAR_7]; src[ 0*stride] = cm[src[ 0*stride] + VAR_7]; } return 1; } } } return 0; }