Mercurial > mplayer.hg
comparison libswscale/x86/yuv2rgb_template.c @ 29481:c080f1f5c07e
Cosmetics:
- Place curly brackets in the same line as while/for/if/switch/else/do;
- Place curly brackets at column 0 in the next line starting a function.
author | ramiro |
---|---|
date | Sun, 16 Aug 2009 21:11:28 +0000 |
parents | 6bab02cf6a31 |
children | e25e411fb220 |
comparison
equal
deleted
inserted
replaced
29480:a4d8dee13834 | 29481:c080f1f5c07e |
---|---|
120 "punpcklbw %%mm4, %%mm1;" /* R7 R6 R5 R4 R3 R2 R1 R0 */\ | 120 "punpcklbw %%mm4, %%mm1;" /* R7 R6 R5 R4 R3 R2 R1 R0 */\ |
121 "punpcklbw %%mm5, %%mm2;" /* G7 G6 G5 G4 G3 G2 G1 G0 */\ | 121 "punpcklbw %%mm5, %%mm2;" /* G7 G6 G5 G4 G3 G2 G1 G0 */\ |
122 | 122 |
123 | 123 |
124 #define YUV422_UNSHIFT \ | 124 #define YUV422_UNSHIFT \ |
125 if(c->srcFormat == PIX_FMT_YUV422P){ \ | 125 if(c->srcFormat == PIX_FMT_YUV422P) {\ |
126 srcStride[1] *= 2; \ | 126 srcStride[1] *= 2; \ |
127 srcStride[2] *= 2; \ | 127 srcStride[2] *= 2; \ |
128 } \ | 128 } \ |
129 | 129 |
130 #define YUV2RGB_LOOP(depth) \ | 130 #define YUV2RGB_LOOP(depth) \ |
178 } \ | 178 } \ |
179 __asm__ volatile (EMMS); \ | 179 __asm__ volatile (EMMS); \ |
180 return srcSliceH; \ | 180 return srcSliceH; \ |
181 | 181 |
182 static inline int RENAME(yuv420_rgb16)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, | 182 static inline int RENAME(yuv420_rgb16)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, |
183 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 183 int srcSliceH, uint8_t* dst[], int dstStride[]) |
184 { | |
184 int y, h_size; | 185 int y, h_size; |
185 | 186 |
186 YUV422_UNSHIFT | 187 YUV422_UNSHIFT |
187 YUV2RGB_LOOP(2) | 188 YUV2RGB_LOOP(2) |
188 | 189 |
234 YUV2RGB_ENDLOOP(2) | 235 YUV2RGB_ENDLOOP(2) |
235 YUV2RGB_OPERANDS | 236 YUV2RGB_OPERANDS |
236 } | 237 } |
237 | 238 |
238 static inline int RENAME(yuv420_rgb15)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, | 239 static inline int RENAME(yuv420_rgb15)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, |
239 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 240 int srcSliceH, uint8_t* dst[], int dstStride[]) |
241 { | |
240 int y, h_size; | 242 int y, h_size; |
241 | 243 |
242 YUV422_UNSHIFT | 244 YUV422_UNSHIFT |
243 YUV2RGB_LOOP(2) | 245 YUV2RGB_LOOP(2) |
244 | 246 |
292 YUV2RGB_ENDLOOP(2) | 294 YUV2RGB_ENDLOOP(2) |
293 YUV2RGB_OPERANDS | 295 YUV2RGB_OPERANDS |
294 } | 296 } |
295 | 297 |
296 static inline int RENAME(yuv420_rgb24)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, | 298 static inline int RENAME(yuv420_rgb24)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, |
297 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 299 int srcSliceH, uint8_t* dst[], int dstStride[]) |
300 { | |
298 int y, h_size; | 301 int y, h_size; |
299 | 302 |
300 YUV422_UNSHIFT | 303 YUV422_UNSHIFT |
301 YUV2RGB_LOOP(3) | 304 YUV2RGB_LOOP(3) |
302 | 305 |
468 \ | 471 \ |
469 "pxor %%mm4, %%mm4;" /* zero mm4 */ \ | 472 "pxor %%mm4, %%mm4;" /* zero mm4 */ \ |
470 "movq 8 (%5, %0, 2), %%mm6;" /* Load 8 Y Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 */ \ | 473 "movq 8 (%5, %0, 2), %%mm6;" /* Load 8 Y Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 */ \ |
471 | 474 |
472 static inline int RENAME(yuv420_rgb32)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, | 475 static inline int RENAME(yuv420_rgb32)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, |
473 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 476 int srcSliceH, uint8_t* dst[], int dstStride[]) |
477 { | |
474 int y, h_size; | 478 int y, h_size; |
475 | 479 |
476 YUV422_UNSHIFT | 480 YUV422_UNSHIFT |
477 YUV2RGB_LOOP(4) | 481 YUV2RGB_LOOP(4) |
478 | 482 |
484 YUV2RGB_ENDLOOP(4) | 488 YUV2RGB_ENDLOOP(4) |
485 YUV2RGB_OPERANDS | 489 YUV2RGB_OPERANDS |
486 } | 490 } |
487 | 491 |
488 static inline int RENAME(yuva420_rgb32)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, | 492 static inline int RENAME(yuva420_rgb32)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, |
489 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 493 int srcSliceH, uint8_t* dst[], int dstStride[]) |
494 { | |
490 #if HAVE_7REGS | 495 #if HAVE_7REGS |
491 int y, h_size; | 496 int y, h_size; |
492 | 497 |
493 YUV2RGB_LOOP(4) | 498 YUV2RGB_LOOP(4) |
494 | 499 |
502 YUV2RGB_OPERANDS_ALPHA | 507 YUV2RGB_OPERANDS_ALPHA |
503 #endif | 508 #endif |
504 } | 509 } |
505 | 510 |
506 static inline int RENAME(yuv420_bgr32)(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY, | 511 static inline int RENAME(yuv420_bgr32)(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY, |
507 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 512 int srcSliceH, uint8_t* dst[], int dstStride[]) |
513 { | |
508 int y, h_size; | 514 int y, h_size; |
509 | 515 |
510 YUV422_UNSHIFT | 516 YUV422_UNSHIFT |
511 YUV2RGB_LOOP(4) | 517 YUV2RGB_LOOP(4) |
512 | 518 |
518 YUV2RGB_ENDLOOP(4) | 524 YUV2RGB_ENDLOOP(4) |
519 YUV2RGB_OPERANDS | 525 YUV2RGB_OPERANDS |
520 } | 526 } |
521 | 527 |
522 static inline int RENAME(yuva420_bgr32)(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY, | 528 static inline int RENAME(yuva420_bgr32)(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY, |
523 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 529 int srcSliceH, uint8_t* dst[], int dstStride[]) |
530 { | |
524 #if HAVE_7REGS | 531 #if HAVE_7REGS |
525 int y, h_size; | 532 int y, h_size; |
526 | 533 |
527 YUV2RGB_LOOP(4) | 534 YUV2RGB_LOOP(4) |
528 | 535 |