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.
 1.5.8