static inline void yuv2yuvXinC(int16_t *lumFilter, int16_t **lumSrc, int lumFilterSize,

                               int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize,

                               uint8_t *dest, uint8_t *uDest, uint8_t *vDest, int dstW, int chrDstW)

{

    

    int i;

    for (i=0; i<dstW; i++)

    {

        int val=1<<18;

        int j;

        for (j=0; j<lumFilterSize; j++)

            val += lumSrc[j][i] * lumFilter[j];



        dest[i]= av_clip_uint8(val>>19);

    }



    if (uDest)

        for (i=0; i<chrDstW; i++)

        {

            int u=1<<18;

            int v=1<<18;

            int j;

            for (j=0; j<chrFilterSize; j++)

            {

                u += chrSrc[j][i] * chrFilter[j];

                v += chrSrc[j][i + 2048] * chrFilter[j];

            }



            uDest[i]= av_clip_uint8(u>>19);

            vDest[i]= av_clip_uint8(v>>19);

        }

}
