Go to the source code of this file.
Defines | |
#define | EMMS "femms" |
#define | MOVNTQ "movq" |
#define | SFENCE "/nop" |
#define | YUV2RGB |
#define | YUV422_UNSHIFT |
#define | YUV2RGB_LOOP(depth) |
#define | YUV2RGB_INIT |
#define | YUV2RGB_ENDLOOP(depth) |
#define | RGB_PLANAR2PACKED32 |
Functions | |
static int | yuv420_rgb16_TMPL (SwsContext *c, uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) |
static int | yuv420_rgb15_TMPL (SwsContext *c, uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) |
static int | yuv420_rgb24_TMPL (SwsContext *c, uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) |
static int | yuv420_rgb32_TMPL (SwsContext *c, uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) |
#define EMMS "femms" |
Definition at line 35 of file yuv2rgb_template.c.
#define MOVNTQ "movq" |
Definition at line 44 of file yuv2rgb_template.c.
#define RGB_PLANAR2PACKED32 |
#define SFENCE "/nop" |
Definition at line 45 of file yuv2rgb_template.c.
#define YUV2RGB |
Definition at line 48 of file yuv2rgb_template.c.
Referenced by yuv420_rgb16_TMPL(), and yuv420_rgb32_TMPL().
#define YUV2RGB_ENDLOOP | ( | depth | ) |
Value:
"add $"AV_STRINGIFY(depth*8)", %1 \n\t" \ "add $4, %0 \n\t" \ " js 1b \n\t" \ \ : "+r" (index), "+r" (image) \ : "r" (pu - index), "r" (pv - index), "r"(&c->redDither), "r" (py - 2*index) \ ); \ } \ __asm__ volatile (EMMS); \ return srcSliceH; \
Definition at line 152 of file yuv2rgb_template.c.
Referenced by yuv420_rgb32_TMPL().
#define YUV2RGB_INIT |
Value:
/* This MMX assembly code deals with a SINGLE scan line at a time, \ * it converts 8 pixels in each iteration. */ \ __asm__ volatile ( \ /* load data for start of next scan line */ \ "movd (%2, %0), %%mm0;" /* Load 4 Cb 00 00 00 00 u3 u2 u1 u0 */ \ "movd (%3, %0), %%mm1;" /* Load 4 Cr 00 00 00 00 v3 v2 v1 v0 */ \ "movq (%5, %0, 2), %%mm6;" /* Load 8 Y Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 */ \ /* \ ".balign 16 \n\t" \ */ \ "1: \n\t" \
Definition at line 135 of file yuv2rgb_template.c.
Referenced by vis_420P_ARGB32(), vis_422P_ARGB32(), yuv420_rgb16_TMPL(), and yuv420_rgb32_TMPL().
#define YUV2RGB_LOOP | ( | depth | ) |
Value:
h_size= (c->dstW+7)&~7; \ if(h_size*depth > FFABS(dstStride[0])) h_size-=8; \ \ __asm__ volatile ("pxor %mm4, %mm4;" /* zero mm4 */ ); \ for (y= 0; y<srcSliceH; y++ ) { \ uint8_t *image = dst[0] + (y+srcSliceY)*dstStride[0]; \ uint8_t *py = src[0] + y*srcStride[0]; \ uint8_t *pu = src[1] + (y>>1)*srcStride[1]; \ uint8_t *pv = src[2] + (y>>1)*srcStride[2]; \ long index= -h_size/2; \
Definition at line 123 of file yuv2rgb_template.c.
Referenced by yuv420_rgb16_TMPL(), and yuv420_rgb32_TMPL().
#define YUV422_UNSHIFT |
Value:
if(c->srcFormat == PIX_FMT_YUV422P){ \ srcStride[1] *= 2; \ srcStride[2] *= 2; \ } \
Definition at line 117 of file yuv2rgb_template.c.
Referenced by yuv420_rgb16_TMPL(), and yuv420_rgb32_TMPL().
static int yuv420_rgb15_TMPL | ( | SwsContext * | c, | |
uint8_t * | src[], | |||
int | srcStride[], | |||
int | srcSliceY, | |||
int | srcSliceH, | |||
uint8_t * | dst[], | |||
int | dstStride[] | |||
) | [inline, static] |
Definition at line 219 of file yuv2rgb_template.c.
static int yuv420_rgb16_TMPL | ( | SwsContext * | c, | |
uint8_t * | src[], | |||
int | srcStride[], | |||
int | srcSliceY, | |||
int | srcSliceH, | |||
uint8_t * | dst[], | |||
int | dstStride[] | |||
) | [inline, static] |
Definition at line 164 of file yuv2rgb_template.c.
static int yuv420_rgb24_TMPL | ( | SwsContext * | c, | |
uint8_t * | src[], | |||
int | srcStride[], | |||
int | srcSliceY, | |||
int | srcSliceH, | |||
uint8_t * | dst[], | |||
int | dstStride[] | |||
) | [inline, static] |
Definition at line 276 of file yuv2rgb_template.c.
static int yuv420_rgb32_TMPL | ( | SwsContext * | c, | |
uint8_t * | src[], | |||
int | srcStride[], | |||
int | srcSliceY, | |||
int | srcSliceH, | |||
uint8_t * | dst[], | |||
int | dstStride[] | |||
) | [inline, static] |
Definition at line 429 of file yuv2rgb_template.c.