yuv2rgba64_1_c_template(SwsContext *c, const int32_t *buf0,

                       const int32_t *ubuf[2], const int32_t *vbuf[2],

                       const int32_t *abuf0, uint16_t *dest, int dstW,

                       int uvalpha, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes)

{

    const int32_t *ubuf0 = ubuf[0], *vbuf0 = vbuf[0];

    int i;

    int A1 = 0xffff<<14, A2= 0xffff<<14;



    if (uvalpha < 2048) {

        for (i = 0; i < ((dstW + 1) >> 1); i++) {

            int Y1 = (buf0[i * 2]    ) >> 2;

            int Y2 = (buf0[i * 2 + 1]) >> 2;

            int U  = (ubuf0[i] + (-128 << 11)) >> 2;

            int V  = (vbuf0[i] + (-128 << 11)) >> 2;

            int R, G, B;



            Y1 -= c->yuv2rgb_y_offset;

            Y2 -= c->yuv2rgb_y_offset;

            Y1 *= c->yuv2rgb_y_coeff;

            Y2 *= c->yuv2rgb_y_coeff;

            Y1 += 1 << 13;

            Y2 += 1 << 13;



            if (hasAlpha) {

                A1 = abuf0[i * 2    ] << 11;

                A2 = abuf0[i * 2 + 1] << 11;



                A1 += 1 << 13;

                A2 += 1 << 13;

            }



            R = V * c->yuv2rgb_v2r_coeff;

            G = V * c->yuv2rgb_v2g_coeff + U * c->yuv2rgb_u2g_coeff;

            B =                            U * c->yuv2rgb_u2b_coeff;



            output_pixel(&dest[0], av_clip_uintp2(R_B + Y1, 30) >> 14);

            output_pixel(&dest[1], av_clip_uintp2(  G + Y1, 30) >> 14);

            output_pixel(&dest[2], av_clip_uintp2(B_R + Y1, 30) >> 14);

            if (eightbytes) {

                output_pixel(&dest[3], av_clip_uintp2(A1      , 30) >> 14);

                output_pixel(&dest[4], av_clip_uintp2(R_B + Y2, 30) >> 14);

                output_pixel(&dest[5], av_clip_uintp2(  G + Y2, 30) >> 14);

                output_pixel(&dest[6], av_clip_uintp2(B_R + Y2, 30) >> 14);

                output_pixel(&dest[7], av_clip_uintp2(A2      , 30) >> 14);

                dest += 8;

            } else {

                output_pixel(&dest[3], av_clip_uintp2(R_B + Y2, 30) >> 14);

                output_pixel(&dest[4], av_clip_uintp2(  G + Y2, 30) >> 14);

                output_pixel(&dest[5], av_clip_uintp2(B_R + Y2, 30) >> 14);

                dest += 6;

            }

        }

    } else {

        const int32_t *ubuf1 = ubuf[1], *vbuf1 = vbuf[1];

        int A1 = 0xffff<<14, A2 = 0xffff<<14;

        for (i = 0; i < ((dstW + 1) >> 1); i++) {

            int Y1 = (buf0[i * 2]    ) >> 2;

            int Y2 = (buf0[i * 2 + 1]) >> 2;

            int U  = (ubuf0[i] + ubuf1[i] + (-128 << 12)) >> 3;

            int V  = (vbuf0[i] + vbuf1[i] + (-128 << 12)) >> 3;

            int R, G, B;



            Y1 -= c->yuv2rgb_y_offset;

            Y2 -= c->yuv2rgb_y_offset;

            Y1 *= c->yuv2rgb_y_coeff;

            Y2 *= c->yuv2rgb_y_coeff;

            Y1 += 1 << 13;

            Y2 += 1 << 13;



            if (hasAlpha) {

                A1 = abuf0[i * 2    ] << 11;

                A2 = abuf0[i * 2 + 1] << 11;



                A1 += 1 << 13;

                A2 += 1 << 13;

            }



            R = V * c->yuv2rgb_v2r_coeff;

            G = V * c->yuv2rgb_v2g_coeff + U * c->yuv2rgb_u2g_coeff;

            B =                            U * c->yuv2rgb_u2b_coeff;



            output_pixel(&dest[0], av_clip_uintp2(R_B + Y1, 30) >> 14);

            output_pixel(&dest[1], av_clip_uintp2(  G + Y1, 30) >> 14);

            output_pixel(&dest[2], av_clip_uintp2(B_R + Y1, 30) >> 14);

            if (eightbytes) {

                output_pixel(&dest[3], av_clip_uintp2(A1      , 30) >> 14);

                output_pixel(&dest[4], av_clip_uintp2(R_B + Y2, 30) >> 14);

                output_pixel(&dest[5], av_clip_uintp2(  G + Y2, 30) >> 14);

                output_pixel(&dest[6], av_clip_uintp2(B_R + Y2, 30) >> 14);

                output_pixel(&dest[7], av_clip_uintp2(A2      , 30) >> 14);

                dest += 8;

            } else {

                output_pixel(&dest[3], av_clip_uintp2(R_B + Y2, 30) >> 14);

                output_pixel(&dest[4], av_clip_uintp2(  G + Y2, 30) >> 14);

                output_pixel(&dest[5], av_clip_uintp2(B_R + Y2, 30) >> 14);

                dest += 6;

            }

        }

    }

}

yuv2rgba64_1_c_template(SwsContext *c, const int32_t *buf0,

                       const int32_t *ubuf[2], const int32_t *vbuf[2],

                       const int32_t *abuf0, uint16_t *dest, int dstW,

                       int uvalpha, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes)

{

    const int32_t *ubuf0 = ubuf[0], *vbuf0 = vbuf[0];

    int i;

    int A1 = 0xffff<<14, A2= 0xffff<<14;



    if (uvalpha < 2048) {

        for (i = 0; i < ((dstW + 1) >> 1); i++) {

            int Y1 = (buf0[i * 2]    ) >> 2;

            int Y2 = (buf0[i * 2 + 1]) >> 2;

            int U  = (ubuf0[i] + (-128 << 11)) >> 2;

            int V  = (vbuf0[i] + (-128 << 11)) >> 2;

            int R, G, B;



            Y1 -= c->yuv2rgb_y_offset;

            Y2 -= c->yuv2rgb_y_offset;

            Y1 *= c->yuv2rgb_y_coeff;

            Y2 *= c->yuv2rgb_y_coeff;

            Y1 += 1 << 13;

            Y2 += 1 << 13;



            if (hasAlpha) {

                A1 = abuf0[i * 2    ] << 11;

                A2 = abuf0[i * 2 + 1] << 11;



                A1 += 1 << 13;

                A2 += 1 << 13;

            }



            R = V * c->yuv2rgb_v2r_coeff;

            G = V * c->yuv2rgb_v2g_coeff + U * c->yuv2rgb_u2g_coeff;

            B =                            U * c->yuv2rgb_u2b_coeff;



            output_pixel(&dest[0], av_clip_uintp2(R_B + Y1, 30) >> 14);

            output_pixel(&dest[1], av_clip_uintp2(  G + Y1, 30) >> 14);

            output_pixel(&dest[2], av_clip_uintp2(B_R + Y1, 30) >> 14);

            if (eightbytes) {

                output_pixel(&dest[3], av_clip_uintp2(A1      , 30) >> 14);

                output_pixel(&dest[4], av_clip_uintp2(R_B + Y2, 30) >> 14);

                output_pixel(&dest[5], av_clip_uintp2(  G + Y2, 30) >> 14);

                output_pixel(&dest[6], av_clip_uintp2(B_R + Y2, 30) >> 14);

                output_pixel(&dest[7], av_clip_uintp2(A2      , 30) >> 14);

                dest += 8;

            } else {

                output_pixel(&dest[3], av_clip_uintp2(R_B + Y2, 30) >> 14);

                output_pixel(&dest[4], av_clip_uintp2(  G + Y2, 30) >> 14);

                output_pixel(&dest[5], av_clip_uintp2(B_R + Y2, 30) >> 14);

                dest += 6;

            }

        }

    } else {

        const int32_t *ubuf1 = ubuf[1], *vbuf1 = vbuf[1];

        int A1 = 0xffff<<14, A2 = 0xffff<<14;

        for (i = 0; i < ((dstW + 1) >> 1); i++) {

            int Y1 = (buf0[i * 2]    ) >> 2;

            int Y2 = (buf0[i * 2 + 1]) >> 2;

            int U  = (ubuf0[i] + ubuf1[i] + (-128 << 12)) >> 3;

            int V  = (vbuf0[i] + vbuf1[i] + (-128 << 12)) >> 3;

            int R, G, B;



            Y1 -= c->yuv2rgb_y_offset;

            Y2 -= c->yuv2rgb_y_offset;

            Y1 *= c->yuv2rgb_y_coeff;

            Y2 *= c->yuv2rgb_y_coeff;

            Y1 += 1 << 13;

            Y2 += 1 << 13;



            if (hasAlpha) {

                A1 = abuf0[i * 2    ] << 11;

                A2 = abuf0[i * 2 + 1] << 11;



                A1 += 1 << 13;

                A2 += 1 << 13;

            }



            R = V * c->yuv2rgb_v2r_coeff;

            G = V * c->yuv2rgb_v2g_coeff + U * c->yuv2rgb_u2g_coeff;

            B =                            U * c->yuv2rgb_u2b_coeff;



            output_pixel(&dest[0], av_clip_uintp2(R_B + Y1, 30) >> 14);

            output_pixel(&dest[1], av_clip_uintp2(  G + Y1, 30) >> 14);

            output_pixel(&dest[2], av_clip_uintp2(B_R + Y1, 30) >> 14);

            if (eightbytes) {

                output_pixel(&dest[3], av_clip_uintp2(A1      , 30) >> 14);

                output_pixel(&dest[4], av_clip_uintp2(R_B + Y2, 30) >> 14);

                output_pixel(&dest[5], av_clip_uintp2(  G + Y2, 30) >> 14);

                output_pixel(&dest[6], av_clip_uintp2(B_R + Y2, 30) >> 14);

                output_pixel(&dest[7], av_clip_uintp2(A2      , 30) >> 14);

                dest += 8;

            } else {

                output_pixel(&dest[3], av_clip_uintp2(R_B + Y2, 30) >> 14);

                output_pixel(&dest[4], av_clip_uintp2(  G + Y2, 30) >> 14);

                output_pixel(&dest[5], av_clip_uintp2(B_R + Y2, 30) >> 14);

                dest += 6;

            }

        }

    }

}

FUNC_0(SwsContext *VAR_0, const int32_t *VAR_1,

                       const int32_t *VAR_2[2], const int32_t *VAR_3[2],

                       const int32_t *VAR_4, uint16_t *VAR_5, int VAR_6,

                       int VAR_7, int VAR_8, enum AVPixelFormat VAR_9, int VAR_10, int VAR_11)

{

    const int32_t *VAR_12 = VAR_2[0], *vbuf0 = VAR_3[0];

    int VAR_13;

    int VAR_24 = 0xffff<<14, VAR_24= 0xffff<<14;



    if (VAR_7 < 2048) {

        for (VAR_13 = 0; VAR_13 < ((VAR_6 + 1) >> 1); VAR_13++) {

            int VAR_24 = (VAR_1[VAR_13 * 2]    ) >> 2;

            int VAR_24 = (VAR_1[VAR_13 * 2 + 1]) >> 2;

            int VAR_24  = (VAR_12[VAR_13] + (-128 << 11)) >> 2;

            int VAR_24  = (vbuf0[VAR_13] + (-128 << 11)) >> 2;

            int VAR_24, VAR_24, VAR_24;



            VAR_24 -= VAR_0->yuv2rgb_y_offset;

            VAR_24 -= VAR_0->yuv2rgb_y_offset;

            VAR_24 *= VAR_0->yuv2rgb_y_coeff;

            VAR_24 *= VAR_0->yuv2rgb_y_coeff;

            VAR_24 += 1 << 13;

            VAR_24 += 1 << 13;



            if (VAR_10) {

                VAR_24 = VAR_4[VAR_13 * 2    ] << 11;

                VAR_24 = VAR_4[VAR_13 * 2 + 1] << 11;



                VAR_24 += 1 << 13;

                VAR_24 += 1 << 13;

            }



            VAR_24 = VAR_24 * VAR_0->yuv2rgb_v2r_coeff;

            VAR_24 = VAR_24 * VAR_0->yuv2rgb_v2g_coeff + VAR_24 * VAR_0->yuv2rgb_u2g_coeff;

            VAR_24 =                            VAR_24 * VAR_0->yuv2rgb_u2b_coeff;



            output_pixel(&VAR_5[0], av_clip_uintp2(R_B + VAR_24, 30) >> 14);

            output_pixel(&VAR_5[1], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14);

            output_pixel(&VAR_5[2], av_clip_uintp2(B_R + VAR_24, 30) >> 14);

            if (VAR_11) {

                output_pixel(&VAR_5[3], av_clip_uintp2(VAR_24      , 30) >> 14);

                output_pixel(&VAR_5[4], av_clip_uintp2(R_B + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[5], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[6], av_clip_uintp2(B_R + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[7], av_clip_uintp2(VAR_24      , 30) >> 14);

                VAR_5 += 8;

            } else {

                output_pixel(&VAR_5[3], av_clip_uintp2(R_B + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[4], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[5], av_clip_uintp2(B_R + VAR_24, 30) >> 14);

                VAR_5 += 6;

            }

        }

    } else {

        const int32_t *VAR_23 = VAR_2[1], *vbuf1 = VAR_3[1];

        int VAR_24 = 0xffff<<14, VAR_24 = 0xffff<<14;

        for (VAR_13 = 0; VAR_13 < ((VAR_6 + 1) >> 1); VAR_13++) {

            int VAR_24 = (VAR_1[VAR_13 * 2]    ) >> 2;

            int VAR_24 = (VAR_1[VAR_13 * 2 + 1]) >> 2;

            int VAR_24  = (VAR_12[VAR_13] + VAR_23[VAR_13] + (-128 << 12)) >> 3;

            int VAR_24  = (vbuf0[VAR_13] + vbuf1[VAR_13] + (-128 << 12)) >> 3;

            int VAR_24, VAR_24, VAR_24;



            VAR_24 -= VAR_0->yuv2rgb_y_offset;

            VAR_24 -= VAR_0->yuv2rgb_y_offset;

            VAR_24 *= VAR_0->yuv2rgb_y_coeff;

            VAR_24 *= VAR_0->yuv2rgb_y_coeff;

            VAR_24 += 1 << 13;

            VAR_24 += 1 << 13;



            if (VAR_10) {

                VAR_24 = VAR_4[VAR_13 * 2    ] << 11;

                VAR_24 = VAR_4[VAR_13 * 2 + 1] << 11;



                VAR_24 += 1 << 13;

                VAR_24 += 1 << 13;

            }



            VAR_24 = VAR_24 * VAR_0->yuv2rgb_v2r_coeff;

            VAR_24 = VAR_24 * VAR_0->yuv2rgb_v2g_coeff + VAR_24 * VAR_0->yuv2rgb_u2g_coeff;

            VAR_24 =                            VAR_24 * VAR_0->yuv2rgb_u2b_coeff;



            output_pixel(&VAR_5[0], av_clip_uintp2(R_B + VAR_24, 30) >> 14);

            output_pixel(&VAR_5[1], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14);

            output_pixel(&VAR_5[2], av_clip_uintp2(B_R + VAR_24, 30) >> 14);

            if (VAR_11) {

                output_pixel(&VAR_5[3], av_clip_uintp2(VAR_24      , 30) >> 14);

                output_pixel(&VAR_5[4], av_clip_uintp2(R_B + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[5], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[6], av_clip_uintp2(B_R + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[7], av_clip_uintp2(VAR_24      , 30) >> 14);

                VAR_5 += 8;

            } else {

                output_pixel(&VAR_5[3], av_clip_uintp2(R_B + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[4], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14);

                output_pixel(&VAR_5[5], av_clip_uintp2(B_R + VAR_24, 30) >> 14);

                VAR_5 += 6;

            }

        }

    }

}

FUNC_0(SwsContext *VAR_0, const int32_t *VAR_1,
const int32_t *VAR_2[2], const int32_t *VAR_3[2],
const int32_t *VAR_4, uint16_t *VAR_5, int VAR_6,
int VAR_7, int VAR_8, enum AVPixelFormat VAR_9, int VAR_10, int VAR_11)
{ const int32_t *VAR_12 = VAR_2[0], *vbuf0 = VAR_3[0]; int VAR_13; int VAR_24 = 0xffff<<14, VAR_24= 0xffff<<14; if (VAR_7 < 2048) { for (VAR_13 = 0; VAR_13 < ((VAR_6 + 1) >> 1); VAR_13++) { int VAR_24 = (VAR_1[VAR_13 * 2]    ) >> 2; int VAR_24 = (VAR_1[VAR_13 * 2 + 1]) >> 2; int VAR_24  = (VAR_12[VAR_13] + (-128 << 11)) >> 2; int VAR_24  = (vbuf0[VAR_13] + (-128 << 11)) >> 2; int VAR_24, VAR_24, VAR_24; VAR_24 -= VAR_0->yuv2rgb_y_offset; VAR_24 -= VAR_0->yuv2rgb_y_offset; VAR_24 *= VAR_0->yuv2rgb_y_coeff; VAR_24 *= VAR_0->yuv2rgb_y_coeff; VAR_24 += 1 << 13; VAR_24 += 1 << 13; if (VAR_10) { VAR_24 = VAR_4[VAR_13 * 2    ] << 11; VAR_24 = VAR_4[VAR_13 * 2 + 1] << 11; VAR_24 += 1 << 13; VAR_24 += 1 << 13; } VAR_24 = VAR_24 * VAR_0->yuv2rgb_v2r_coeff; VAR_24 = VAR_24 * VAR_0->yuv2rgb_v2g_coeff + VAR_24 * VAR_0->yuv2rgb_u2g_coeff; VAR_24 =                            VAR_24 * VAR_0->yuv2rgb_u2b_coeff; output_pixel(&VAR_5[0], av_clip_uintp2(R_B + VAR_24, 30) >> 14); output_pixel(&VAR_5[1], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14); output_pixel(&VAR_5[2], av_clip_uintp2(B_R + VAR_24, 30) >> 14); if (VAR_11) { output_pixel(&VAR_5[3], av_clip_uintp2(VAR_24      , 30) >> 14); output_pixel(&VAR_5[4], av_clip_uintp2(R_B + VAR_24, 30) >> 14); output_pixel(&VAR_5[5], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14); output_pixel(&VAR_5[6], av_clip_uintp2(B_R + VAR_24, 30) >> 14); output_pixel(&VAR_5[7], av_clip_uintp2(VAR_24      , 30) >> 14); VAR_5 += 8; } else { output_pixel(&VAR_5[3], av_clip_uintp2(R_B + VAR_24, 30) >> 14); output_pixel(&VAR_5[4], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14); output_pixel(&VAR_5[5], av_clip_uintp2(B_R + VAR_24, 30) >> 14); VAR_5 += 6; } } } else { const int32_t *VAR_23 = VAR_2[1], *vbuf1 = VAR_3[1]; int VAR_24 = 0xffff<<14, VAR_24 = 0xffff<<14; for (VAR_13 = 0; VAR_13 < ((VAR_6 + 1) >> 1); VAR_13++) { int VAR_24 = (VAR_1[VAR_13 * 2]    ) >> 2; int VAR_24 = (VAR_1[VAR_13 * 2 + 1]) >> 2; int VAR_24  = (VAR_12[VAR_13] + VAR_23[VAR_13] + (-128 << 12)) >> 3; int VAR_24  = (vbuf0[VAR_13] + vbuf1[VAR_13] + (-128 << 12)) >> 3; int VAR_24, VAR_24, VAR_24; VAR_24 -= VAR_0->yuv2rgb_y_offset; VAR_24 -= VAR_0->yuv2rgb_y_offset; VAR_24 *= VAR_0->yuv2rgb_y_coeff; VAR_24 *= VAR_0->yuv2rgb_y_coeff; VAR_24 += 1 << 13; VAR_24 += 1 << 13; if (VAR_10) { VAR_24 = VAR_4[VAR_13 * 2    ] << 11; VAR_24 = VAR_4[VAR_13 * 2 + 1] << 11; VAR_24 += 1 << 13; VAR_24 += 1 << 13; } VAR_24 = VAR_24 * VAR_0->yuv2rgb_v2r_coeff; VAR_24 = VAR_24 * VAR_0->yuv2rgb_v2g_coeff + VAR_24 * VAR_0->yuv2rgb_u2g_coeff; VAR_24 =                            VAR_24 * VAR_0->yuv2rgb_u2b_coeff; output_pixel(&VAR_5[0], av_clip_uintp2(R_B + VAR_24, 30) >> 14); output_pixel(&VAR_5[1], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14); output_pixel(&VAR_5[2], av_clip_uintp2(B_R + VAR_24, 30) >> 14); if (VAR_11) { output_pixel(&VAR_5[3], av_clip_uintp2(VAR_24      , 30) >> 14); output_pixel(&VAR_5[4], av_clip_uintp2(R_B + VAR_24, 30) >> 14); output_pixel(&VAR_5[5], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14); output_pixel(&VAR_5[6], av_clip_uintp2(B_R + VAR_24, 30) >> 14); output_pixel(&VAR_5[7], av_clip_uintp2(VAR_24      , 30) >> 14); VAR_5 += 8; } else { output_pixel(&VAR_5[3], av_clip_uintp2(R_B + VAR_24, 30) >> 14); output_pixel(&VAR_5[4], av_clip_uintp2(  VAR_24 + VAR_24, 30) >> 14); output_pixel(&VAR_5[5], av_clip_uintp2(B_R + VAR_24, 30) >> 14); VAR_5 += 6; } } } }