Mercurial > mplayer.hg
comparison libswscale/yuv2rgb_template.c @ 23129:9528d1ebe68f
cosmetics: Remove trailing whitespace.
author | diego |
---|---|
date | Thu, 26 Apr 2007 23:07:11 +0000 |
parents | 44c3544fd926 |
children | ebc55c913d73 |
comparison
equal
deleted
inserted
replaced
23128:0c4b9bc10494 | 23129:9528d1ebe68f |
---|---|
1 | |
2 /* | 1 /* |
3 * yuv2rgb_mmx.c, Software YUV to RGB coverter with Intel MMX "technology" | 2 * yuv2rgb_mmx.c, Software YUV to RGB coverter with Intel MMX "technology" |
4 * | 3 * |
5 * Copyright (C) 2000, Silicon Integrated System Corp. | 4 * Copyright (C) 2000, Silicon Integrated System Corp. |
6 * All Rights Reserved. | 5 * All Rights Reserved. |
132 srcStride[2] *= 2; | 131 srcStride[2] *= 2; |
133 } | 132 } |
134 | 133 |
135 h_size= (c->dstW+7)&~7; | 134 h_size= (c->dstW+7)&~7; |
136 if(h_size*2 > FFABS(dstStride[0])) h_size-=8; | 135 if(h_size*2 > FFABS(dstStride[0])) h_size-=8; |
137 | 136 |
138 __asm__ __volatile__ ("pxor %mm4, %mm4;" /* zero mm4 */ ); | 137 __asm__ __volatile__ ("pxor %mm4, %mm4;" /* zero mm4 */ ); |
139 //printf("%X %X %X %X %X %X %X %X %X %X\n", (int)&c->redDither, (int)&b5Dither, (int)src[0], (int)src[1], (int)src[2], (int)dst[0], | 138 //printf("%X %X %X %X %X %X %X %X %X %X\n", (int)&c->redDither, (int)&b5Dither, (int)src[0], (int)src[1], (int)src[2], (int)dst[0], |
140 //srcStride[0],srcStride[1],srcStride[2],dstStride[0]); | 139 //srcStride[0],srcStride[1],srcStride[2],dstStride[0]); |
141 for (y= 0; y<srcSliceH; y++ ) { | 140 for (y= 0; y<srcSliceH; y++ ) { |
142 uint8_t *_image = dst[0] + (y+srcSliceY)*dstStride[0]; | 141 uint8_t *_image = dst[0] + (y+srcSliceY)*dstStride[0]; |
201 | 200 |
202 "por %%mm7, %%mm5;" /* r7r6r5r4 r3g7g6g5 g4g3g2b7 b6b5b4b3 */ | 201 "por %%mm7, %%mm5;" /* r7r6r5r4 r3g7g6g5 g4g3g2b7 b6b5b4b3 */ |
203 "movd 4 (%3, %0), %%mm1;" /* Load 4 Cr 00 00 00 00 v3 v2 v1 v0 */ | 202 "movd 4 (%3, %0), %%mm1;" /* Load 4 Cr 00 00 00 00 v3 v2 v1 v0 */ |
204 | 203 |
205 MOVNTQ " %%mm5, 8 (%1);" /* store pixel 4-7 */ | 204 MOVNTQ " %%mm5, 8 (%1);" /* store pixel 4-7 */ |
206 | 205 |
207 "add $16, %1 \n\t" | 206 "add $16, %1 \n\t" |
208 "add $4, %0 \n\t" | 207 "add $4, %0 \n\t" |
209 " js 1b \n\t" | 208 " js 1b \n\t" |
210 | 209 |
211 : "+r" (index), "+r" (_image) | 210 : "+r" (index), "+r" (_image) |
212 : "r" (_pu - index), "r" (_pv - index), "r"(&c->redDither), "r" (_py - 2*index) | 211 : "r" (_pu - index), "r" (_pv - index), "r"(&c->redDither), "r" (_py - 2*index) |
213 ); | 212 ); |
214 } | 213 } |
215 | 214 |
216 __asm__ __volatile__ (EMMS); | 215 __asm__ __volatile__ (EMMS); |
217 | 216 |
218 return srcSliceH; | 217 return srcSliceH; |
219 } | 218 } |
220 | 219 |
221 static inline int RENAME(yuv420_rgb15)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, | 220 static inline int RENAME(yuv420_rgb15)(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, |
222 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 221 int srcSliceH, uint8_t* dst[], int dstStride[]){ |
227 srcStride[2] *= 2; | 226 srcStride[2] *= 2; |
228 } | 227 } |
229 | 228 |
230 h_size= (c->dstW+7)&~7; | 229 h_size= (c->dstW+7)&~7; |
231 if(h_size*2 > FFABS(dstStride[0])) h_size-=8; | 230 if(h_size*2 > FFABS(dstStride[0])) h_size-=8; |
232 | 231 |
233 __asm__ __volatile__ ("pxor %mm4, %mm4;" /* zero mm4 */ ); | 232 __asm__ __volatile__ ("pxor %mm4, %mm4;" /* zero mm4 */ ); |
234 //printf("%X %X %X %X %X %X %X %X %X %X\n", (int)&c->redDither, (int)&b5Dither, (int)src[0], (int)src[1], (int)src[2], (int)dst[0], | 233 //printf("%X %X %X %X %X %X %X %X %X %X\n", (int)&c->redDither, (int)&b5Dither, (int)src[0], (int)src[1], (int)src[2], (int)dst[0], |
235 //srcStride[0],srcStride[1],srcStride[2],dstStride[0]); | 234 //srcStride[0],srcStride[1],srcStride[2],dstStride[0]); |
236 for (y= 0; y<srcSliceH; y++ ) { | 235 for (y= 0; y<srcSliceH; y++ ) { |
237 uint8_t *_image = dst[0] + (y+srcSliceY)*dstStride[0]; | 236 uint8_t *_image = dst[0] + (y+srcSliceY)*dstStride[0]; |
292 | 291 |
293 "por %%mm7, %%mm5;" /* 0_r7r6r5 r4r3g7g6 g5g4g3b7 b6b5b4b3 */ | 292 "por %%mm7, %%mm5;" /* 0_r7r6r5 r4r3g7g6 g5g4g3b7 b6b5b4b3 */ |
294 "movd 4 (%3, %0), %%mm1;" /* Load 4 Cr 00 00 00 00 v3 v2 v1 v0 */ | 293 "movd 4 (%3, %0), %%mm1;" /* Load 4 Cr 00 00 00 00 v3 v2 v1 v0 */ |
295 | 294 |
296 MOVNTQ " %%mm5, 8 (%1);" /* store pixel 4-7 */ | 295 MOVNTQ " %%mm5, 8 (%1);" /* store pixel 4-7 */ |
297 | 296 |
298 "add $16, %1 \n\t" | 297 "add $16, %1 \n\t" |
299 "add $4, %0 \n\t" | 298 "add $4, %0 \n\t" |
300 " js 1b \n\t" | 299 " js 1b \n\t" |
301 : "+r" (index), "+r" (_image) | 300 : "+r" (index), "+r" (_image) |
302 : "r" (_pu - index), "r" (_pv - index), "r"(&c->redDither), "r" (_py - 2*index) | 301 : "r" (_pu - index), "r" (_pv - index), "r"(&c->redDither), "r" (_py - 2*index) |
316 srcStride[2] *= 2; | 315 srcStride[2] *= 2; |
317 } | 316 } |
318 | 317 |
319 h_size= (c->dstW+7)&~7; | 318 h_size= (c->dstW+7)&~7; |
320 if(h_size*3 > FFABS(dstStride[0])) h_size-=8; | 319 if(h_size*3 > FFABS(dstStride[0])) h_size-=8; |
321 | 320 |
322 __asm__ __volatile__ ("pxor %mm4, %mm4;" /* zero mm4 */ ); | 321 __asm__ __volatile__ ("pxor %mm4, %mm4;" /* zero mm4 */ ); |
323 | 322 |
324 for (y= 0; y<srcSliceH; y++ ) { | 323 for (y= 0; y<srcSliceH; y++ ) { |
325 uint8_t *_image = dst[0] + (y+srcSliceY)*dstStride[0]; | 324 uint8_t *_image = dst[0] + (y+srcSliceY)*dstStride[0]; |
326 uint8_t *_py = src[0] + y*srcStride[0]; | 325 uint8_t *_py = src[0] + y*srcStride[0]; |
437 MOVNTQ" %%mm1, 16(%1) \n\t" | 436 MOVNTQ" %%mm1, 16(%1) \n\t" |
438 | 437 |
439 "movd 4 (%3, %0), %%mm1;" /* Load 4 Cr 00 00 00 00 v3 v2 v1 v0 */ | 438 "movd 4 (%3, %0), %%mm1;" /* Load 4 Cr 00 00 00 00 v3 v2 v1 v0 */ |
440 "pxor %%mm4, %%mm4 \n\t" | 439 "pxor %%mm4, %%mm4 \n\t" |
441 #endif | 440 #endif |
442 | 441 |
443 "add $24, %1 \n\t" | 442 "add $24, %1 \n\t" |
444 "add $4, %0 \n\t" | 443 "add $4, %0 \n\t" |
445 " js 1b \n\t" | 444 " js 1b \n\t" |
446 | 445 |
447 : "+r" (index), "+r" (_image) | 446 : "+r" (index), "+r" (_image) |
448 : "r" (_pu - index), "r" (_pv - index), "r"(&c->redDither), "r" (_py - 2*index) | 447 : "r" (_pu - index), "r" (_pv - index), "r"(&c->redDither), "r" (_py - 2*index) |
449 ); | 448 ); |
450 } | 449 } |
451 | 450 |
462 srcStride[2] *= 2; | 461 srcStride[2] *= 2; |
463 } | 462 } |
464 | 463 |
465 h_size= (c->dstW+7)&~7; | 464 h_size= (c->dstW+7)&~7; |
466 if(h_size*4 > FFABS(dstStride[0])) h_size-=8; | 465 if(h_size*4 > FFABS(dstStride[0])) h_size-=8; |
467 | 466 |
468 __asm__ __volatile__ ("pxor %mm4, %mm4;" /* zero mm4 */ ); | 467 __asm__ __volatile__ ("pxor %mm4, %mm4;" /* zero mm4 */ ); |
469 | 468 |
470 for (y= 0; y<srcSliceH; y++ ) { | 469 for (y= 0; y<srcSliceH; y++ ) { |
471 uint8_t *_image = dst[0] + (y+srcSliceY)*dstStride[0]; | 470 uint8_t *_image = dst[0] + (y+srcSliceY)*dstStride[0]; |
472 uint8_t *_py = src[0] + y*srcStride[0]; | 471 uint8_t *_py = src[0] + y*srcStride[0]; |
527 "movq 8 (%5, %0, 2), %%mm6;" /* Load 8 Y Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 */ | 526 "movq 8 (%5, %0, 2), %%mm6;" /* Load 8 Y Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 */ |
528 | 527 |
529 "add $32, %1 \n\t" | 528 "add $32, %1 \n\t" |
530 "add $4, %0 \n\t" | 529 "add $4, %0 \n\t" |
531 " js 1b \n\t" | 530 " js 1b \n\t" |
532 | 531 |
533 : "+r" (index), "+r" (_image) | 532 : "+r" (index), "+r" (_image) |
534 : "r" (_pu - index), "r" (_pv - index), "r"(&c->redDither), "r" (_py - 2*index) | 533 : "r" (_pu - index), "r" (_pv - index), "r"(&c->redDither), "r" (_py - 2*index) |
535 ); | 534 ); |
536 } | 535 } |
537 | 536 |