libswscale/swscale_template.c File Reference

Go to the source code of this file.

Defines

#define EMMS   "femms"
#define PREFETCH   "prefetch"
#define PREFETCHW   "prefetchw"
#define SFENCE   " # nop"
#define PAVGB(a, b)   "pavgusb " #a ", " #b " \n\t"
#define REAL_MOVNTQ(a, b)   "movq " #a ", " #b " \n\t"
#define MOVNTQ(a, b)   REAL_MOVNTQ(a,b)
#define YSCALEYUV2YV12X(x, offset, dest, width)
#define YSCALEYUV2YV12X_ACCURATE(x, offset, dest, width)
#define YSCALEYUV2YV121
#define YSCALEYUV2YV121_ACCURATE
#define YSCALEYUV2PACKEDX_UV
#define YSCALEYUV2PACKEDX_YA(offset)
#define YSCALEYUV2PACKEDX
#define YSCALEYUV2PACKEDX_END
#define YSCALEYUV2PACKEDX_ACCURATE_UV
#define YSCALEYUV2PACKEDX_ACCURATE_YA(offset)
#define YSCALEYUV2PACKEDX_ACCURATE
#define YSCALEYUV2RGBX
#define REAL_YSCALEYUV2PACKED(index, c)
#define YSCALEYUV2PACKED(index, c)   REAL_YSCALEYUV2PACKED(index, c)
#define REAL_YSCALEYUV2RGB_UV(index, c)
#define REAL_YSCALEYUV2RGB_YA(index, c)
#define REAL_YSCALEYUV2RGB_COEFF(c)
#define YSCALEYUV2RGB_YA(index, c)   REAL_YSCALEYUV2RGB_YA(index, c)
#define YSCALEYUV2RGB(index, c)
#define REAL_YSCALEYUV2PACKED1(index, c)
#define YSCALEYUV2PACKED1(index, c)   REAL_YSCALEYUV2PACKED1(index, c)
#define REAL_YSCALEYUV2RGB1(index, c)
#define YSCALEYUV2RGB1(index, c)   REAL_YSCALEYUV2RGB1(index, c)
#define REAL_YSCALEYUV2PACKED1b(index, c)
#define YSCALEYUV2PACKED1b(index, c)   REAL_YSCALEYUV2PACKED1b(index, c)
#define REAL_YSCALEYUV2RGB1b(index, c)
#define YSCALEYUV2RGB1b(index, c)   REAL_YSCALEYUV2RGB1b(index, c)
#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 WRITEBGR24OLD(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 BGR2Y(type, name, shr, shg, shb, maskr, maskg, maskb, RY, GY, BY, S)
#define BGR2UV(type, name, shr, shg, shb, maska, maskr, maskg, maskb, RU, GU, BU, RV, GV, BV, S)

Functions

static void yuv2yuvX_TMPL (SwsContext *c, 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, long dstW, long chrDstW)
static void yuv2nv12X_TMPL (SwsContext *c, int16_t *lumFilter, int16_t **lumSrc, int lumFilterSize, int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize, uint8_t *dest, uint8_t *uDest, int dstW, int chrDstW, int dstFormat)
static void yuv2yuv1_TMPL (SwsContext *c, int16_t *lumSrc, int16_t *chrSrc, uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)
static void yuv2packedX_TMPL (SwsContext *c, int16_t *lumFilter, int16_t **lumSrc, int lumFilterSize, int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize, uint8_t *dest, long dstW, long dstY)
 vertical scale YV12 to RGB
static void yuv2packed2_TMPL (SwsContext *c, uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, uint16_t *uvbuf1, uint8_t *dest, int dstW, int yalpha, int uvalpha, int y)
 vertical bilinear scale YV12 to RGB
static void yuv2packed1_TMPL (SwsContext *c, uint16_t *buf0, uint16_t *uvbuf0, uint16_t *uvbuf1, uint8_t *dest, int dstW, int uvalpha, int dstFormat, int flags, int y)
 YV12 to RGB without scaling or interpolating.
static void yuy2ToY_TMPL (uint8_t *dst, uint8_t *src, long width, uint32_t *unused)
static void yuy2ToUV_TMPL (uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused)
static void uyvyToY_TMPL (uint8_t *dst, uint8_t *src, long width, uint32_t *unused)
static void uyvyToUV_TMPL (uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused)
static void bgr24ToY_mmx_TMPL (uint8_t *dst, uint8_t *src, long width, int srcFormat)
static void bgr24ToUV_mmx_TMPL (uint8_t *dstU, uint8_t *dstV, uint8_t *src, long width, int srcFormat)
static void bgr24ToY_TMPL (uint8_t *dst, uint8_t *src, long width, uint32_t *unused)
static void bgr24ToUV_TMPL (uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused)
static void bgr24ToUV_half_TMPL (uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused)
static void rgb24ToY_TMPL (uint8_t *dst, uint8_t *src, long width, uint32_t *unused)
static void rgb24ToUV_TMPL (uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused)
static void rgb24ToUV_half_TMPL (uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused)
static void palToY_TMPL (uint8_t *dst, uint8_t *src, long width, uint32_t *pal)
static void palToUV_TMPL (uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *pal)
static void monowhite2Y_TMPL (uint8_t *dst, uint8_t *src, long width, uint32_t *unused)
static void monoblack2Y_TMPL (uint8_t *dst, uint8_t *src, long width, uint32_t *unused)
static void hScale_TMPL (int16_t *dst, int dstW, uint8_t *src, int srcW, int xInc, int16_t *filter, int16_t *filterPos, long filterSize)
static void hyscale_TMPL (SwsContext *c, uint16_t *dst, long dstWidth, uint8_t *src, int srcW, int xInc, int flags, int canMMX2BeUsed, int16_t *hLumFilter, int16_t *hLumFilterPos, int hLumFilterSize, void *funnyYCode, int srcFormat, uint8_t *formatConvBuffer, int16_t *mmx2Filter, int32_t *mmx2FilterPos, uint32_t *pal)
static void hcscale_TMPL (SwsContext *c, uint16_t *dst, long dstWidth, uint8_t *src1, uint8_t *src2, int srcW, int xInc, int flags, int canMMX2BeUsed, int16_t *hChrFilter, int16_t *hChrFilterPos, int hChrFilterSize, void *funnyUVCode, int srcFormat, uint8_t *formatConvBuffer, int16_t *mmx2Filter, int32_t *mmx2FilterPos, uint32_t *pal)
static int swScale_TMPL (SwsContext *c, uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[])


Define Documentation

#define BGR2UV ( type,
name,
shr,
shg,
shb,
maska,
maskr,
maskg,
maskb,
RU,
GU,
BU,
RV,
GV,
BV,
S   ) 

Definition at line 1648 of file swscale_template.c.

#define BGR2Y ( type,
name,
shr,
shg,
shb,
maskr,
maskg,
maskb,
RY,
GY,
BY,
S   ) 

Value:

static inline void RENAME(name)(uint8_t *dst, uint8_t *src, long width, uint32_t *unused)\
{\
    int i;\
    for (i=0; i<width; i++)\
    {\
        int b= (((type*)src)[i]>>shb)&maskb;\
        int g= (((type*)src)[i]>>shg)&maskg;\
        int r= (((type*)src)[i]>>shr)&maskr;\
\
        dst[i]= (((RY)*r + (GY)*g + (BY)*b + (33<<((S)-1)))>>(S));\
    }\
}

Definition at line 1627 of file swscale_template.c.

#define EMMS   "femms"

Definition at line 34 of file swscale_template.c.

#define MOVNTQ ( a,
 )     REAL_MOVNTQ(a,b)

Definition at line 67 of file swscale_template.c.

#define PAVGB ( a,
 )     "pavgusb " #a ", " #b " \n\t"

Definition at line 59 of file swscale_template.c.

#define PREFETCH   "prefetch"

Definition at line 40 of file swscale_template.c.

#define PREFETCHW   "prefetchw"

Definition at line 41 of file swscale_template.c.

#define REAL_MOVNTQ ( a,
 )     "movq " #a ", " #b " \n\t"

Definition at line 65 of file swscale_template.c.

#define REAL_WRITEBGR32 ( dst,
dstw,
index,
b,
g,
r,
a,
q0,
q2,
q3,
t   ) 

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 650 of file swscale_template.c.

#define REAL_WRITERGB15 ( dst,
dstw,
index   ) 

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 702 of file swscale_template.c.

#define REAL_WRITERGB16 ( dst,
dstw,
index   ) 

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 674 of file swscale_template.c.

#define REAL_WRITEYUY2 ( dst,
dstw,
index   ) 

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 896 of file swscale_template.c.

#define REAL_YSCALEYUV2PACKED ( index,
 ) 

Definition at line 398 of file swscale_template.c.

#define REAL_YSCALEYUV2PACKED1 ( index,
 ) 

Value:

"xor            "#index", "#index"  \n\t"\
    ASMALIGN(4)\
    "1:                                 \n\t"\
    "movq     (%2, "#index"), %%mm3     \n\t" /* uvbuf0[eax]*/\
    "movq "AV_STRINGIFY(VOF)"(%2, "#index"), %%mm4     \n\t" /* uvbuf0[eax+2048]*/\
    "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 514 of file swscale_template.c.

#define REAL_YSCALEYUV2PACKED1b ( index,
 ) 

Value:

"xor "#index", "#index"             \n\t"\
    ASMALIGN(4)\
    "1:                                 \n\t"\
    "movq     (%2, "#index"), %%mm2     \n\t" /* uvbuf0[eax]*/\
    "movq     (%3, "#index"), %%mm3     \n\t" /* uvbuf1[eax]*/\
    "movq "AV_STRINGIFY(VOF)"(%2, "#index"), %%mm5     \n\t" /* uvbuf0[eax+2048]*/\
    "movq "AV_STRINGIFY(VOF)"(%3, "#index"), %%mm4     \n\t" /* uvbuf1[eax+2048]*/\
    "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 578 of file swscale_template.c.

#define REAL_YSCALEYUV2RGB1 ( index,
 ) 

Definition at line 529 of file swscale_template.c.

#define REAL_YSCALEYUV2RGB1b ( index,
 ) 

Definition at line 597 of file swscale_template.c.

#define REAL_YSCALEYUV2RGB_COEFF (  ) 

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 478 of file swscale_template.c.

#define REAL_YSCALEYUV2RGB_UV ( index,
 ) 

Value:

"xor            "#index", "#index"  \n\t"\
    ASMALIGN(4)\
    "1:                                 \n\t"\
    "movq     (%2, "#index"), %%mm2     \n\t" /* uvbuf0[eax]*/\
    "movq     (%3, "#index"), %%mm3     \n\t" /* uvbuf1[eax]*/\
    "movq "AV_STRINGIFY(VOF)"(%2, "#index"), %%mm5     \n\t" /* uvbuf0[eax+2048]*/\
    "movq "AV_STRINGIFY(VOF)"(%3, "#index"), %%mm4     \n\t" /* uvbuf1[eax+2048]*/\
    "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 437 of file swscale_template.c.

#define REAL_YSCALEYUV2RGB_YA ( index,
 ) 

Value:

"movq  (%0, "#index", 2), %%mm0     \n\t" /*buf0[eax]*/\
    "movq  (%1, "#index", 2), %%mm1     \n\t" /*buf1[eax]*/\
    "movq 8(%0, "#index", 2), %%mm6     \n\t" /*buf0[eax]*/\
    "movq 8(%1, "#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 463 of file swscale_template.c.

#define SFENCE   " # nop"

Definition at line 53 of file swscale_template.c.

#define WRITEBGR24 ( dst,
dstw,
index   )     WRITEBGR24MMX(dst, dstw, index)

Definition at line 893 of file swscale_template.c.

Referenced by yuv2packed2_TMPL(), and yuv2packedX_TMPL().

#define WRITEBGR24MMX ( dst,
dstw,
index   ) 

Definition at line 787 of file swscale_template.c.

#define WRITEBGR24MMX2 ( dst,
dstw,
index   ) 

Definition at line 840 of file swscale_template.c.

#define WRITEBGR24OLD ( dst,
dstw,
index   ) 

Definition at line 731 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 672 of file swscale_template.c.

Referenced by yuv2packed2_TMPL(), and yuv2packedX_TMPL().

#define WRITERGB15 ( dst,
dstw,
index   )     REAL_WRITERGB15(dst, dstw, index)

Definition at line 729 of file swscale_template.c.

Referenced by yuv2packed2_TMPL(), and yuv2packedX_TMPL().

#define WRITERGB16 ( dst,
dstw,
index   )     REAL_WRITERGB16(dst, dstw, index)

Definition at line 700 of file swscale_template.c.

Referenced by yuv2packed2_TMPL(), and yuv2packedX_TMPL().

#define WRITEYUY2 ( dst,
dstw,
index   )     REAL_WRITEYUY2(dst, dstw, index)

Definition at line 911 of file swscale_template.c.

Referenced by yuv2packed2_TMPL(), and yuv2packedX_TMPL().

#define YSCALEYUV2PACKED ( index,
 )     REAL_YSCALEYUV2PACKED(index, c)

Definition at line 435 of file swscale_template.c.

Referenced by yuv2packed2_TMPL().

#define YSCALEYUV2PACKED1 ( index,
 )     REAL_YSCALEYUV2PACKED1(index, c)

Definition at line 527 of file swscale_template.c.

#define YSCALEYUV2PACKED1b ( index,
 )     REAL_YSCALEYUV2PACKED1b(index, c)

Definition at line 594 of file swscale_template.c.

#define YSCALEYUV2PACKEDX

#define YSCALEYUV2PACKEDX_ACCURATE

#define YSCALEYUV2PACKEDX_ACCURATE_UV

Definition at line 263 of file swscale_template.c.

#define YSCALEYUV2PACKEDX_ACCURATE_YA ( offset   ) 

Definition at line 313 of file swscale_template.c.

#define YSCALEYUV2PACKEDX_END

Value:

:: "r" (&c->redDither),                   \
        "m" (dummy), "m" (dummy), "m" (dummy),\
        "r" (dest), "m" (dstW)                \
    : "%"REG_a, "%"REG_d, "%"REG_S            \
    );

Definition at line 256 of file swscale_template.c.

Referenced by yuv2packedX_TMPL().

#define YSCALEYUV2PACKEDX_UV

Value:

__asm__ volatile(\
    "xor                   %%"REG_a", %%"REG_a"     \n\t"\
    ASMALIGN(4)\
    "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"\
    ASMALIGN(4)\
    "2:                                             \n\t"\
    "movq               8(%%"REG_d"), %%mm0         \n\t" /* filterCoeff */\
    "movq     (%%"REG_S", %%"REG_a"), %%mm2         \n\t" /* UsrcData */\
    "movq "AV_STRINGIFY(VOF)"(%%"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 209 of file swscale_template.c.

#define YSCALEYUV2PACKEDX_YA ( offset   ) 

Value:

"lea                "offset"(%0), %%"REG_d"     \n\t"\
    "mov                 (%%"REG_d"), %%"REG_S"     \n\t"\
    "movq      "VROUNDER_OFFSET"(%0), %%mm1         \n\t"\
    "movq                      %%mm1, %%mm7         \n\t"\
    ASMALIGN(4)\
    "2:                                             \n\t"\
    "movq               8(%%"REG_d"), %%mm0         \n\t" /* filterCoeff */\
    "movq  (%%"REG_S", %%"REG_a", 2), %%mm2         \n\t" /* Y1srcData */\
    "movq 8(%%"REG_S", %%"REG_a", 2), %%mm5         \n\t" /* Y2srcData */\
    "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, %%mm1         \n\t"\
    "paddw                     %%mm5, %%mm7         \n\t"\
    "test                  %%"REG_S", %%"REG_S"     \n\t"\
    " jnz                         2b                \n\t"\

Definition at line 233 of file swscale_template.c.

#define YSCALEYUV2RGB ( index,
 ) 

#define YSCALEYUV2RGB1 ( index,
 )     REAL_YSCALEYUV2RGB1(index, c)

Definition at line 576 of file swscale_template.c.

#define YSCALEYUV2RGB1b ( index,
 )     REAL_YSCALEYUV2RGB1b(index, c)

Definition at line 648 of file swscale_template.c.

#define YSCALEYUV2RGB_YA ( index,
 )     REAL_YSCALEYUV2RGB_YA(index, c)

Definition at line 507 of file swscale_template.c.

#define YSCALEYUV2RGBX

Definition at line 362 of file swscale_template.c.

Referenced by yuv2packedX_TMPL().

#define YSCALEYUV2YV121

Value:

"mov %2, %%"REG_a"                    \n\t"\
    ASMALIGN(4) /* FIXME Unroll? */\
    "1:                                   \n\t"\
    "movq  (%0, %%"REG_a", 2), %%mm0      \n\t"\
    "movq 8(%0, %%"REG_a", 2), %%mm1      \n\t"\
    "psraw                 $7, %%mm0      \n\t"\
    "psraw                 $7, %%mm1      \n\t"\
    "packuswb           %%mm1, %%mm0      \n\t"\
    MOVNTQ(%%mm0, (%1, %%REGa))\
    "add                   $8, %%"REG_a"  \n\t"\
    "jnc                   1b             \n\t"

Definition at line 171 of file swscale_template.c.

Referenced by yuv2yuv1_TMPL().

#define YSCALEYUV2YV121_ACCURATE

Value:

"mov %2, %%"REG_a"                    \n\t"\
    "pcmpeqw %%mm7, %%mm7                 \n\t"\
    "psrlw                 $15, %%mm7     \n\t"\
    "psllw                  $6, %%mm7     \n\t"\
    ASMALIGN(4) /* FIXME Unroll? */\
    "1:                                   \n\t"\
    "movq  (%0, %%"REG_a", 2), %%mm0      \n\t"\
    "movq 8(%0, %%"REG_a", 2), %%mm1      \n\t"\
    "paddsw             %%mm7, %%mm0      \n\t"\
    "paddsw             %%mm7, %%mm1      \n\t"\
    "psraw                 $7, %%mm0      \n\t"\
    "psraw                 $7, %%mm1      \n\t"\
    "packuswb           %%mm1, %%mm0      \n\t"\
    MOVNTQ(%%mm0, (%1, %%REGa))\
    "add                   $8, %%"REG_a"  \n\t"\
    "jnc                   1b             \n\t"

Definition at line 184 of file swscale_template.c.

Referenced by yuv2yuv1_TMPL().

#define YSCALEYUV2YV12X ( x,
offset,
dest,
width   ) 

Definition at line 73 of file swscale_template.c.

Referenced by yuv2yuvX_TMPL().

#define YSCALEYUV2YV12X_ACCURATE ( x,
offset,
dest,
width   ) 

Definition at line 109 of file swscale_template.c.

Referenced by yuv2yuvX_TMPL().


Function Documentation

static void bgr24ToUV_half_TMPL ( uint8_t *  dstU,
uint8_t *  dstV,
uint8_t *  src1,
uint8_t *  src2,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1837 of file swscale_template.c.

static void bgr24ToUV_mmx_TMPL ( uint8_t *  dstU,
uint8_t *  dstV,
uint8_t *  src,
long  width,
int  srcFormat 
) [inline, static]

Definition at line 1742 of file swscale_template.c.

static void bgr24ToUV_TMPL ( uint8_t *  dstU,
uint8_t *  dstV,
uint8_t *  src1,
uint8_t *  src2,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1818 of file swscale_template.c.

static void bgr24ToY_mmx_TMPL ( uint8_t *  dst,
uint8_t *  src,
long  width,
int  srcFormat 
) [inline, static]

Definition at line 1689 of file swscale_template.c.

static void bgr24ToY_TMPL ( uint8_t *  dst,
uint8_t *  src,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1801 of file swscale_template.c.

static void hcscale_TMPL ( SwsContext c,
uint16_t *  dst,
long  dstWidth,
uint8_t *  src1,
uint8_t *  src2,
int  srcW,
int  xInc,
int  flags,
int  canMMX2BeUsed,
int16_t *  hChrFilter,
int16_t *  hChrFilterPos,
int  hChrFilterSize,
void *  funnyUVCode,
int  srcFormat,
uint8_t *  formatConvBuffer,
int16_t *  mmx2Filter,
int32_t *  mmx2FilterPos,
uint32_t *  pal 
) [inline, static]

Definition at line 2367 of file swscale_template.c.

static void hScale_TMPL ( int16_t *  dst,
int  dstW,
uint8_t *  src,
int  srcW,
int  xInc,
int16_t *  filter,
int16_t *  filterPos,
long  filterSize 
) [inline, static]

Definition at line 1950 of file swscale_template.c.

static void hyscale_TMPL ( SwsContext c,
uint16_t *  dst,
long  dstWidth,
uint8_t *  src,
int  srcW,
int  xInc,
int  flags,
int  canMMX2BeUsed,
int16_t *  hLumFilter,
int16_t *  hLumFilterPos,
int  hLumFilterSize,
void *  funnyYCode,
int  srcFormat,
uint8_t *  formatConvBuffer,
int16_t *  mmx2Filter,
int32_t *  mmx2FilterPos,
uint32_t *  pal 
) [inline, static]

Definition at line 2132 of file swscale_template.c.

static void monoblack2Y_TMPL ( uint8_t *  dst,
uint8_t *  src,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1939 of file swscale_template.c.

static void monowhite2Y_TMPL ( uint8_t *  dst,
uint8_t *  src,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1929 of file swscale_template.c.

static void palToUV_TMPL ( uint8_t *  dstU,
uint8_t *  dstV,
uint8_t *  src1,
uint8_t *  src2,
long  width,
uint32_t *  pal 
) [inline, static]

Definition at line 1916 of file swscale_template.c.

static void palToY_TMPL ( uint8_t *  dst,
uint8_t *  src,
long  width,
uint32_t *  pal 
) [inline, static]

Definition at line 1905 of file swscale_template.c.

static void rgb24ToUV_half_TMPL ( uint8_t *  dstU,
uint8_t *  dstV,
uint8_t *  src1,
uint8_t *  src2,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1889 of file swscale_template.c.

static void rgb24ToUV_TMPL ( uint8_t *  dstU,
uint8_t *  dstV,
uint8_t *  src1,
uint8_t *  src2,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1869 of file swscale_template.c.

static void rgb24ToY_TMPL ( uint8_t *  dst,
uint8_t *  src,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1852 of file swscale_template.c.

static int swScale_TMPL ( SwsContext c,
uint8_t *  src[],
int  srcStride[],
int  srcSliceY,
int  srcSliceH,
uint8_t *  dst[],
int  dstStride[] 
) [static]

Definition at line 2664 of file swscale_template.c.

static void uyvyToUV_TMPL ( uint8_t *  dstU,
uint8_t *  dstV,
uint8_t *  src1,
uint8_t *  src2,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1592 of file swscale_template.c.

static void uyvyToY_TMPL ( uint8_t *  dst,
uint8_t *  src,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1568 of file swscale_template.c.

static void yuv2nv12X_TMPL ( SwsContext c,
int16_t *  lumFilter,
int16_t **  lumSrc,
int  lumFilterSize,
int16_t *  chrFilter,
int16_t **  chrSrc,
int  chrFilterSize,
uint8_t *  dest,
uint8_t *  uDest,
int  dstW,
int  chrDstW,
int  dstFormat 
) [inline, static]

Definition at line 949 of file swscale_template.c.

static void yuv2packed1_TMPL ( SwsContext c,
uint16_t *  buf0,
uint16_t *  uvbuf0,
uint16_t *  uvbuf1,
uint8_t *  dest,
int  dstW,
int  uvalpha,
int  dstFormat,
int  flags,
int  y 
) [inline, static]

YV12 to RGB without scaling or interpolating.

Definition at line 1291 of file swscale_template.c.

static void yuv2packed2_TMPL ( SwsContext c,
uint16_t *  buf0,
uint16_t *  buf1,
uint16_t *  uvbuf0,
uint16_t *  uvbuf1,
uint8_t *  dest,
int  dstW,
int  yalpha,
int  uvalpha,
int  y 
) [inline, static]

vertical bilinear scale YV12 to RGB

Definition at line 1184 of file swscale_template.c.

static void yuv2packedX_TMPL ( SwsContext c,
int16_t *  lumFilter,
int16_t **  lumSrc,
int  lumFilterSize,
int16_t *  chrFilter,
int16_t **  chrSrc,
int  chrFilterSize,
uint8_t *  dest,
long  dstW,
long  dstY 
) [inline, static]

vertical scale YV12 to RGB

Definition at line 1025 of file swscale_template.c.

static void yuv2yuv1_TMPL ( SwsContext c,
int16_t *  lumSrc,
int16_t *  chrSrc,
uint8_t *  dest,
uint8_t *  uDest,
uint8_t *  vDest,
long  dstW,
long  chrDstW 
) [inline, static]

Definition at line 958 of file swscale_template.c.

static void yuv2yuvX_TMPL ( SwsContext c,
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,
long  dstW,
long  chrDstW 
) [inline, static]

HAVE_ALTIVEC

Definition at line 914 of file swscale_template.c.

static void yuy2ToUV_TMPL ( uint8_t *  dstU,
uint8_t *  dstV,
uint8_t *  src1,
uint8_t *  src2,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1531 of file swscale_template.c.

static void yuy2ToY_TMPL ( uint8_t *  dst,
uint8_t *  src,
long  width,
uint32_t *  unused 
) [inline, static]

Definition at line 1506 of file swscale_template.c.


Generated on Fri Oct 26 02:35:46 2012 for FFmpeg by  doxygen 1.5.8