static av_always_inline av_flatten void h264_loop_filter_luma_c(uint8_t *pix, int xstride, int ystride, int alpha, int beta, int8_t *tc0)

{

    int i, d;

    for( i = 0; i < 4; i++ ) {

        if( tc0[i] < 0 ) {

            pix += 4*ystride;

            continue;

        }

        for( d = 0; d < 4; d++ ) {

            const int p0 = pix[-1*xstride];

            const int p1 = pix[-2*xstride];

            const int p2 = pix[-3*xstride];

            const int q0 = pix[0];

            const int q1 = pix[1*xstride];

            const int q2 = pix[2*xstride];



            if( FFABS( p0 - q0 ) < alpha &&

                FFABS( p1 - p0 ) < beta &&

                FFABS( q1 - q0 ) < beta ) {



                int tc = tc0[i];

                int i_delta;



                if( FFABS( p2 - p0 ) < beta ) {

                    if(tc0[i])

                    pix[-2*xstride] = p1 + av_clip( (( p2 + ( ( p0 + q0 + 1 ) >> 1 ) ) >> 1) - p1, -tc0[i], tc0[i] );

                    tc++;

                }

                if( FFABS( q2 - q0 ) < beta ) {

                    if(tc0[i])

                    pix[   xstride] = q1 + av_clip( (( q2 + ( ( p0 + q0 + 1 ) >> 1 ) ) >> 1) - q1, -tc0[i], tc0[i] );

                    tc++;

                }



                i_delta = av_clip( (((q0 - p0 ) << 2) + (p1 - q1) + 4) >> 3, -tc, tc );

                pix[-xstride] = av_clip_uint8( p0 + i_delta );    /* p0' */

                pix[0]        = av_clip_uint8( q0 - i_delta );    /* q0' */

            }

            pix += ystride;

        }

    }

}

static av_always_inline av_flatten void h264_loop_filter_luma_c(uint8_t *pix, int xstride, int ystride, int alpha, int beta, int8_t *tc0)

{

    int i, d;

    for( i = 0; i < 4; i++ ) {

        if( tc0[i] < 0 ) {

            pix += 4*ystride;

            continue;

        }

        for( d = 0; d < 4; d++ ) {

            const int p0 = pix[-1*xstride];

            const int p1 = pix[-2*xstride];

            const int p2 = pix[-3*xstride];

            const int q0 = pix[0];

            const int q1 = pix[1*xstride];

            const int q2 = pix[2*xstride];



            if( FFABS( p0 - q0 ) < alpha &&

                FFABS( p1 - p0 ) < beta &&

                FFABS( q1 - q0 ) < beta ) {



                int tc = tc0[i];

                int i_delta;



                if( FFABS( p2 - p0 ) < beta ) {

                    if(tc0[i])

                    pix[-2*xstride] = p1 + av_clip( (( p2 + ( ( p0 + q0 + 1 ) >> 1 ) ) >> 1) - p1, -tc0[i], tc0[i] );

                    tc++;

                }

                if( FFABS( q2 - q0 ) < beta ) {

                    if(tc0[i])

                    pix[   xstride] = q1 + av_clip( (( q2 + ( ( p0 + q0 + 1 ) >> 1 ) ) >> 1) - q1, -tc0[i], tc0[i] );

                    tc++;

                }



                i_delta = av_clip( (((q0 - p0 ) << 2) + (p1 - q1) + 4) >> 3, -tc, tc );

                pix[-xstride] = av_clip_uint8( p0 + i_delta );    

                pix[0]        = av_clip_uint8( q0 - i_delta );    

            }

            pix += ystride;

        }

    }

}

static av_always_inline VAR_0 void FUNC_0(uint8_t *VAR_1, int VAR_2, int VAR_3, int VAR_4, int VAR_5, int8_t *VAR_6)

{

    int VAR_7, VAR_8;

    for( VAR_7 = 0; VAR_7 < 4; VAR_7++ ) {

        if( VAR_6[VAR_7] < 0 ) {

            VAR_1 += 4*VAR_3;

            continue;

        }

        for( VAR_8 = 0; VAR_8 < 4; VAR_8++ ) {

            const int VAR_9 = VAR_1[-1*VAR_2];

            const int VAR_10 = VAR_1[-2*VAR_2];

            const int VAR_11 = VAR_1[-3*VAR_2];

            const int VAR_12 = VAR_1[0];

            const int VAR_13 = VAR_1[1*VAR_2];

            const int VAR_14 = VAR_1[2*VAR_2];



            if( FFABS( VAR_9 - VAR_12 ) < VAR_4 &&

                FFABS( VAR_10 - VAR_9 ) < VAR_5 &&

                FFABS( VAR_13 - VAR_12 ) < VAR_5 ) {



                int VAR_15 = VAR_6[VAR_7];

                int VAR_16;



                if( FFABS( VAR_11 - VAR_9 ) < VAR_5 ) {

                    if(VAR_6[VAR_7])

                    VAR_1[-2*VAR_2] = VAR_10 + av_clip( (( VAR_11 + ( ( VAR_9 + VAR_12 + 1 ) >> 1 ) ) >> 1) - VAR_10, -VAR_6[VAR_7], VAR_6[VAR_7] );

                    VAR_15++;

                }

                if( FFABS( VAR_14 - VAR_12 ) < VAR_5 ) {

                    if(VAR_6[VAR_7])

                    VAR_1[   VAR_2] = VAR_13 + av_clip( (( VAR_14 + ( ( VAR_9 + VAR_12 + 1 ) >> 1 ) ) >> 1) - VAR_13, -VAR_6[VAR_7], VAR_6[VAR_7] );

                    VAR_15++;

                }



                VAR_16 = av_clip( (((VAR_12 - VAR_9 ) << 2) + (VAR_10 - VAR_13) + 4) >> 3, -VAR_15, VAR_15 );

                VAR_1[-VAR_2] = av_clip_uint8( VAR_9 + VAR_16 );    

                VAR_1[0]        = av_clip_uint8( VAR_12 - VAR_16 );    

            }

            VAR_1 += VAR_3;

        }

    }

}

static av_always_inline VAR_0 void FUNC_0(uint8_t *VAR_1, int VAR_2, int VAR_3, int VAR_4, int VAR_5, int8_t *VAR_6)
{ int VAR_7, VAR_8; for( VAR_7 = 0; VAR_7 < 4; VAR_7++ ) { if( VAR_6[VAR_7] < 0 ) { VAR_1 += 4*VAR_3; continue; } for( VAR_8 = 0; VAR_8 < 4; VAR_8++ ) { const int VAR_9 = VAR_1[-1*VAR_2]; const int VAR_10 = VAR_1[-2*VAR_2]; const int VAR_11 = VAR_1[-3*VAR_2]; const int VAR_12 = VAR_1[0]; const int VAR_13 = VAR_1[1*VAR_2]; const int VAR_14 = VAR_1[2*VAR_2]; if( FFABS( VAR_9 - VAR_12 ) < VAR_4 &&
FFABS( VAR_10 - VAR_9 ) < VAR_5 &&
FFABS( VAR_13 - VAR_12 ) < VAR_5 ) { int VAR_15 = VAR_6[VAR_7]; int VAR_16; if( FFABS( VAR_11 - VAR_9 ) < VAR_5 ) { if(VAR_6[VAR_7])
VAR_1[-2*VAR_2] = VAR_10 + av_clip( (( VAR_11 + ( ( VAR_9 + VAR_12 + 1 ) >> 1 ) ) >> 1) - VAR_10, -VAR_6[VAR_7], VAR_6[VAR_7] ); VAR_15++; } if( FFABS( VAR_14 - VAR_12 ) < VAR_5 ) { if(VAR_6[VAR_7])
VAR_1[   VAR_2] = VAR_13 + av_clip( (( VAR_14 + ( ( VAR_9 + VAR_12 + 1 ) >> 1 ) ) >> 1) - VAR_13, -VAR_6[VAR_7], VAR_6[VAR_7] ); VAR_15++; } VAR_16 = av_clip( (((VAR_12 - VAR_9 ) << 2) + (VAR_10 - VAR_13) + 4) >> 3, -VAR_15, VAR_15 ); VAR_1[-VAR_2] = av_clip_uint8( VAR_9 + VAR_16 ); VAR_1[0]        = av_clip_uint8( VAR_12 - VAR_16 ); } VAR_1 += VAR_3; } } }