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