comparison libswscale/rgb2rgb_template.c @ 23004:beb4ac492c5e

preserve alpha channel when converting rgb32 to bgr32 in plain C
author ivo
date Wed, 18 Apr 2007 16:40:58 +0000
parents fd0fda0c6555
children 9528d1ebe68f
comparison
equal deleted inserted replaced
23003:ec0ead587e2f 23004:beb4ac492c5e
1421 : "+&r"(idx) 1421 : "+&r"(idx)
1422 : "r" (s), "r" (d), "m" (mask32b), "m" (mask32r), "m" (mmx_one) 1422 : "r" (s), "r" (d), "m" (mask32b), "m" (mask32r), "m" (mmx_one)
1423 : "memory"); 1423 : "memory");
1424 #endif 1424 #endif
1425 for (; idx<15; idx+=4) { 1425 for (; idx<15; idx+=4) {
1426 register int v = *(uint32_t *)&s[idx], g = v & 0xff00; 1426 register int v = *(uint32_t *)&s[idx], g = v & 0xff00ff00;
1427 v &= 0xff00ff; 1427 v &= 0xff00ff;
1428 *(uint32_t *)&d[idx] = (v>>16) + g + (v<<16); 1428 *(uint32_t *)&d[idx] = (v>>16) + g + (v<<16);
1429 } 1429 }
1430 } 1430 }
1431 1431