static int draw_slice(AVFilterLink *link, int y, int h, int slice_dir)

{

    SliceContext *slice = link->dst->priv;

    int y2, ret = 0;



    if (slice_dir == 1) {

        for (y2 = y; y2 + slice->h <= y + h; y2 += slice->h) {

            ret = ff_draw_slice(link->dst->outputs[0], y2, slice->h, slice_dir);

            if (ret < 0)

                return ret;

        }



        if (y2 < y + h)

            return ff_draw_slice(link->dst->outputs[0], y2, y + h - y2, slice_dir);

    } else if (slice_dir == -1) {

        for (y2 = y + h; y2 - slice->h >= y; y2 -= slice->h) {

            ret = ff_draw_slice(link->dst->outputs[0], y2 - slice->h, slice->h, slice_dir);

            if (ret < 0)

                return ret;

        }



        if (y2 > y)

            return ff_draw_slice(link->dst->outputs[0], y, y2 - y, slice_dir);

    }

    return 0;

}

static int draw_slice(AVFilterLink *link, int y, int h, int slice_dir)

{

    SliceContext *slice = link->dst->priv;

    int y2, ret = 0;



    if (slice_dir == 1) {

        for (y2 = y; y2 + slice->h <= y + h; y2 += slice->h) {

            ret = ff_draw_slice(link->dst->outputs[0], y2, slice->h, slice_dir);

            if (ret < 0)

                return ret;

        }



        if (y2 < y + h)

            return ff_draw_slice(link->dst->outputs[0], y2, y + h - y2, slice_dir);

    } else if (slice_dir == -1) {

        for (y2 = y + h; y2 - slice->h >= y; y2 -= slice->h) {

            ret = ff_draw_slice(link->dst->outputs[0], y2 - slice->h, slice->h, slice_dir);

            if (ret < 0)

                return ret;

        }



        if (y2 > y)

            return ff_draw_slice(link->dst->outputs[0], y, y2 - y, slice_dir);

    }

    return 0;

}

    return 0;     SliceContext *slice = link->dst->priv;     return 0;     SliceContext *slice = link->dst->priv; static int draw_slice(AVFilterLink *link, int y, int h, int slice_dir)     SliceContext *slice = link->dst->priv;     int y2, ret = 0;     if (slice_dir == 1) {         for (y2 = y; y2 + slice->h <= y + h; y2 += slice->h) {             ret = ff_draw_slice(link->dst->outputs[0], y2, slice->h, slice_dir);             if (ret < 0)                 return ret;         if (y2 < y + h)             return ff_draw_slice(link->dst->outputs[0], y2, y + h - y2, slice_dir);     } else if (slice_dir == -1) {         for (y2 = y + h; y2 - slice->h >= y; y2 -= slice->h) {             ret = ff_draw_slice(link->dst->outputs[0], y2 - slice->h, slice->h, slice_dir);             if (ret < 0)                 return ret;         if (y2 > y)             return ff_draw_slice(link->dst->outputs[0], y, y2 - y, slice_dir);     return 0;
static int FUNC_0(AVFilterLink *VAR_0, int VAR_1, int VAR_2, int VAR_3)

{

    SliceContext *slice = VAR_0->dst->priv;

    int VAR_4, VAR_5 = 0;



    if (VAR_3 == 1) {

        for (VAR_4 = VAR_1; VAR_4 + slice->VAR_2 <= VAR_1 + VAR_2; VAR_4 += slice->VAR_2) {

            VAR_5 = ff_draw_slice(VAR_0->dst->outputs[0], VAR_4, slice->VAR_2, VAR_3);

            if (VAR_5 < 0)

                return VAR_5;

        }



        if (VAR_4 < VAR_1 + VAR_2)

            return ff_draw_slice(VAR_0->dst->outputs[0], VAR_4, VAR_1 + VAR_2 - VAR_4, VAR_3);

    } else if (VAR_3 == -1) {

        for (VAR_4 = VAR_1 + VAR_2; VAR_4 - slice->VAR_2 >= VAR_1; VAR_4 -= slice->VAR_2) {

            VAR_5 = ff_draw_slice(VAR_0->dst->outputs[0], VAR_4 - slice->VAR_2, slice->VAR_2, VAR_3);

            if (VAR_5 < 0)

                return VAR_5;

        }



        if (VAR_4 > VAR_1)

            return ff_draw_slice(VAR_0->dst->outputs[0], VAR_1, VAR_4 - VAR_1, VAR_3);

    }

    return 0;

}

static int FUNC_0(AVFilterLink *VAR_0, int VAR_1, int VAR_2, int VAR_3)
{ SliceContext *slice = VAR_0->dst->priv; int VAR_4, VAR_5 = 0; if (VAR_3 == 1) { for (VAR_4 = VAR_1; VAR_4 + slice->VAR_2 <= VAR_1 + VAR_2; VAR_4 += slice->VAR_2) { VAR_5 = ff_draw_slice(VAR_0->dst->outputs[0], VAR_4, slice->VAR_2, VAR_3); if (VAR_5 < 0)
return VAR_5; } if (VAR_4 < VAR_1 + VAR_2)
return ff_draw_slice(VAR_0->dst->outputs[0], VAR_4, VAR_1 + VAR_2 - VAR_4, VAR_3); } else if (VAR_3 == -1) { for (VAR_4 = VAR_1 + VAR_2; VAR_4 - slice->VAR_2 >= VAR_1; VAR_4 -= slice->VAR_2) { VAR_5 = ff_draw_slice(VAR_0->dst->outputs[0], VAR_4 - slice->VAR_2, slice->VAR_2, VAR_3); if (VAR_5 < 0)
return VAR_5; } if (VAR_4 > VAR_1)
return ff_draw_slice(VAR_0->dst->outputs[0], VAR_1, VAR_4 - VAR_1, VAR_3); } return 0; }