int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,

                   enum PixelFormat pix_fmt, int padtop, int padbottom, int padleft, int padright,

            int *color)

{

    uint8_t *optr;

    int y_shift;

    int x_shift;

    int yheight;

    int i, y;



    if (pix_fmt < 0 || pix_fmt >= PIX_FMT_NB ||

        !is_yuv_planar(&pix_fmt_info[pix_fmt])) return -1;



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

        x_shift = i ? av_pix_fmt_descriptors[pix_fmt].log2_chroma_w : 0;

        y_shift = i ? av_pix_fmt_descriptors[pix_fmt].log2_chroma_h : 0;



        if (padtop || padleft) {

            memset(dst->data[i], color[i],

                dst->linesize[i] * (padtop >> y_shift) + (padleft >> x_shift));

        }



        if (padleft || padright) {

            optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +

                (dst->linesize[i] - (padright >> x_shift));

            yheight = (height - 1 - (padtop + padbottom)) >> y_shift;

            for (y = 0; y < yheight; y++) {

                memset(optr, color[i], (padleft + padright) >> x_shift);

                optr += dst->linesize[i];

            }

        }



        if (src) { /* first line */

            uint8_t *iptr = src->data[i];

            optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +

                    (padleft >> x_shift);

            memcpy(optr, iptr, (width - padleft - padright) >> x_shift);

            iptr += src->linesize[i];

            optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +

                (dst->linesize[i] - (padright >> x_shift));

            yheight = (height - 1 - (padtop + padbottom)) >> y_shift;

            for (y = 0; y < yheight; y++) {

                memset(optr, color[i], (padleft + padright) >> x_shift);

                memcpy(optr + ((padleft + padright) >> x_shift), iptr,

                       (width - padleft - padright) >> x_shift);

                iptr += src->linesize[i];

                optr += dst->linesize[i];

            }

        }



        if (padbottom || padright) {

            optr = dst->data[i] + dst->linesize[i] *

                ((height - padbottom) >> y_shift) - (padright >> x_shift);

            memset(optr, color[i],dst->linesize[i] *

                (padbottom >> y_shift) + (padright >> x_shift));

        }

    }

    return 0;

}

int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,

                   enum PixelFormat pix_fmt, int padtop, int padbottom, int padleft, int padright,

            int *color)

{

    uint8_t *optr;

    int y_shift;

    int x_shift;

    int yheight;

    int i, y;



    if (pix_fmt < 0 || pix_fmt >= PIX_FMT_NB ||

        !is_yuv_planar(&pix_fmt_info[pix_fmt])) return -1;



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

        x_shift = i ? av_pix_fmt_descriptors[pix_fmt].log2_chroma_w : 0;

        y_shift = i ? av_pix_fmt_descriptors[pix_fmt].log2_chroma_h : 0;



        if (padtop || padleft) {

            memset(dst->data[i], color[i],

                dst->linesize[i] * (padtop >> y_shift) + (padleft >> x_shift));

        }



        if (padleft || padright) {

            optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +

                (dst->linesize[i] - (padright >> x_shift));

            yheight = (height - 1 - (padtop + padbottom)) >> y_shift;

            for (y = 0; y < yheight; y++) {

                memset(optr, color[i], (padleft + padright) >> x_shift);

                optr += dst->linesize[i];

            }

        }



        if (src) { 

            uint8_t *iptr = src->data[i];

            optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +

                    (padleft >> x_shift);

            memcpy(optr, iptr, (width - padleft - padright) >> x_shift);

            iptr += src->linesize[i];

            optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +

                (dst->linesize[i] - (padright >> x_shift));

            yheight = (height - 1 - (padtop + padbottom)) >> y_shift;

            for (y = 0; y < yheight; y++) {

                memset(optr, color[i], (padleft + padright) >> x_shift);

                memcpy(optr + ((padleft + padright) >> x_shift), iptr,

                       (width - padleft - padright) >> x_shift);

                iptr += src->linesize[i];

                optr += dst->linesize[i];

            }

        }



        if (padbottom || padright) {

            optr = dst->data[i] + dst->linesize[i] *

                ((height - padbottom) >> y_shift) - (padright >> x_shift);

            memset(optr, color[i],dst->linesize[i] *

                (padbottom >> y_shift) + (padright >> x_shift));

        }

    }

    return 0;

}

int FUNC_0(AVPicture *VAR_0, const AVPicture *VAR_1, int VAR_2, int VAR_3,

                   enum PixelFormat VAR_4, int VAR_5, int VAR_6, int VAR_7, int VAR_8,

            int *VAR_9)

{

    uint8_t *optr;

    int VAR_10;

    int VAR_11;

    int VAR_12;

    int VAR_13, VAR_14;



    if (VAR_4 < 0 || VAR_4 >= PIX_FMT_NB ||

        !is_yuv_planar(&pix_fmt_info[VAR_4])) return -1;



    for (VAR_13 = 0; VAR_13 < 3; VAR_13++) {

        VAR_11 = VAR_13 ? av_pix_fmt_descriptors[VAR_4].log2_chroma_w : 0;

        VAR_10 = VAR_13 ? av_pix_fmt_descriptors[VAR_4].log2_chroma_h : 0;



        if (VAR_5 || VAR_7) {

            memset(VAR_0->data[VAR_13], VAR_9[VAR_13],

                VAR_0->linesize[VAR_13] * (VAR_5 >> VAR_10) + (VAR_7 >> VAR_11));

        }



        if (VAR_7 || VAR_8) {

            optr = VAR_0->data[VAR_13] + VAR_0->linesize[VAR_13] * (VAR_5 >> VAR_10) +

                (VAR_0->linesize[VAR_13] - (VAR_8 >> VAR_11));

            VAR_12 = (VAR_2 - 1 - (VAR_5 + VAR_6)) >> VAR_10;

            for (VAR_14 = 0; VAR_14 < VAR_12; VAR_14++) {

                memset(optr, VAR_9[VAR_13], (VAR_7 + VAR_8) >> VAR_11);

                optr += VAR_0->linesize[VAR_13];

            }

        }



        if (VAR_1) { 

            uint8_t *iptr = VAR_1->data[VAR_13];

            optr = VAR_0->data[VAR_13] + VAR_0->linesize[VAR_13] * (VAR_5 >> VAR_10) +

                    (VAR_7 >> VAR_11);

            memcpy(optr, iptr, (VAR_3 - VAR_7 - VAR_8) >> VAR_11);

            iptr += VAR_1->linesize[VAR_13];

            optr = VAR_0->data[VAR_13] + VAR_0->linesize[VAR_13] * (VAR_5 >> VAR_10) +

                (VAR_0->linesize[VAR_13] - (VAR_8 >> VAR_11));

            VAR_12 = (VAR_2 - 1 - (VAR_5 + VAR_6)) >> VAR_10;

            for (VAR_14 = 0; VAR_14 < VAR_12; VAR_14++) {

                memset(optr, VAR_9[VAR_13], (VAR_7 + VAR_8) >> VAR_11);

                memcpy(optr + ((VAR_7 + VAR_8) >> VAR_11), iptr,

                       (VAR_3 - VAR_7 - VAR_8) >> VAR_11);

                iptr += VAR_1->linesize[VAR_13];

                optr += VAR_0->linesize[VAR_13];

            }

        }



        if (VAR_6 || VAR_8) {

            optr = VAR_0->data[VAR_13] + VAR_0->linesize[VAR_13] *

                ((VAR_2 - VAR_6) >> VAR_10) - (VAR_8 >> VAR_11);

            memset(optr, VAR_9[VAR_13],VAR_0->linesize[VAR_13] *

                (VAR_6 >> VAR_10) + (VAR_8 >> VAR_11));

        }

    }

    return 0;

}

int FUNC_0(AVPicture *VAR_0, const AVPicture *VAR_1, int VAR_2, int VAR_3,
enum PixelFormat VAR_4, int VAR_5, int VAR_6, int VAR_7, int VAR_8,
int *VAR_9)
{ uint8_t *optr; int VAR_10; int VAR_11; int VAR_12; int VAR_13, VAR_14; if (VAR_4 < 0 || VAR_4 >= PIX_FMT_NB ||
!is_yuv_planar(&pix_fmt_info[VAR_4])) return -1; for (VAR_13 = 0; VAR_13 < 3; VAR_13++) { VAR_11 = VAR_13 ? av_pix_fmt_descriptors[VAR_4].log2_chroma_w : 0; VAR_10 = VAR_13 ? av_pix_fmt_descriptors[VAR_4].log2_chroma_h : 0; if (VAR_5 || VAR_7) { memset(VAR_0->data[VAR_13], VAR_9[VAR_13],
VAR_0->linesize[VAR_13] * (VAR_5 >> VAR_10) + (VAR_7 >> VAR_11)); } if (VAR_7 || VAR_8) { optr = VAR_0->data[VAR_13] + VAR_0->linesize[VAR_13] * (VAR_5 >> VAR_10) +
(VAR_0->linesize[VAR_13] - (VAR_8 >> VAR_11)); VAR_12 = (VAR_2 - 1 - (VAR_5 + VAR_6)) >> VAR_10; for (VAR_14 = 0; VAR_14 < VAR_12; VAR_14++) { memset(optr, VAR_9[VAR_13], (VAR_7 + VAR_8) >> VAR_11); optr += VAR_0->linesize[VAR_13]; } } if (VAR_1) { uint8_t *iptr = VAR_1->data[VAR_13]; optr = VAR_0->data[VAR_13] + VAR_0->linesize[VAR_13] * (VAR_5 >> VAR_10) +
(VAR_7 >> VAR_11); memcpy(optr, iptr, (VAR_3 - VAR_7 - VAR_8) >> VAR_11); iptr += VAR_1->linesize[VAR_13]; optr = VAR_0->data[VAR_13] + VAR_0->linesize[VAR_13] * (VAR_5 >> VAR_10) +
(VAR_0->linesize[VAR_13] - (VAR_8 >> VAR_11)); VAR_12 = (VAR_2 - 1 - (VAR_5 + VAR_6)) >> VAR_10; for (VAR_14 = 0; VAR_14 < VAR_12; VAR_14++) { memset(optr, VAR_9[VAR_13], (VAR_7 + VAR_8) >> VAR_11); memcpy(optr + ((VAR_7 + VAR_8) >> VAR_11), iptr,
(VAR_3 - VAR_7 - VAR_8) >> VAR_11); iptr += VAR_1->linesize[VAR_13]; optr += VAR_0->linesize[VAR_13]; } } if (VAR_6 || VAR_8) { optr = VAR_0->data[VAR_13] + VAR_0->linesize[VAR_13] *
((VAR_2 - VAR_6) >> VAR_10) - (VAR_8 >> VAR_11); memset(optr, VAR_9[VAR_13],VAR_0->linesize[VAR_13] *
(VAR_6 >> VAR_10) + (VAR_8 >> VAR_11)); } } return 0; }