introduce vc_copylineDVS10toV210

This commit is contained in:
Lukas Hejtmanek
2010-02-11 17:50:00 +01:00
parent e63d06c234
commit 63ebec88df
2 changed files with 22 additions and 0 deletions

View File

@@ -288,6 +288,27 @@ vc_copylineRGBA(unsigned char *dst, unsigned char *src, int len, int rshift,
}
}
void vc_copylineDVS10toV210(unsigned char *dst, unsigned char *src, int dst_len)
{
unsigned int *d, *s1;
register unsigned int a,b;
d = dst;
s1 = src;
while(dst_len > 0) {
a = b = *s1++;
b = ((b >> 24) * 0x00010101) & 0x00300c03;
a <<= 2;
b |= a & (0xff<<2);
a <<= 2;
b |= a & (0xff00<<4);
a <<= 2;
b |= a & (0xff0000<<6);
*d++ = b;
dst_len -= 4;
}
}
/* convert 10bits Cb Y Cr A Y Cb Y A to 8bits Cb Y Cr Y Cb Y */
#if !(HAVE_MACOSX || HAVE_32B_LINUX)

View File

@@ -109,5 +109,6 @@ void vc_copylineDVS10(unsigned char *dst, unsigned char *src, int src_len);
void vc_copylinev210(unsigned char *dst, unsigned char *src, int dst_len);
void vc_copyliner10k(unsigned char *dst, unsigned char *src, int len, int rshift, int gshift, int bshift);
void vc_copylineRGBA(unsigned char *dst, unsigned char *src, int len, int rshift, int gshift, int bshift);
void vc_copylineDVS10toV210(unsigned char *dst, unsigned char *src, int dst_len);
#endif