rendered paste body :static av_always_inline void yuv2yuvX16inC_template(const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize,
: const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize,
: const int16_t **alpSrc, uint16_t *dest, uint16_t *uDest, uint16_t *vDest, uint16_t *aDest,
: int dstW, int chrDstW, int big_endian, int output_bits)
:{
: //FIXME Optimize (just quickly written not optimized..)
: int i;
: int shift = 11 + 16 - output_bits;
:
:#define output_pixel(pos, val) \
: if (big_endian) { \
: if (output_bits == 16) { \
: AV_WB16(pos, av_clip_uint16(val >> shift)); \
: } else { \
: AV_WB16(pos, av_clip_uintp2(val >> shift, output_bits)); \
: } \
: } else { \
: if (output_bits == 16) { \
: AV_WL16(pos, av_clip_uint16(val >> shift)); \
: } else { \
: AV_WL16(pos, av_clip_uintp2(val >> shift, output_bits)); \
: } \
: }
14967 0.1457 : for (i = 0; i < dstW; i++) {
: int val = 1 << (26-output_bits);
: int j;
:
104697 1.0193 : for (j = 0; j < lumFilterSize; j++)
105317 1.0253 : val += lumSrc[j][i] * lumFilter[j];
:
62673 0.6102 : output_pixel(&dest[i], val);
: }
:
127 0.0012 : if (uDest) {
16480 0.1604 : for (i = 0; i < chrDstW; i++) {
: int u = 1 << (26-output_bits);
: int v = 1 << (26-output_bits);
: int j;
:
158872 1.5467 : for (j = 0; j < chrFilterSize; j++) {
648089 6.3096 : u += chrSrc[j][i ] * chrFilter[j];
558747 5.4398 : v += chrSrc[j][i + VOFW] * chrFilter[j];
: }
:
20574 0.2003 : output_pixel(&uDest[i], u);
19520 0.1900 : output_pixel(&vDest[i], v);
: }
: }
:
283 0.0028 : if (CONFIG_SWSCALE_ALPHA && aDest) {
: for (i = 0; i < dstW; i++) {
: int val = 1 << (26-output_bits);
: int j;
:
: for (j = 0; j < lumFilterSize; j++)
: val += alpSrc[j][i] * lumFilter[j];
:
: output_pixel(&aDest[i], val);
: }
: }
:}