Go to the source code of this file.
Defines | |
#define | PREFETCH " # nop" |
#define | REAL_MOVNTQ(a, b) "movq " #a ", " #b " \n\t" |
#define | MOVNTQ2 "movq " |
#define | MOVNTQ(a, b) REAL_MOVNTQ(a,b) |
#define | YSCALEYUV2PACKEDX_UV |
#define | YSCALEYUV2PACKEDX_YA(offset, coeff, src1, src2, dst1, dst2) |
#define | YSCALEYUV2PACKEDX |
#define | YSCALEYUV2PACKEDX_END |
#define | YSCALEYUV2PACKEDX_ACCURATE_UV |
#define | YSCALEYUV2PACKEDX_ACCURATE_YA(offset) |
#define | YSCALEYUV2PACKEDX_ACCURATE |
#define | YSCALEYUV2RGBX |
#define | REAL_WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t) |
#define | WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t) REAL_WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t) |
#define | REAL_WRITERGB16(dst, dstw, index) |
#define | WRITERGB16(dst, dstw, index) REAL_WRITERGB16(dst, dstw, index) |
#define | REAL_WRITERGB15(dst, dstw, index) |
#define | WRITERGB15(dst, dstw, index) REAL_WRITERGB15(dst, dstw, index) |
#define | WRITEBGR24MMX(dst, dstw, index) |
#define | WRITEBGR24MMX2(dst, dstw, index) |
#define | WRITEBGR24(dst, dstw, index) WRITEBGR24MMX(dst, dstw, index) |
#define | REAL_WRITEYUY2(dst, dstw, index) |
#define | WRITEYUY2(dst, dstw, index) REAL_WRITEYUY2(dst, dstw, index) |
#define | REAL_YSCALEYUV2RGB_UV(index, c) |
#define | REAL_YSCALEYUV2RGB_YA(index, c, b1, b2) |
#define | REAL_YSCALEYUV2RGB_COEFF(c) |
#define | YSCALEYUV2RGB_YA(index, c, b1, b2) REAL_YSCALEYUV2RGB_YA(index, c, b1, b2) |
#define | YSCALEYUV2RGB(index, c) |
#define | REAL_YSCALEYUV2PACKED(index, c) |
#define | YSCALEYUV2PACKED(index, c) REAL_YSCALEYUV2PACKED(index, c) |
#define | REAL_YSCALEYUV2RGB1(index, c) |
#define | YSCALEYUV2RGB1(index, c) REAL_YSCALEYUV2RGB1(index, c) |
#define | REAL_YSCALEYUV2RGB1b(index, c) |
#define | YSCALEYUV2RGB1b(index, c) REAL_YSCALEYUV2RGB1b(index, c) |
#define | REAL_YSCALEYUV2RGB1_ALPHA(index) |
#define | YSCALEYUV2RGB1_ALPHA(index) REAL_YSCALEYUV2RGB1_ALPHA(index) |
#define | REAL_YSCALEYUV2PACKED1(index, c) |
#define | YSCALEYUV2PACKED1(index, c) REAL_YSCALEYUV2PACKED1(index, c) |
#define | REAL_YSCALEYUV2PACKED1b(index, c) |
#define | YSCALEYUV2PACKED1b(index, c) REAL_YSCALEYUV2PACKED1b(index, c) |
Functions | |
static av_always_inline void | dither_8to16 (const uint8_t *srcDither, int rot) |
static void | yuv2yuvX_TMPL (const int16_t *filter, int filterSize, const int16_t **src, uint8_t *dest, int dstW, const uint8_t *dither, int offset) |
static void | yuv2rgb32_X_ar_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2rgb32_X_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2rgb565_X_ar_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2rgb565_X_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2rgb555_X_ar_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2rgb555_X_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2bgr24_X_ar_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2bgr24_X_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2yuyv422_X_ar_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2yuyv422_X_TMPL (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) |
static void | yuv2rgb32_2_TMPL (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y) |
vertical bilinear scale YV12 to RGB | |
static void | yuv2bgr24_2_TMPL (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y) |
static void | yuv2rgb555_2_TMPL (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y) |
static void | yuv2rgb565_2_TMPL (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y) |
static void | yuv2yuyv422_2_TMPL (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y) |
static void | yuv2rgb32_1_TMPL (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *bguf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y) |
YV12 to RGB without scaling or interpolating. | |
static void | yuv2bgr24_1_TMPL (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *bguf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y) |
static void | yuv2rgb555_1_TMPL (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *bguf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y) |
static void | yuv2rgb565_1_TMPL (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *bguf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y) |
static void | yuv2yuyv422_1_TMPL (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *bguf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y) |
static void | yuy2ToY_TMPL (uint8_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2, int width, uint32_t *unused) |
static void | yuy2ToUV_TMPL (uint8_t *dstU, uint8_t *dstV, const uint8_t *unused1, const uint8_t *src1, const uint8_t *src2, int width, uint32_t *unused) |
static void | uyvyToY_TMPL (uint8_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2, int width, uint32_t *unused) |
static void | uyvyToUV_TMPL (uint8_t *dstU, uint8_t *dstV, const uint8_t *unused1, const uint8_t *src1, const uint8_t *src2, int width, uint32_t *unused) |
static av_always_inline void | nvXXtoUV_TMPL (uint8_t *dst1, uint8_t *dst2, const uint8_t *src, int width) |
static void | nv12ToUV_TMPL (uint8_t *dstU, uint8_t *dstV, const uint8_t *unused1, const uint8_t *src1, const uint8_t *src2, int width, uint32_t *unused) |
static void | nv21ToUV_TMPL (uint8_t *dstU, uint8_t *dstV, const uint8_t *unused1, const uint8_t *src1, const uint8_t *src2, int width, uint32_t *unused) |
static av_always_inline void | bgr24ToY_mmx_TMPL (int16_t *dst, const uint8_t *src, int width, enum PixelFormat srcFormat) |
static void | bgr24ToY_TMPL (int16_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2, int width, uint32_t *unused) |
static void | rgb24ToY_TMPL (int16_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2, int width, uint32_t *unused) |
static av_always_inline void | bgr24ToUV_mmx_TMPL (int16_t *dstU, int16_t *dstV, const uint8_t *src, int width, enum PixelFormat srcFormat) |
static void | bgr24ToUV_TMPL (int16_t *dstU, int16_t *dstV, const uint8_t *unused1, const uint8_t *src1, const uint8_t *src2, int width, uint32_t *unused) |
static void | rgb24ToUV_TMPL (int16_t *dstU, int16_t *dstV, const uint8_t *unused1, const uint8_t *src1, const uint8_t *src2, int width, uint32_t *unused) |
static av_cold void | sws_init_swScale_TMPL (SwsContext *c) |
#define MOVNTQ | ( | a, | |||
b | ) | REAL_MOVNTQ(a,b) |
Definition at line 39 of file swscale_template.c.
#define MOVNTQ2 "movq " |
#define PREFETCH " # nop" |
Definition at line 29 of file swscale_template.c.
#define REAL_MOVNTQ | ( | a, | |||
b | ) | "movq " #a ", " #b " \n\t" |
Definition at line 36 of file swscale_template.c.
Value:
"movq "#b", "#q2" \n\t" /* B */\ "movq "#r", "#t" \n\t" /* R */\ "punpcklbw "#g", "#b" \n\t" /* GBGBGBGB 0 */\ "punpcklbw "#a", "#r" \n\t" /* ARARARAR 0 */\ "punpckhbw "#g", "#q2" \n\t" /* GBGBGBGB 2 */\ "punpckhbw "#a", "#t" \n\t" /* ARARARAR 2 */\ "movq "#b", "#q0" \n\t" /* GBGBGBGB 0 */\ "movq "#q2", "#q3" \n\t" /* GBGBGBGB 2 */\ "punpcklwd "#r", "#q0" \n\t" /* ARGBARGB 0 */\ "punpckhwd "#r", "#b" \n\t" /* ARGBARGB 1 */\ "punpcklwd "#t", "#q2" \n\t" /* ARGBARGB 2 */\ "punpckhwd "#t", "#q3" \n\t" /* ARGBARGB 3 */\ \ MOVNTQ( q0, (dst, index, 4))\ MOVNTQ( b, 8(dst, index, 4))\ MOVNTQ( q2, 16(dst, index, 4))\ MOVNTQ( q3, 24(dst, index, 4))\ \ "add $8, "#index" \n\t"\ "cmp "#dstw", "#index" \n\t"\ " jb 1b \n\t"
Definition at line 304 of file swscale_template.c.
Value:
"pand "MANGLE(bF8)", %%mm2 \n\t" /* B */\ "pand "MANGLE(bF8)", %%mm4 \n\t" /* G */\ "pand "MANGLE(bF8)", %%mm5 \n\t" /* R */\ "psrlq $3, %%mm2 \n\t"\ "psrlq $1, %%mm5 \n\t"\ \ "movq %%mm2, %%mm1 \n\t"\ "movq %%mm4, %%mm3 \n\t"\ \ "punpcklbw %%mm7, %%mm3 \n\t"\ "punpcklbw %%mm5, %%mm2 \n\t"\ "punpckhbw %%mm7, %%mm4 \n\t"\ "punpckhbw %%mm5, %%mm1 \n\t"\ \ "psllq $2, %%mm3 \n\t"\ "psllq $2, %%mm4 \n\t"\ \ "por %%mm3, %%mm2 \n\t"\ "por %%mm4, %%mm1 \n\t"\ \ MOVNTQ(%%mm2, (dst, index, 2))\ MOVNTQ(%%mm1, 8(dst, index, 2))\ \ "add $8, "#index" \n\t"\ "cmp "#dstw", "#index" \n\t"\ " jb 1b \n\t"
Definition at line 466 of file swscale_template.c.
Value:
"pand "MANGLE(bF8)", %%mm2 \n\t" /* B */\ "pand "MANGLE(bFC)", %%mm4 \n\t" /* G */\ "pand "MANGLE(bF8)", %%mm5 \n\t" /* R */\ "psrlq $3, %%mm2 \n\t"\ \ "movq %%mm2, %%mm1 \n\t"\ "movq %%mm4, %%mm3 \n\t"\ \ "punpcklbw %%mm7, %%mm3 \n\t"\ "punpcklbw %%mm5, %%mm2 \n\t"\ "punpckhbw %%mm7, %%mm4 \n\t"\ "punpckhbw %%mm5, %%mm1 \n\t"\ \ "psllq $3, %%mm3 \n\t"\ "psllq $3, %%mm4 \n\t"\ \ "por %%mm3, %%mm2 \n\t"\ "por %%mm4, %%mm1 \n\t"\ \ MOVNTQ(%%mm2, (dst, index, 2))\ MOVNTQ(%%mm1, 8(dst, index, 2))\ \ "add $8, "#index" \n\t"\ "cmp "#dstw", "#index" \n\t"\ " jb 1b \n\t"
Definition at line 390 of file swscale_template.c.
Value:
"packuswb %%mm3, %%mm3 \n\t"\ "packuswb %%mm4, %%mm4 \n\t"\ "packuswb %%mm7, %%mm1 \n\t"\ "punpcklbw %%mm4, %%mm3 \n\t"\ "movq %%mm1, %%mm7 \n\t"\ "punpcklbw %%mm3, %%mm1 \n\t"\ "punpckhbw %%mm3, %%mm7 \n\t"\ \ MOVNTQ(%%mm1, (dst, index, 2))\ MOVNTQ(%%mm7, 8(dst, index, 2))\ \ "add $8, "#index" \n\t"\ "cmp "#dstw", "#index" \n\t"\ " jb 1b \n\t"
Definition at line 700 of file swscale_template.c.
Definition at line 986 of file swscale_template.c.
Value:
"xor "#index", "#index" \n\t"\ ".p2align 4 \n\t"\ "1: \n\t"\ "movq (%2, "#index"), %%mm3 \n\t" /* uvbuf0[eax]*/\ "add "UV_OFFx2"("#c"), "#index" \n\t" \ "movq (%2, "#index"), %%mm4 \n\t" /* uvbuf0[eax+2048]*/\ "sub "UV_OFFx2"("#c"), "#index" \n\t" \ "psraw $7, %%mm3 \n\t" \ "psraw $7, %%mm4 \n\t" \ "movq (%0, "#index", 2), %%mm1 \n\t" /*buf0[eax]*/\ "movq 8(%0, "#index", 2), %%mm7 \n\t" /*buf0[eax]*/\ "psraw $7, %%mm1 \n\t" \ "psraw $7, %%mm7 \n\t" \
Definition at line 1369 of file swscale_template.c.
Value:
"xor "#index", "#index" \n\t"\ ".p2align 4 \n\t"\ "1: \n\t"\ "movq (%2, "#index"), %%mm2 \n\t" /* uvbuf0[eax]*/\ "movq (%3, "#index"), %%mm3 \n\t" /* uvbuf1[eax]*/\ "add "UV_OFFx2"("#c"), "#index" \n\t" \ "movq (%2, "#index"), %%mm5 \n\t" /* uvbuf0[eax+2048]*/\ "movq (%3, "#index"), %%mm4 \n\t" /* uvbuf1[eax+2048]*/\ "sub "UV_OFFx2"("#c"), "#index" \n\t" \ "paddw %%mm2, %%mm3 \n\t" /* uvbuf0[eax] + uvbuf1[eax]*/\ "paddw %%mm5, %%mm4 \n\t" /* uvbuf0[eax+2048] + uvbuf1[eax+2048]*/\ "psrlw $8, %%mm3 \n\t" \ "psrlw $8, %%mm4 \n\t" \ "movq (%0, "#index", 2), %%mm1 \n\t" /*buf0[eax]*/\ "movq 8(%0, "#index", 2), %%mm7 \n\t" /*buf0[eax]*/\ "psraw $7, %%mm1 \n\t" \ "psraw $7, %%mm7 \n\t"
Definition at line 1386 of file swscale_template.c.
Definition at line 1049 of file swscale_template.c.
#define REAL_YSCALEYUV2RGB1_ALPHA | ( | index | ) |
Value:
"movq (%1, "#index", 2), %%mm7 \n\t" /* abuf0[index ] */\ "movq 8(%1, "#index", 2), %%mm1 \n\t" /* abuf0[index+4] */\ "psraw $7, %%mm7 \n\t" /* abuf0[index ] >>7 */\ "psraw $7, %%mm1 \n\t" /* abuf0[index+4] >>7 */\ "packuswb %%mm1, %%mm7 \n\t"
Definition at line 1156 of file swscale_template.c.
Definition at line 1101 of file swscale_template.c.
#define REAL_YSCALEYUV2RGB_COEFF | ( | c | ) |
Value:
"pmulhw "UB_COEFF"("#c"), %%mm2 \n\t"\ "pmulhw "VR_COEFF"("#c"), %%mm5 \n\t"\ "psubw "Y_OFFSET"("#c"), %%mm1 \n\t" /* 8(Y-16)*/\ "psubw "Y_OFFSET"("#c"), %%mm7 \n\t" /* 8(Y-16)*/\ "pmulhw "Y_COEFF"("#c"), %%mm1 \n\t"\ "pmulhw "Y_COEFF"("#c"), %%mm7 \n\t"\ /* mm1= Y1, mm2=ub, mm3=ug, mm4=vg mm5=vr, mm7=Y2 */\ "paddw %%mm3, %%mm4 \n\t"\ "movq %%mm2, %%mm0 \n\t"\ "movq %%mm5, %%mm6 \n\t"\ "movq %%mm4, %%mm3 \n\t"\ "punpcklwd %%mm2, %%mm2 \n\t"\ "punpcklwd %%mm5, %%mm5 \n\t"\ "punpcklwd %%mm4, %%mm4 \n\t"\ "paddw %%mm1, %%mm2 \n\t"\ "paddw %%mm1, %%mm5 \n\t"\ "paddw %%mm1, %%mm4 \n\t"\ "punpckhwd %%mm0, %%mm0 \n\t"\ "punpckhwd %%mm6, %%mm6 \n\t"\ "punpckhwd %%mm3, %%mm3 \n\t"\ "paddw %%mm7, %%mm0 \n\t"\ "paddw %%mm7, %%mm6 \n\t"\ "paddw %%mm7, %%mm3 \n\t"\ /* mm0=B1, mm2=B2, mm3=G2, mm4=G1, mm5=R1, mm6=R2 */\ "packuswb %%mm0, %%mm2 \n\t"\ "packuswb %%mm6, %%mm5 \n\t"\ "packuswb %%mm3, %%mm4 \n\t"\
Definition at line 802 of file swscale_template.c.
Value:
"xor "#index", "#index" \n\t"\ ".p2align 4 \n\t"\ "1: \n\t"\ "movq (%2, "#index"), %%mm2 \n\t" /* uvbuf0[eax]*/\ "movq (%3, "#index"), %%mm3 \n\t" /* uvbuf1[eax]*/\ "add "UV_OFFx2"("#c"), "#index" \n\t" \ "movq (%2, "#index"), %%mm5 \n\t" /* uvbuf0[eax+2048]*/\ "movq (%3, "#index"), %%mm4 \n\t" /* uvbuf1[eax+2048]*/\ "sub "UV_OFFx2"("#c"), "#index" \n\t" \ "psubw %%mm3, %%mm2 \n\t" /* uvbuf0[eax] - uvbuf1[eax]*/\ "psubw %%mm4, %%mm5 \n\t" /* uvbuf0[eax+2048] - uvbuf1[eax+2048]*/\ "movq "CHR_MMX_FILTER_OFFSET"+8("#c"), %%mm0 \n\t"\ "pmulhw %%mm0, %%mm2 \n\t" /* (uvbuf0[eax] - uvbuf1[eax])uvalpha1>>16*/\ "pmulhw %%mm0, %%mm5 \n\t" /* (uvbuf0[eax+2048] - uvbuf1[eax+2048])uvalpha1>>16*/\ "psraw $4, %%mm3 \n\t" /* uvbuf0[eax] - uvbuf1[eax] >>4*/\ "psraw $4, %%mm4 \n\t" /* uvbuf0[eax+2048] - uvbuf1[eax+2048] >>4*/\ "paddw %%mm2, %%mm3 \n\t" /* uvbuf0[eax]uvalpha1 - uvbuf1[eax](1-uvalpha1)*/\ "paddw %%mm5, %%mm4 \n\t" /* uvbuf0[eax+2048]uvalpha1 - uvbuf1[eax+2048](1-uvalpha1)*/\ "psubw "U_OFFSET"("#c"), %%mm3 \n\t" /* (U-128)8*/\ "psubw "V_OFFSET"("#c"), %%mm4 \n\t" /* (V-128)8*/\ "movq %%mm3, %%mm2 \n\t" /* (U-128)8*/\ "movq %%mm4, %%mm5 \n\t" /* (V-128)8*/\ "pmulhw "UG_COEFF"("#c"), %%mm3 \n\t"\ "pmulhw "VG_COEFF"("#c"), %%mm4 \n\t"\
Definition at line 759 of file swscale_template.c.
Value:
"movq ("#b1", "#index", 2), %%mm0 \n\t" /*buf0[eax]*/\ "movq ("#b2", "#index", 2), %%mm1 \n\t" /*buf1[eax]*/\ "movq 8("#b1", "#index", 2), %%mm6 \n\t" /*buf0[eax]*/\ "movq 8("#b2", "#index", 2), %%mm7 \n\t" /*buf1[eax]*/\ "psubw %%mm1, %%mm0 \n\t" /* buf0[eax] - buf1[eax]*/\ "psubw %%mm7, %%mm6 \n\t" /* buf0[eax] - buf1[eax]*/\ "pmulhw "LUM_MMX_FILTER_OFFSET"+8("#c"), %%mm0 \n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\ "pmulhw "LUM_MMX_FILTER_OFFSET"+8("#c"), %%mm6 \n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\ "psraw $4, %%mm1 \n\t" /* buf0[eax] - buf1[eax] >>4*/\ "psraw $4, %%mm7 \n\t" /* buf0[eax] - buf1[eax] >>4*/\ "paddw %%mm0, %%mm1 \n\t" /* buf0[eax]yalpha1 + buf1[eax](1-yalpha1) >>16*/\ "paddw %%mm6, %%mm7 \n\t"
Definition at line 787 of file swscale_template.c.
Definition at line 649 of file swscale_template.c.
Referenced by yuv2bgr24_1_TMPL(), yuv2bgr24_2_TMPL(), yuv2bgr24_X_ar_TMPL(), and yuv2bgr24_X_TMPL().
Definition at line 543 of file swscale_template.c.
Definition at line 596 of file swscale_template.c.
#define WRITEBGR32 | ( | dst, | |||
dstw, | |||||
index, | |||||
b, | |||||
g, | |||||
r, | |||||
a, | |||||
q0, | |||||
q2, | |||||
q3, | |||||
t | ) | REAL_WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t) |
Definition at line 326 of file swscale_template.c.
Referenced by yuv2rgb32_1_TMPL(), yuv2rgb32_2_TMPL(), yuv2rgb32_X_ar_TMPL(), and yuv2rgb32_X_TMPL().
Definition at line 493 of file swscale_template.c.
Referenced by yuv2rgb555_1_TMPL(), yuv2rgb555_2_TMPL(), yuv2rgb555_X_ar_TMPL(), and yuv2rgb555_X_TMPL().
Definition at line 416 of file swscale_template.c.
Referenced by yuv2rgb565_1_TMPL(), yuv2rgb565_2_TMPL(), yuv2rgb565_X_ar_TMPL(), and yuv2rgb565_X_TMPL().
Definition at line 715 of file swscale_template.c.
Referenced by yuv2yuyv422_1_TMPL(), yuv2yuyv422_2_TMPL(), yuv2yuyv422_X_ar_TMPL(), and yuv2yuyv422_X_TMPL().
#define YSCALEYUV2PACKEDX |
Value:
YSCALEYUV2PACKEDX_UV \ YSCALEYUV2PACKEDX_YA(LUM_MMX_FILTER_OFFSET,%%mm0,%%mm2,%%mm5,%%mm1,%%mm7) \
Definition at line 156 of file swscale_template.c.
Referenced by yuv2bgr24_X_TMPL(), yuv2rgb32_X_TMPL(), yuv2rgb555_X_TMPL(), yuv2rgb565_X_TMPL(), and yuv2yuyv422_X_TMPL().
#define YSCALEYUV2PACKEDX_ACCURATE |
Value:
Definition at line 264 of file swscale_template.c.
Referenced by yuv2bgr24_X_ar_TMPL(), yuv2rgb32_X_ar_TMPL(), yuv2rgb555_X_ar_TMPL(), yuv2rgb565_X_ar_TMPL(), and yuv2yuyv422_X_ar_TMPL().
#define YSCALEYUV2PACKEDX_ACCURATE_UV |
Definition at line 167 of file swscale_template.c.
#define YSCALEYUV2PACKEDX_ACCURATE_YA | ( | offset | ) |
#define YSCALEYUV2PACKEDX_END |
Value:
:: "r" (&c->redDither), \ "m" (dummy), "m" (dummy), "m" (dummy),\ "r" (dest), "m" (dstW_reg), "m"(uv_off) \ : "%"REG_a, "%"REG_d, "%"REG_S \ );
Definition at line 160 of file swscale_template.c.
Referenced by yuv2rgb32_X_ar_TMPL(), yuv2rgb32_X_TMPL(), yuv2rgb555_X_ar_TMPL(), yuv2rgb555_X_TMPL(), yuv2rgb565_X_ar_TMPL(), yuv2rgb565_X_TMPL(), yuv2yuyv422_X_ar_TMPL(), and yuv2yuyv422_X_TMPL().
#define YSCALEYUV2PACKEDX_UV |
Value:
__asm__ volatile(\ "xor %%"REG_a", %%"REG_a" \n\t"\ ".p2align 4 \n\t"\ "nop \n\t"\ "1: \n\t"\ "lea "CHR_MMX_FILTER_OFFSET"(%0), %%"REG_d" \n\t"\ "mov (%%"REG_d"), %%"REG_S" \n\t"\ "movq "VROUNDER_OFFSET"(%0), %%mm3 \n\t"\ "movq %%mm3, %%mm4 \n\t"\ ".p2align 4 \n\t"\ "2: \n\t"\ "movq 8(%%"REG_d"), %%mm0 \n\t" /* filterCoeff */\ "movq (%%"REG_S", %%"REG_a"), %%mm2 \n\t" /* UsrcData */\ "add %6, %%"REG_S" \n\t" \ "movq (%%"REG_S", %%"REG_a"), %%mm5 \n\t" /* VsrcData */\ "add $16, %%"REG_d" \n\t"\ "mov (%%"REG_d"), %%"REG_S" \n\t"\ "pmulhw %%mm0, %%mm2 \n\t"\ "pmulhw %%mm0, %%mm5 \n\t"\ "paddw %%mm2, %%mm3 \n\t"\ "paddw %%mm5, %%mm4 \n\t"\ "test %%"REG_S", %%"REG_S" \n\t"\ " jnz 2b \n\t"\
Definition at line 112 of file swscale_template.c.
Value:
"lea "offset"(%0), %%"REG_d" \n\t"\ "mov (%%"REG_d"), %%"REG_S" \n\t"\ "movq "VROUNDER_OFFSET"(%0), "#dst1" \n\t"\ "movq "#dst1", "#dst2" \n\t"\ ".p2align 4 \n\t"\ "2: \n\t"\ "movq 8(%%"REG_d"), "#coeff" \n\t" /* filterCoeff */\ "movq (%%"REG_S", %%"REG_a", 2), "#src1" \n\t" /* Y1srcData */\ "movq 8(%%"REG_S", %%"REG_a", 2), "#src2" \n\t" /* Y2srcData */\ "add $16, %%"REG_d" \n\t"\ "mov (%%"REG_d"), %%"REG_S" \n\t"\ "pmulhw "#coeff", "#src1" \n\t"\ "pmulhw "#coeff", "#src2" \n\t"\ "paddw "#src1", "#dst1" \n\t"\ "paddw "#src2", "#dst2" \n\t"\ "test %%"REG_S", %%"REG_S" \n\t"\ " jnz 2b \n\t"\
Definition at line 137 of file swscale_template.c.
Referenced by yuv2rgb32_X_TMPL().
Value:
REAL_YSCALEYUV2RGB_UV(index, c) \ REAL_YSCALEYUV2RGB_YA(index, c, %0, %1) \ REAL_YSCALEYUV2RGB_COEFF(c)
Definition at line 833 of file swscale_template.c.
Referenced by yuv2bgr24_2_TMPL(), yuv2rgb32_2_TMPL(), yuv2rgb555_2_TMPL(), and yuv2rgb565_2_TMPL().
Definition at line 1098 of file swscale_template.c.
Referenced by yuv2bgr24_1_TMPL(), yuv2rgb32_1_TMPL(), yuv2rgb555_1_TMPL(), and yuv2rgb565_1_TMPL().
Definition at line 1154 of file swscale_template.c.
Referenced by yuv2bgr24_1_TMPL(), yuv2rgb32_1_TMPL(), yuv2rgb555_1_TMPL(), and yuv2rgb565_1_TMPL().
#define YSCALEYUV2RGBX |
Definition at line 268 of file swscale_template.c.
Referenced by yuv2bgr24_X_ar_TMPL(), yuv2bgr24_X_TMPL(), yuv2rgb32_X_ar_TMPL(), yuv2rgb32_X_TMPL(), yuv2rgb555_X_ar_TMPL(), yuv2rgb555_X_TMPL(), yuv2rgb565_X_ar_TMPL(), and yuv2rgb565_X_TMPL().
static av_always_inline void bgr24ToUV_mmx_TMPL | ( | int16_t * | dstU, | |
int16_t * | dstV, | |||
const uint8_t * | src, | |||
int | width, | |||
enum PixelFormat | srcFormat | |||
) | [static] |
Definition at line 1647 of file swscale_template.c.
static void bgr24ToUV_TMPL | ( | int16_t * | dstU, | |
int16_t * | dstV, | |||
const uint8_t * | unused1, | |||
const uint8_t * | src1, | |||
const uint8_t * | src2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1705 of file swscale_template.c.
static av_always_inline void bgr24ToY_mmx_TMPL | ( | int16_t * | dst, | |
const uint8_t * | src, | |||
int | width, | |||
enum PixelFormat | srcFormat | |||
) | [static] |
Definition at line 1582 of file swscale_template.c.
static void bgr24ToY_TMPL | ( | int16_t * | dst, | |
const uint8_t * | src, | |||
const uint8_t * | unused1, | |||
const uint8_t * | unused2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1635 of file swscale_template.c.
static av_always_inline void dither_8to16 | ( | const uint8_t * | srcDither, | |
int | rot | |||
) | [static] |
static void nv12ToUV_TMPL | ( | uint8_t * | dstU, | |
uint8_t * | dstV, | |||
const uint8_t * | unused1, | |||
const uint8_t * | src1, | |||
const uint8_t * | src2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1567 of file swscale_template.c.
static void nv21ToUV_TMPL | ( | uint8_t * | dstU, | |
uint8_t * | dstV, | |||
const uint8_t * | unused1, | |||
const uint8_t * | src1, | |||
const uint8_t * | src2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1574 of file swscale_template.c.
static av_always_inline void nvXXtoUV_TMPL | ( | uint8_t * | dst1, | |
uint8_t * | dst2, | |||
const uint8_t * | src, | |||
int | width | |||
) | [static] |
Definition at line 1541 of file swscale_template.c.
static void rgb24ToUV_TMPL | ( | int16_t * | dstU, | |
int16_t * | dstV, | |||
const uint8_t * | unused1, | |||
const uint8_t * | src1, | |||
const uint8_t * | src2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1713 of file swscale_template.c.
static void rgb24ToY_TMPL | ( | int16_t * | dst, | |
const uint8_t * | src, | |||
const uint8_t * | unused1, | |||
const uint8_t * | unused2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1641 of file swscale_template.c.
static av_cold void sws_init_swScale_TMPL | ( | SwsContext * | c | ) | [static] |
Definition at line 1857 of file swscale_template.c.
static void uyvyToUV_TMPL | ( | uint8_t * | dstU, | |
uint8_t * | dstV, | |||
const uint8_t * | unused1, | |||
const uint8_t * | src1, | |||
const uint8_t * | src2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1513 of file swscale_template.c.
static void uyvyToY_TMPL | ( | uint8_t * | dst, | |
const uint8_t * | src, | |||
const uint8_t * | unused1, | |||
const uint8_t * | unused2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1494 of file swscale_template.c.
static void yuv2bgr24_1_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf0, | |||
const int16_t * | ubuf[2], | |||
const int16_t * | bguf[2], | |||
const int16_t * | abuf0, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
Definition at line 1234 of file swscale_template.c.
static void yuv2bgr24_2_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf[2], | |||
const int16_t * | ubuf[2], | |||
const int16_t * | vbuf[2], | |||
const int16_t * | abuf[2], | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | yalpha, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
Definition at line 905 of file swscale_template.c.
static void yuv2bgr24_X_ar_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 652 of file swscale_template.c.
static void yuv2bgr24_X_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 676 of file swscale_template.c.
static void yuv2rgb32_1_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf0, | |||
const int16_t * | ubuf[2], | |||
const int16_t * | bguf[2], | |||
const int16_t * | abuf0, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
static void yuv2rgb32_2_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf[2], | |||
const int16_t * | ubuf[2], | |||
const int16_t * | vbuf[2], | |||
const int16_t * | abuf[2], | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | yalpha, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
static void yuv2rgb32_X_ar_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 328 of file swscale_template.c.
static void yuv2rgb32_X_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 361 of file swscale_template.c.
static void yuv2rgb555_1_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf0, | |||
const int16_t * | ubuf[2], | |||
const int16_t * | bguf[2], | |||
const int16_t * | abuf0, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
Definition at line 1271 of file swscale_template.c.
static void yuv2rgb555_2_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf[2], | |||
const int16_t * | ubuf[2], | |||
const int16_t * | vbuf[2], | |||
const int16_t * | abuf[2], | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | yalpha, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
Definition at line 928 of file swscale_template.c.
static void yuv2rgb555_X_ar_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 495 of file swscale_template.c.
static void yuv2rgb555_X_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 519 of file swscale_template.c.
static void yuv2rgb565_1_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf0, | |||
const int16_t * | ubuf[2], | |||
const int16_t * | bguf[2], | |||
const int16_t * | abuf0, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
Definition at line 1320 of file swscale_template.c.
static void yuv2rgb565_2_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf[2], | |||
const int16_t * | ubuf[2], | |||
const int16_t * | vbuf[2], | |||
const int16_t * | abuf[2], | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | yalpha, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
Definition at line 957 of file swscale_template.c.
static void yuv2rgb565_X_ar_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 418 of file swscale_template.c.
static void yuv2rgb565_X_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 442 of file swscale_template.c.
static void yuv2yuvX_TMPL | ( | const int16_t * | filter, | |
int | filterSize, | |||
const int16_t ** | src, | |||
uint8_t * | dest, | |||
int | dstW, | |||
const uint8_t * | dither, | |||
int | offset | |||
) | [static] |
Definition at line 69 of file swscale_template.c.
static void yuv2yuyv422_1_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf0, | |||
const int16_t * | ubuf[2], | |||
const int16_t * | bguf[2], | |||
const int16_t * | abuf0, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
Definition at line 1406 of file swscale_template.c.
static void yuv2yuyv422_2_TMPL | ( | SwsContext * | c, | |
const int16_t * | buf[2], | |||
const int16_t * | ubuf[2], | |||
const int16_t * | vbuf[2], | |||
const int16_t * | abuf[2], | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | yalpha, | |||
int | uvalpha, | |||
int | y | |||
) | [static] |
Definition at line 1027 of file swscale_template.c.
static void yuv2yuyv422_X_ar_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 717 of file swscale_template.c.
static void yuv2yuyv422_X_TMPL | ( | SwsContext * | c, | |
const int16_t * | lumFilter, | |||
const int16_t ** | lumSrc, | |||
int | lumFilterSize, | |||
const int16_t * | chrFilter, | |||
const int16_t ** | chrUSrc, | |||
const int16_t ** | chrVSrc, | |||
int | chrFilterSize, | |||
const int16_t ** | alpSrc, | |||
uint8_t * | dest, | |||
int | dstW, | |||
int | dstY | |||
) | [static] |
Definition at line 738 of file swscale_template.c.
static void yuy2ToUV_TMPL | ( | uint8_t * | dstU, | |
uint8_t * | dstV, | |||
const uint8_t * | unused1, | |||
const uint8_t * | src1, | |||
const uint8_t * | src2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1464 of file swscale_template.c.
static void yuy2ToY_TMPL | ( | uint8_t * | dst, | |
const uint8_t * | src, | |||
const uint8_t * | unused1, | |||
const uint8_t * | unused2, | |||
int | width, | |||
uint32_t * | unused | |||
) | [static] |
Definition at line 1444 of file swscale_template.c.