void filter_mb(VP8Context *s, uint8_t *dst[3], VP8FilterStrength *f,

               int mb_x, int mb_y)

{

    int mbedge_lim, bedge_lim, hev_thresh;

    int filter_level = f->filter_level;

    int inner_limit = f->inner_limit;

    int inner_filter = f->inner_filter;

    int linesize = s->linesize;

    int uvlinesize = s->uvlinesize;

    static const uint8_t hev_thresh_lut[2][64] = {

        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,

          2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

          3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

          3, 3, 3, 3 },

        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,

          1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

          2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

          2, 2, 2, 2 }

    };



    if (!filter_level)

        return;



    bedge_lim  = 2 * filter_level + inner_limit;

    mbedge_lim = bedge_lim + 4;



    hev_thresh = hev_thresh_lut[s->keyframe][filter_level];



    if (mb_x) {

        s->vp8dsp.vp8_h_loop_filter16y(dst[0], linesize,

                                       mbedge_lim, inner_limit, hev_thresh);

        s->vp8dsp.vp8_h_loop_filter8uv(dst[1], dst[2], uvlinesize,

                                       mbedge_lim, inner_limit, hev_thresh);

    }



    if (inner_filter) {

        s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] +  4, linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] +  8, linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] + 12, linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_h_loop_filter8uv_inner(dst[1] +  4, dst[2] + 4,

                                             uvlinesize, bedge_lim,

                                             inner_limit, hev_thresh);

    }



    if (mb_y) {

        s->vp8dsp.vp8_v_loop_filter16y(dst[0], linesize,

                                       mbedge_lim, inner_limit, hev_thresh);

        s->vp8dsp.vp8_v_loop_filter8uv(dst[1], dst[2], uvlinesize,

                                       mbedge_lim, inner_limit, hev_thresh);

    }



    if (inner_filter) {

        s->vp8dsp.vp8_v_loop_filter16y_inner(dst[0] +  4 * linesize,

                                             linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_v_loop_filter16y_inner(dst[0] +  8 * linesize,

                                             linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_v_loop_filter16y_inner(dst[0] + 12 * linesize,

                                             linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_v_loop_filter8uv_inner(dst[1] +  4 * uvlinesize,

                                             dst[2] +  4 * uvlinesize,

                                             uvlinesize, bedge_lim,

                                             inner_limit, hev_thresh);

    }

}

void filter_mb(VP8Context *s, uint8_t *dst[3], VP8FilterStrength *f,

               int mb_x, int mb_y)

{

    int mbedge_lim, bedge_lim, hev_thresh;

    int filter_level = f->filter_level;

    int inner_limit = f->inner_limit;

    int inner_filter = f->inner_filter;

    int linesize = s->linesize;

    int uvlinesize = s->uvlinesize;

    static const uint8_t hev_thresh_lut[2][64] = {

        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,

          2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

          3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

          3, 3, 3, 3 },

        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,

          1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

          2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

          2, 2, 2, 2 }

    };



    if (!filter_level)

        return;



    bedge_lim  = 2 * filter_level + inner_limit;

    mbedge_lim = bedge_lim + 4;



    hev_thresh = hev_thresh_lut[s->keyframe][filter_level];



    if (mb_x) {

        s->vp8dsp.vp8_h_loop_filter16y(dst[0], linesize,

                                       mbedge_lim, inner_limit, hev_thresh);

        s->vp8dsp.vp8_h_loop_filter8uv(dst[1], dst[2], uvlinesize,

                                       mbedge_lim, inner_limit, hev_thresh);

    }



    if (inner_filter) {

        s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] +  4, linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] +  8, linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] + 12, linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_h_loop_filter8uv_inner(dst[1] +  4, dst[2] + 4,

                                             uvlinesize, bedge_lim,

                                             inner_limit, hev_thresh);

    }



    if (mb_y) {

        s->vp8dsp.vp8_v_loop_filter16y(dst[0], linesize,

                                       mbedge_lim, inner_limit, hev_thresh);

        s->vp8dsp.vp8_v_loop_filter8uv(dst[1], dst[2], uvlinesize,

                                       mbedge_lim, inner_limit, hev_thresh);

    }



    if (inner_filter) {

        s->vp8dsp.vp8_v_loop_filter16y_inner(dst[0] +  4 * linesize,

                                             linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_v_loop_filter16y_inner(dst[0] +  8 * linesize,

                                             linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_v_loop_filter16y_inner(dst[0] + 12 * linesize,

                                             linesize, bedge_lim,

                                             inner_limit, hev_thresh);

        s->vp8dsp.vp8_v_loop_filter8uv_inner(dst[1] +  4 * uvlinesize,

                                             dst[2] +  4 * uvlinesize,

                                             uvlinesize, bedge_lim,

                                             inner_limit, hev_thresh);

    }

}

               int mb_x, int mb_y)     int mbedge_lim, bedge_lim, hev_thresh;     bedge_lim  = 2 * filter_level + inner_limit;     mbedge_lim = bedge_lim + 4;     if (inner_filter) {         s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] +  4, linesize, bedge_lim,                                              inner_limit, hev_thresh);         s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] +  8, linesize, bedge_lim,                                              inner_limit, hev_thresh);         s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] + 12, linesize, bedge_lim,                                              inner_limit, hev_thresh);         s->vp8dsp.vp8_h_loop_filter8uv_inner(dst[1] +  4, dst[2] + 4,                                              uvlinesize, bedge_lim,                                              inner_limit, hev_thresh);                                              linesize, bedge_lim,                                              linesize, bedge_lim,                                              linesize, bedge_lim,                                              uvlinesize, bedge_lim,
void FUNC_0(VP8Context *VAR_0, uint8_t *VAR_1[3], VP8FilterStrength *VAR_2,

               int VAR_3, int VAR_4)

{

    int VAR_5, VAR_6, VAR_7;

    int VAR_8 = VAR_2->VAR_8;

    int VAR_9 = VAR_2->VAR_9;

    int VAR_10 = VAR_2->VAR_10;

    int VAR_11 = VAR_0->VAR_11;

    int VAR_12 = VAR_0->VAR_12;

    static const uint8_t VAR_13[2][64] = {

        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,

          2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

          3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

          3, 3, 3, 3 },

        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,

          1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

          2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

          2, 2, 2, 2 }

    };



    if (!VAR_8)

        return;



    VAR_6  = 2 * VAR_8 + VAR_9;

    VAR_5 = VAR_6 + 4;



    VAR_7 = VAR_13[VAR_0->keyframe][VAR_8];



    if (VAR_3) {

        VAR_0->vp8dsp.vp8_h_loop_filter16y(VAR_1[0], VAR_11,

                                       VAR_5, VAR_9, VAR_7);

        VAR_0->vp8dsp.vp8_h_loop_filter8uv(VAR_1[1], VAR_1[2], VAR_12,

                                       VAR_5, VAR_9, VAR_7);

    }



    if (VAR_10) {

        VAR_0->vp8dsp.vp8_h_loop_filter16y_inner(VAR_1[0] +  4, VAR_11, VAR_6,

                                             VAR_9, VAR_7);

        VAR_0->vp8dsp.vp8_h_loop_filter16y_inner(VAR_1[0] +  8, VAR_11, VAR_6,

                                             VAR_9, VAR_7);

        VAR_0->vp8dsp.vp8_h_loop_filter16y_inner(VAR_1[0] + 12, VAR_11, VAR_6,

                                             VAR_9, VAR_7);

        VAR_0->vp8dsp.vp8_h_loop_filter8uv_inner(VAR_1[1] +  4, VAR_1[2] + 4,

                                             VAR_12, VAR_6,

                                             VAR_9, VAR_7);

    }



    if (VAR_4) {

        VAR_0->vp8dsp.vp8_v_loop_filter16y(VAR_1[0], VAR_11,

                                       VAR_5, VAR_9, VAR_7);

        VAR_0->vp8dsp.vp8_v_loop_filter8uv(VAR_1[1], VAR_1[2], VAR_12,

                                       VAR_5, VAR_9, VAR_7);

    }



    if (VAR_10) {

        VAR_0->vp8dsp.vp8_v_loop_filter16y_inner(VAR_1[0] +  4 * VAR_11,

                                             VAR_11, VAR_6,

                                             VAR_9, VAR_7);

        VAR_0->vp8dsp.vp8_v_loop_filter16y_inner(VAR_1[0] +  8 * VAR_11,

                                             VAR_11, VAR_6,

                                             VAR_9, VAR_7);

        VAR_0->vp8dsp.vp8_v_loop_filter16y_inner(VAR_1[0] + 12 * VAR_11,

                                             VAR_11, VAR_6,

                                             VAR_9, VAR_7);

        VAR_0->vp8dsp.vp8_v_loop_filter8uv_inner(VAR_1[1] +  4 * VAR_12,

                                             VAR_1[2] +  4 * VAR_12,

                                             VAR_12, VAR_6,

                                             VAR_9, VAR_7);

    }

}

void FUNC_0(VP8Context *VAR_0, uint8_t *VAR_1[3], VP8FilterStrength *VAR_2,
int VAR_3, int VAR_4)
{ int VAR_5, VAR_6, VAR_7; int VAR_8 = VAR_2->VAR_8; int VAR_9 = VAR_2->VAR_9; int VAR_10 = VAR_2->VAR_10; int VAR_11 = VAR_0->VAR_11; int VAR_12 = VAR_0->VAR_12; static const uint8_t VAR_13[2][64] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2 } }; if (!VAR_8)
return; VAR_6  = 2 * VAR_8 + VAR_9; VAR_5 = VAR_6 + 4; VAR_7 = VAR_13[VAR_0->keyframe][VAR_8]; if (VAR_3) { VAR_0->vp8dsp.vp8_h_loop_filter16y(VAR_1[0], VAR_11,
VAR_5, VAR_9, VAR_7); VAR_0->vp8dsp.vp8_h_loop_filter8uv(VAR_1[1], VAR_1[2], VAR_12,
VAR_5, VAR_9, VAR_7); } if (VAR_10) { VAR_0->vp8dsp.vp8_h_loop_filter16y_inner(VAR_1[0] +  4, VAR_11, VAR_6,
VAR_9, VAR_7); VAR_0->vp8dsp.vp8_h_loop_filter16y_inner(VAR_1[0] +  8, VAR_11, VAR_6,
VAR_9, VAR_7); VAR_0->vp8dsp.vp8_h_loop_filter16y_inner(VAR_1[0] + 12, VAR_11, VAR_6,
VAR_9, VAR_7); VAR_0->vp8dsp.vp8_h_loop_filter8uv_inner(VAR_1[1] +  4, VAR_1[2] + 4,
VAR_12, VAR_6,
VAR_9, VAR_7); } if (VAR_4) { VAR_0->vp8dsp.vp8_v_loop_filter16y(VAR_1[0], VAR_11,
VAR_5, VAR_9, VAR_7); VAR_0->vp8dsp.vp8_v_loop_filter8uv(VAR_1[1], VAR_1[2], VAR_12,
VAR_5, VAR_9, VAR_7); } if (VAR_10) { VAR_0->vp8dsp.vp8_v_loop_filter16y_inner(VAR_1[0] +  4 * VAR_11,
VAR_11, VAR_6,
VAR_9, VAR_7); VAR_0->vp8dsp.vp8_v_loop_filter16y_inner(VAR_1[0] +  8 * VAR_11,
VAR_11, VAR_6,
VAR_9, VAR_7); VAR_0->vp8dsp.vp8_v_loop_filter16y_inner(VAR_1[0] + 12 * VAR_11,
VAR_11, VAR_6,
VAR_9, VAR_7); VAR_0->vp8dsp.vp8_v_loop_filter8uv_inner(VAR_1[1] +  4 * VAR_12,
VAR_1[2] +  4 * VAR_12,
VAR_12, VAR_6,
VAR_9, VAR_7); } }