Mercurial > mplayer.hg
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 |