void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,

                                           int log2_trafo_size,

                                           int slice_or_tiles_up_boundary,

                                           int slice_or_tiles_left_boundary)

{

    MvField *tab_mvf     = s->ref->tab_mvf;

    int log2_min_pu_size = s->sps->log2_min_pu_size;

    int log2_min_tu_size = s->sps->log2_min_tb_size;

    int min_pu_width     = s->sps->min_pu_width;

    int min_tu_width     = s->sps->min_tb_width;

    int is_intra = tab_mvf[(y0 >> log2_min_pu_size) * min_pu_width +

                           (x0 >> log2_min_pu_size)].is_intra;

    int i, j, bs;



    if (y0 > 0 && (y0 & 7) == 0) {

        int yp_pu = (y0 - 1) >> log2_min_pu_size;

        int yq_pu =  y0      >> log2_min_pu_size;

        int yp_tu = (y0 - 1) >> log2_min_tu_size;

        int yq_tu =  y0      >> log2_min_tu_size;



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

            int x_pu = (x0 + i) >> log2_min_pu_size;

            int x_tu = (x0 + i) >> log2_min_tu_size;

            MvField *top  = &tab_mvf[yp_pu * min_pu_width + x_pu];

            MvField *curr = &tab_mvf[yq_pu * min_pu_width + x_pu];

            uint8_t top_cbf_luma  = s->cbf_luma[yp_tu * min_tu_width + x_tu];

            uint8_t curr_cbf_luma = s->cbf_luma[yq_tu * min_tu_width + x_tu];

            RefPicList *top_refPicList = ff_hevc_get_ref_list(s, s->ref,

                                                              x0 + i, y0 - 1);



            bs = boundary_strength(s, curr, curr_cbf_luma,

                                   top, top_cbf_luma, top_refPicList, 1);

            if (!s->sh.slice_loop_filter_across_slices_enabled_flag &&

                (slice_or_tiles_up_boundary & 1) &&

                (y0 % (1 << s->sps->log2_ctb_size)) == 0)

                bs = 0;

            else if (!s->pps->loop_filter_across_tiles_enabled_flag &&

                     (slice_or_tiles_up_boundary & 2) &&

                     (y0 % (1 << s->sps->log2_ctb_size)) == 0)

                bs = 0;

            if (y0 == 0 || s->sh.disable_deblocking_filter_flag == 1)

                bs = 0;

            if (bs)

                s->horizontal_bs[((x0 + i) + y0 * s->bs_width) >> 2] = bs;

        }

    }



    // bs for TU internal horizontal PU boundaries

    if (log2_trafo_size > s->sps->log2_min_pu_size && !is_intra)

        for (j = 8; j < (1 << log2_trafo_size); j += 8) {

            int yp_pu = (y0 + j - 1) >> log2_min_pu_size;

            int yq_pu = (y0 + j)     >> log2_min_pu_size;

            int yp_tu = (y0 + j - 1) >> log2_min_tu_size;

            int yq_tu = (y0 + j)     >> log2_min_tu_size;



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

                int x_pu = (x0 + i) >> log2_min_pu_size;

                int x_tu = (x0 + i) >> log2_min_tu_size;

                MvField *top  = &tab_mvf[yp_pu * min_pu_width + x_pu];

                MvField *curr = &tab_mvf[yq_pu * min_pu_width + x_pu];

                uint8_t top_cbf_luma  = s->cbf_luma[yp_tu * min_tu_width + x_tu];

                uint8_t curr_cbf_luma = s->cbf_luma[yq_tu * min_tu_width + x_tu];

                RefPicList *top_refPicList = ff_hevc_get_ref_list(s, s->ref,

                                                                  x0 + i,

                                                                  y0 + j - 1);



                bs = boundary_strength(s, curr, curr_cbf_luma,

                                       top, top_cbf_luma, top_refPicList, 0);

                if (s->sh.disable_deblocking_filter_flag == 1)

                    bs = 0;

                if (bs)

                    s->horizontal_bs[((x0 + i) + (y0 + j) * s->bs_width) >> 2] = bs;

            }

        }



    // bs for vertical TU boundaries

    if (x0 > 0 && (x0 & 7) == 0) {

        int xp_pu = (x0 - 1) >> log2_min_pu_size;

        int xq_pu =  x0      >> log2_min_pu_size;

        int xp_tu = (x0 - 1) >> log2_min_tu_size;

        int xq_tu =  x0      >> log2_min_tu_size;



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

            int y_pu      = (y0 + i) >> log2_min_pu_size;

            int y_tu      = (y0 + i) >> log2_min_tu_size;

            MvField *left = &tab_mvf[y_pu * min_pu_width + xp_pu];

            MvField *curr = &tab_mvf[y_pu * min_pu_width + xq_pu];



            uint8_t left_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xp_tu];

            uint8_t curr_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xq_tu];

            RefPicList *left_refPicList = ff_hevc_get_ref_list(s, s->ref,

                                                               x0 - 1, y0 + i);



            bs = boundary_strength(s, curr, curr_cbf_luma,

                                   left, left_cbf_luma, left_refPicList, 1);

            if (!s->sh.slice_loop_filter_across_slices_enabled_flag &&

                (slice_or_tiles_left_boundary & 1) &&

                (x0 % (1 << s->sps->log2_ctb_size)) == 0)

                bs = 0;

            else if (!s->pps->loop_filter_across_tiles_enabled_flag &&

                     (slice_or_tiles_left_boundary & 2) &&

                     (x0 % (1 << s->sps->log2_ctb_size)) == 0)

                bs = 0;

            if (x0 == 0 || s->sh.disable_deblocking_filter_flag == 1)

                bs = 0;

            if (bs)

                s->vertical_bs[(x0 >> 3) + ((y0 + i) >> 2) * s->bs_width] = bs;

        }

    }



    // bs for TU internal vertical PU boundaries

    if (log2_trafo_size > log2_min_pu_size && !is_intra)

        for (j = 0; j < (1 << log2_trafo_size); j += 4) {

            int y_pu = (y0 + j) >> log2_min_pu_size;

            int y_tu = (y0 + j) >> log2_min_tu_size;



            for (i = 8; i < (1 << log2_trafo_size); i += 8) {

                int xp_pu = (x0 + i - 1) >> log2_min_pu_size;

                int xq_pu = (x0 + i)     >> log2_min_pu_size;

                int xp_tu = (x0 + i - 1) >> log2_min_tu_size;

                int xq_tu = (x0 + i)     >> log2_min_tu_size;

                MvField *left = &tab_mvf[y_pu * min_pu_width + xp_pu];

                MvField *curr = &tab_mvf[y_pu * min_pu_width + xq_pu];

                uint8_t left_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xp_tu];

                uint8_t curr_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xq_tu];

                RefPicList *left_refPicList = ff_hevc_get_ref_list(s, s->ref,

                                                                   x0 + i - 1,

                                                                   y0 + j);



                bs = boundary_strength(s, curr, curr_cbf_luma,

                                       left, left_cbf_luma, left_refPicList, 0);

                if (s->sh.disable_deblocking_filter_flag == 1)

                    bs = 0;

                if (bs)

                    s->vertical_bs[((x0 + i) >> 3) + ((y0 + j) >> 2) * s->bs_width] = bs;

            }

        }

}

void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,

                                           int log2_trafo_size,

                                           int slice_or_tiles_up_boundary,

                                           int slice_or_tiles_left_boundary)

{

    MvField *tab_mvf     = s->ref->tab_mvf;

    int log2_min_pu_size = s->sps->log2_min_pu_size;

    int log2_min_tu_size = s->sps->log2_min_tb_size;

    int min_pu_width     = s->sps->min_pu_width;

    int min_tu_width     = s->sps->min_tb_width;

    int is_intra = tab_mvf[(y0 >> log2_min_pu_size) * min_pu_width +

                           (x0 >> log2_min_pu_size)].is_intra;

    int i, j, bs;



    if (y0 > 0 && (y0 & 7) == 0) {

        int yp_pu = (y0 - 1) >> log2_min_pu_size;

        int yq_pu =  y0      >> log2_min_pu_size;

        int yp_tu = (y0 - 1) >> log2_min_tu_size;

        int yq_tu =  y0      >> log2_min_tu_size;



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

            int x_pu = (x0 + i) >> log2_min_pu_size;

            int x_tu = (x0 + i) >> log2_min_tu_size;

            MvField *top  = &tab_mvf[yp_pu * min_pu_width + x_pu];

            MvField *curr = &tab_mvf[yq_pu * min_pu_width + x_pu];

            uint8_t top_cbf_luma  = s->cbf_luma[yp_tu * min_tu_width + x_tu];

            uint8_t curr_cbf_luma = s->cbf_luma[yq_tu * min_tu_width + x_tu];

            RefPicList *top_refPicList = ff_hevc_get_ref_list(s, s->ref,

                                                              x0 + i, y0 - 1);



            bs = boundary_strength(s, curr, curr_cbf_luma,

                                   top, top_cbf_luma, top_refPicList, 1);

            if (!s->sh.slice_loop_filter_across_slices_enabled_flag &&

                (slice_or_tiles_up_boundary & 1) &&

                (y0 % (1 << s->sps->log2_ctb_size)) == 0)

                bs = 0;

            else if (!s->pps->loop_filter_across_tiles_enabled_flag &&

                     (slice_or_tiles_up_boundary & 2) &&

                     (y0 % (1 << s->sps->log2_ctb_size)) == 0)

                bs = 0;

            if (y0 == 0 || s->sh.disable_deblocking_filter_flag == 1)

                bs = 0;

            if (bs)

                s->horizontal_bs[((x0 + i) + y0 * s->bs_width) >> 2] = bs;

        }

    }



    

    if (log2_trafo_size > s->sps->log2_min_pu_size && !is_intra)

        for (j = 8; j < (1 << log2_trafo_size); j += 8) {

            int yp_pu = (y0 + j - 1) >> log2_min_pu_size;

            int yq_pu = (y0 + j)     >> log2_min_pu_size;

            int yp_tu = (y0 + j - 1) >> log2_min_tu_size;

            int yq_tu = (y0 + j)     >> log2_min_tu_size;



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

                int x_pu = (x0 + i) >> log2_min_pu_size;

                int x_tu = (x0 + i) >> log2_min_tu_size;

                MvField *top  = &tab_mvf[yp_pu * min_pu_width + x_pu];

                MvField *curr = &tab_mvf[yq_pu * min_pu_width + x_pu];

                uint8_t top_cbf_luma  = s->cbf_luma[yp_tu * min_tu_width + x_tu];

                uint8_t curr_cbf_luma = s->cbf_luma[yq_tu * min_tu_width + x_tu];

                RefPicList *top_refPicList = ff_hevc_get_ref_list(s, s->ref,

                                                                  x0 + i,

                                                                  y0 + j - 1);



                bs = boundary_strength(s, curr, curr_cbf_luma,

                                       top, top_cbf_luma, top_refPicList, 0);

                if (s->sh.disable_deblocking_filter_flag == 1)

                    bs = 0;

                if (bs)

                    s->horizontal_bs[((x0 + i) + (y0 + j) * s->bs_width) >> 2] = bs;

            }

        }



    

    if (x0 > 0 && (x0 & 7) == 0) {

        int xp_pu = (x0 - 1) >> log2_min_pu_size;

        int xq_pu =  x0      >> log2_min_pu_size;

        int xp_tu = (x0 - 1) >> log2_min_tu_size;

        int xq_tu =  x0      >> log2_min_tu_size;



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

            int y_pu      = (y0 + i) >> log2_min_pu_size;

            int y_tu      = (y0 + i) >> log2_min_tu_size;

            MvField *left = &tab_mvf[y_pu * min_pu_width + xp_pu];

            MvField *curr = &tab_mvf[y_pu * min_pu_width + xq_pu];



            uint8_t left_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xp_tu];

            uint8_t curr_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xq_tu];

            RefPicList *left_refPicList = ff_hevc_get_ref_list(s, s->ref,

                                                               x0 - 1, y0 + i);



            bs = boundary_strength(s, curr, curr_cbf_luma,

                                   left, left_cbf_luma, left_refPicList, 1);

            if (!s->sh.slice_loop_filter_across_slices_enabled_flag &&

                (slice_or_tiles_left_boundary & 1) &&

                (x0 % (1 << s->sps->log2_ctb_size)) == 0)

                bs = 0;

            else if (!s->pps->loop_filter_across_tiles_enabled_flag &&

                     (slice_or_tiles_left_boundary & 2) &&

                     (x0 % (1 << s->sps->log2_ctb_size)) == 0)

                bs = 0;

            if (x0 == 0 || s->sh.disable_deblocking_filter_flag == 1)

                bs = 0;

            if (bs)

                s->vertical_bs[(x0 >> 3) + ((y0 + i) >> 2) * s->bs_width] = bs;

        }

    }



    

    if (log2_trafo_size > log2_min_pu_size && !is_intra)

        for (j = 0; j < (1 << log2_trafo_size); j += 4) {

            int y_pu = (y0 + j) >> log2_min_pu_size;

            int y_tu = (y0 + j) >> log2_min_tu_size;



            for (i = 8; i < (1 << log2_trafo_size); i += 8) {

                int xp_pu = (x0 + i - 1) >> log2_min_pu_size;

                int xq_pu = (x0 + i)     >> log2_min_pu_size;

                int xp_tu = (x0 + i - 1) >> log2_min_tu_size;

                int xq_tu = (x0 + i)     >> log2_min_tu_size;

                MvField *left = &tab_mvf[y_pu * min_pu_width + xp_pu];

                MvField *curr = &tab_mvf[y_pu * min_pu_width + xq_pu];

                uint8_t left_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xp_tu];

                uint8_t curr_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xq_tu];

                RefPicList *left_refPicList = ff_hevc_get_ref_list(s, s->ref,

                                                                   x0 + i - 1,

                                                                   y0 + j);



                bs = boundary_strength(s, curr, curr_cbf_luma,

                                       left, left_cbf_luma, left_refPicList, 0);

                if (s->sh.disable_deblocking_filter_flag == 1)

                    bs = 0;

                if (bs)

                    s->vertical_bs[((x0 + i) >> 3) + ((y0 + j) >> 2) * s->bs_width] = bs;

            }

        }

}

void FUNC_0(HEVCContext *VAR_0, int VAR_1, int VAR_2,

                                           int VAR_3,

                                           int VAR_4,

                                           int VAR_5)

{

    MvField *tab_mvf     = VAR_0->ref->tab_mvf;

    int VAR_6 = VAR_0->sps->VAR_6;

    int VAR_7 = VAR_0->sps->log2_min_tb_size;

    int VAR_8     = VAR_0->sps->VAR_8;

    int VAR_9     = VAR_0->sps->min_tb_width;

    int VAR_10 = tab_mvf[(VAR_2 >> VAR_6) * VAR_8 +

                           (VAR_1 >> VAR_6)].VAR_10;

    int VAR_11, VAR_12, VAR_13;



    if (VAR_2 > 0 && (VAR_2 & 7) == 0) {

        int VAR_20 = (VAR_2 - 1) >> VAR_6;

        int VAR_20 =  VAR_2      >> VAR_6;

        int VAR_20 = (VAR_2 - 1) >> VAR_7;

        int VAR_20 =  VAR_2      >> VAR_7;



        for (VAR_11 = 0; VAR_11 < (1 << VAR_3); VAR_11 += 4) {

            int VAR_20 = (VAR_1 + VAR_11) >> VAR_6;

            int VAR_20 = (VAR_1 + VAR_11) >> VAR_7;

            MvField *top  = &tab_mvf[VAR_20 * VAR_8 + VAR_20];

            MvField *curr = &tab_mvf[VAR_20 * VAR_8 + VAR_20];

            uint8_t top_cbf_luma  = VAR_0->cbf_luma[VAR_20 * VAR_9 + VAR_20];

            uint8_t curr_cbf_luma = VAR_0->cbf_luma[VAR_20 * VAR_9 + VAR_20];

            RefPicList *top_refPicList = ff_hevc_get_ref_list(VAR_0, VAR_0->ref,

                                                              VAR_1 + VAR_11, VAR_2 - 1);



            VAR_13 = boundary_strength(VAR_0, curr, curr_cbf_luma,

                                   top, top_cbf_luma, top_refPicList, 1);

            if (!VAR_0->sh.slice_loop_filter_across_slices_enabled_flag &&

                (VAR_4 & 1) &&

                (VAR_2 % (1 << VAR_0->sps->log2_ctb_size)) == 0)

                VAR_13 = 0;

            else if (!VAR_0->pps->loop_filter_across_tiles_enabled_flag &&

                     (VAR_4 & 2) &&

                     (VAR_2 % (1 << VAR_0->sps->log2_ctb_size)) == 0)

                VAR_13 = 0;

            if (VAR_2 == 0 || VAR_0->sh.disable_deblocking_filter_flag == 1)

                VAR_13 = 0;

            if (VAR_13)

                VAR_0->horizontal_bs[((VAR_1 + VAR_11) + VAR_2 * VAR_0->bs_width) >> 2] = VAR_13;

        }

    }



    

    if (VAR_3 > VAR_0->sps->VAR_6 && !VAR_10)

        for (VAR_12 = 8; VAR_12 < (1 << VAR_3); VAR_12 += 8) {

            int VAR_20 = (VAR_2 + VAR_12 - 1) >> VAR_6;

            int VAR_20 = (VAR_2 + VAR_12)     >> VAR_6;

            int VAR_20 = (VAR_2 + VAR_12 - 1) >> VAR_7;

            int VAR_20 = (VAR_2 + VAR_12)     >> VAR_7;



            for (VAR_11 = 0; VAR_11 < (1 << VAR_3); VAR_11 += 4) {

                int VAR_20 = (VAR_1 + VAR_11) >> VAR_6;

                int VAR_20 = (VAR_1 + VAR_11) >> VAR_7;

                MvField *top  = &tab_mvf[VAR_20 * VAR_8 + VAR_20];

                MvField *curr = &tab_mvf[VAR_20 * VAR_8 + VAR_20];

                uint8_t top_cbf_luma  = VAR_0->cbf_luma[VAR_20 * VAR_9 + VAR_20];

                uint8_t curr_cbf_luma = VAR_0->cbf_luma[VAR_20 * VAR_9 + VAR_20];

                RefPicList *top_refPicList = ff_hevc_get_ref_list(VAR_0, VAR_0->ref,

                                                                  VAR_1 + VAR_11,

                                                                  VAR_2 + VAR_12 - 1);



                VAR_13 = boundary_strength(VAR_0, curr, curr_cbf_luma,

                                       top, top_cbf_luma, top_refPicList, 0);

                if (VAR_0->sh.disable_deblocking_filter_flag == 1)

                    VAR_13 = 0;

                if (VAR_13)

                    VAR_0->horizontal_bs[((VAR_1 + VAR_11) + (VAR_2 + VAR_12) * VAR_0->bs_width) >> 2] = VAR_13;

            }

        }



    

    if (VAR_1 > 0 && (VAR_1 & 7) == 0) {

        int VAR_26 = (VAR_1 - 1) >> VAR_6;

        int VAR_26 =  VAR_1      >> VAR_6;

        int VAR_26 = (VAR_1 - 1) >> VAR_7;

        int VAR_26 =  VAR_1      >> VAR_7;



        for (VAR_11 = 0; VAR_11 < (1 << VAR_3); VAR_11 += 4) {

            int VAR_26      = (VAR_2 + VAR_11) >> VAR_6;

            int VAR_26      = (VAR_2 + VAR_11) >> VAR_7;

            MvField *left = &tab_mvf[VAR_26 * VAR_8 + VAR_26];

            MvField *curr = &tab_mvf[VAR_26 * VAR_8 + VAR_26];



            uint8_t left_cbf_luma = VAR_0->cbf_luma[VAR_26 * VAR_9 + VAR_26];

            uint8_t curr_cbf_luma = VAR_0->cbf_luma[VAR_26 * VAR_9 + VAR_26];

            RefPicList *left_refPicList = ff_hevc_get_ref_list(VAR_0, VAR_0->ref,

                                                               VAR_1 - 1, VAR_2 + VAR_11);



            VAR_13 = boundary_strength(VAR_0, curr, curr_cbf_luma,

                                   left, left_cbf_luma, left_refPicList, 1);

            if (!VAR_0->sh.slice_loop_filter_across_slices_enabled_flag &&

                (VAR_5 & 1) &&

                (VAR_1 % (1 << VAR_0->sps->log2_ctb_size)) == 0)

                VAR_13 = 0;

            else if (!VAR_0->pps->loop_filter_across_tiles_enabled_flag &&

                     (VAR_5 & 2) &&

                     (VAR_1 % (1 << VAR_0->sps->log2_ctb_size)) == 0)

                VAR_13 = 0;

            if (VAR_1 == 0 || VAR_0->sh.disable_deblocking_filter_flag == 1)

                VAR_13 = 0;

            if (VAR_13)

                VAR_0->vertical_bs[(VAR_1 >> 3) + ((VAR_2 + VAR_11) >> 2) * VAR_0->bs_width] = VAR_13;

        }

    }



    

    if (VAR_3 > VAR_6 && !VAR_10)

        for (VAR_12 = 0; VAR_12 < (1 << VAR_3); VAR_12 += 4) {

            int VAR_26 = (VAR_2 + VAR_12) >> VAR_6;

            int VAR_26 = (VAR_2 + VAR_12) >> VAR_7;



            for (VAR_11 = 8; VAR_11 < (1 << VAR_3); VAR_11 += 8) {

                int VAR_26 = (VAR_1 + VAR_11 - 1) >> VAR_6;

                int VAR_26 = (VAR_1 + VAR_11)     >> VAR_6;

                int VAR_26 = (VAR_1 + VAR_11 - 1) >> VAR_7;

                int VAR_26 = (VAR_1 + VAR_11)     >> VAR_7;

                MvField *left = &tab_mvf[VAR_26 * VAR_8 + VAR_26];

                MvField *curr = &tab_mvf[VAR_26 * VAR_8 + VAR_26];

                uint8_t left_cbf_luma = VAR_0->cbf_luma[VAR_26 * VAR_9 + VAR_26];

                uint8_t curr_cbf_luma = VAR_0->cbf_luma[VAR_26 * VAR_9 + VAR_26];

                RefPicList *left_refPicList = ff_hevc_get_ref_list(VAR_0, VAR_0->ref,

                                                                   VAR_1 + VAR_11 - 1,

                                                                   VAR_2 + VAR_12);



                VAR_13 = boundary_strength(VAR_0, curr, curr_cbf_luma,

                                       left, left_cbf_luma, left_refPicList, 0);

                if (VAR_0->sh.disable_deblocking_filter_flag == 1)

                    VAR_13 = 0;

                if (VAR_13)

                    VAR_0->vertical_bs[((VAR_1 + VAR_11) >> 3) + ((VAR_2 + VAR_12) >> 2) * VAR_0->bs_width] = VAR_13;

            }

        }

}

void FUNC_0(HEVCContext *VAR_0, int VAR_1, int VAR_2,
int VAR_3,
int VAR_4,
int VAR_5)
{ MvField *tab_mvf     = VAR_0->ref->tab_mvf; int VAR_6 = VAR_0->sps->VAR_6; int VAR_7 = VAR_0->sps->log2_min_tb_size; int VAR_8     = VAR_0->sps->VAR_8; int VAR_9     = VAR_0->sps->min_tb_width; int VAR_10 = tab_mvf[(VAR_2 >> VAR_6) * VAR_8 +
(VAR_1 >> VAR_6)].VAR_10; int VAR_11, VAR_12, VAR_13; if (VAR_2 > 0 && (VAR_2 & 7) == 0) { int VAR_20 = (VAR_2 - 1) >> VAR_6; int VAR_20 =  VAR_2      >> VAR_6; int VAR_20 = (VAR_2 - 1) >> VAR_7; int VAR_20 =  VAR_2      >> VAR_7; for (VAR_11 = 0; VAR_11 < (1 << VAR_3); VAR_11 += 4) { int VAR_20 = (VAR_1 + VAR_11) >> VAR_6; int VAR_20 = (VAR_1 + VAR_11) >> VAR_7; MvField *top  = &tab_mvf[VAR_20 * VAR_8 + VAR_20]; MvField *curr = &tab_mvf[VAR_20 * VAR_8 + VAR_20]; uint8_t top_cbf_luma  = VAR_0->cbf_luma[VAR_20 * VAR_9 + VAR_20]; uint8_t curr_cbf_luma = VAR_0->cbf_luma[VAR_20 * VAR_9 + VAR_20]; RefPicList *top_refPicList = ff_hevc_get_ref_list(VAR_0, VAR_0->ref,
VAR_1 + VAR_11, VAR_2 - 1); VAR_13 = boundary_strength(VAR_0, curr, curr_cbf_luma,
top, top_cbf_luma, top_refPicList, 1); if (!VAR_0->sh.slice_loop_filter_across_slices_enabled_flag &&
(VAR_4 & 1) &&
(VAR_2 % (1 << VAR_0->sps->log2_ctb_size)) == 0)
VAR_13 = 0; else if (!VAR_0->pps->loop_filter_across_tiles_enabled_flag &&
(VAR_4 & 2) &&
(VAR_2 % (1 << VAR_0->sps->log2_ctb_size)) == 0)
VAR_13 = 0; if (VAR_2 == 0 || VAR_0->sh.disable_deblocking_filter_flag == 1)
VAR_13 = 0; if (VAR_13)
VAR_0->horizontal_bs[((VAR_1 + VAR_11) + VAR_2 * VAR_0->bs_width) >> 2] = VAR_13; } } if (VAR_3 > VAR_0->sps->VAR_6 && !VAR_10)
for (VAR_12 = 8; VAR_12 < (1 << VAR_3); VAR_12 += 8) { int VAR_20 = (VAR_2 + VAR_12 - 1) >> VAR_6; int VAR_20 = (VAR_2 + VAR_12)     >> VAR_6; int VAR_20 = (VAR_2 + VAR_12 - 1) >> VAR_7; int VAR_20 = (VAR_2 + VAR_12)     >> VAR_7; for (VAR_11 = 0; VAR_11 < (1 << VAR_3); VAR_11 += 4) { int VAR_20 = (VAR_1 + VAR_11) >> VAR_6; int VAR_20 = (VAR_1 + VAR_11) >> VAR_7; MvField *top  = &tab_mvf[VAR_20 * VAR_8 + VAR_20]; MvField *curr = &tab_mvf[VAR_20 * VAR_8 + VAR_20]; uint8_t top_cbf_luma  = VAR_0->cbf_luma[VAR_20 * VAR_9 + VAR_20]; uint8_t curr_cbf_luma = VAR_0->cbf_luma[VAR_20 * VAR_9 + VAR_20]; RefPicList *top_refPicList = ff_hevc_get_ref_list(VAR_0, VAR_0->ref,
VAR_1 + VAR_11,
VAR_2 + VAR_12 - 1); VAR_13 = boundary_strength(VAR_0, curr, curr_cbf_luma,
top, top_cbf_luma, top_refPicList, 0); if (VAR_0->sh.disable_deblocking_filter_flag == 1)
VAR_13 = 0; if (VAR_13)
VAR_0->horizontal_bs[((VAR_1 + VAR_11) + (VAR_2 + VAR_12) * VAR_0->bs_width) >> 2] = VAR_13; } } if (VAR_1 > 0 && (VAR_1 & 7) == 0) { int VAR_26 = (VAR_1 - 1) >> VAR_6; int VAR_26 =  VAR_1      >> VAR_6; int VAR_26 = (VAR_1 - 1) >> VAR_7; int VAR_26 =  VAR_1      >> VAR_7; for (VAR_11 = 0; VAR_11 < (1 << VAR_3); VAR_11 += 4) { int VAR_26      = (VAR_2 + VAR_11) >> VAR_6; int VAR_26      = (VAR_2 + VAR_11) >> VAR_7; MvField *left = &tab_mvf[VAR_26 * VAR_8 + VAR_26]; MvField *curr = &tab_mvf[VAR_26 * VAR_8 + VAR_26]; uint8_t left_cbf_luma = VAR_0->cbf_luma[VAR_26 * VAR_9 + VAR_26]; uint8_t curr_cbf_luma = VAR_0->cbf_luma[VAR_26 * VAR_9 + VAR_26]; RefPicList *left_refPicList = ff_hevc_get_ref_list(VAR_0, VAR_0->ref,
VAR_1 - 1, VAR_2 + VAR_11); VAR_13 = boundary_strength(VAR_0, curr, curr_cbf_luma,
left, left_cbf_luma, left_refPicList, 1); if (!VAR_0->sh.slice_loop_filter_across_slices_enabled_flag &&
(VAR_5 & 1) &&
(VAR_1 % (1 << VAR_0->sps->log2_ctb_size)) == 0)
VAR_13 = 0; else if (!VAR_0->pps->loop_filter_across_tiles_enabled_flag &&
(VAR_5 & 2) &&
(VAR_1 % (1 << VAR_0->sps->log2_ctb_size)) == 0)
VAR_13 = 0; if (VAR_1 == 0 || VAR_0->sh.disable_deblocking_filter_flag == 1)
VAR_13 = 0; if (VAR_13)
VAR_0->vertical_bs[(VAR_1 >> 3) + ((VAR_2 + VAR_11) >> 2) * VAR_0->bs_width] = VAR_13; } } if (VAR_3 > VAR_6 && !VAR_10)
for (VAR_12 = 0; VAR_12 < (1 << VAR_3); VAR_12 += 4) { int VAR_26 = (VAR_2 + VAR_12) >> VAR_6; int VAR_26 = (VAR_2 + VAR_12) >> VAR_7; for (VAR_11 = 8; VAR_11 < (1 << VAR_3); VAR_11 += 8) { int VAR_26 = (VAR_1 + VAR_11 - 1) >> VAR_6; int VAR_26 = (VAR_1 + VAR_11)     >> VAR_6; int VAR_26 = (VAR_1 + VAR_11 - 1) >> VAR_7; int VAR_26 = (VAR_1 + VAR_11)     >> VAR_7; MvField *left = &tab_mvf[VAR_26 * VAR_8 + VAR_26]; MvField *curr = &tab_mvf[VAR_26 * VAR_8 + VAR_26]; uint8_t left_cbf_luma = VAR_0->cbf_luma[VAR_26 * VAR_9 + VAR_26]; uint8_t curr_cbf_luma = VAR_0->cbf_luma[VAR_26 * VAR_9 + VAR_26]; RefPicList *left_refPicList = ff_hevc_get_ref_list(VAR_0, VAR_0->ref,
VAR_1 + VAR_11 - 1,
VAR_2 + VAR_12); VAR_13 = boundary_strength(VAR_0, curr, curr_cbf_luma,
left, left_cbf_luma, left_refPicList, 0); if (VAR_0->sh.disable_deblocking_filter_flag == 1)
VAR_13 = 0; if (VAR_13)
VAR_0->vertical_bs[((VAR_1 + VAR_11) >> 3) + ((VAR_2 + VAR_12) >> 2) * VAR_0->bs_width] = VAR_13; } } }