1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

Fixed rgb32(24)to16 stuff, rgb32(24)to15 is still broken

Originally committed as revision 2720 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
This commit is contained in:
Nick Kurshev 2001-11-05 17:46:20 +00:00
parent 996e1a7cff
commit 90226a43e6
2 changed files with 32 additions and 24 deletions

View File

@ -216,53 +216,57 @@ void palette8torgb24(const uint8_t *src, uint8_t *dst, unsigned num_pixels, cons
void rgb32to16(const uint8_t *src, uint8_t *dst, unsigned src_size)
{
unsigned i,num_pixels=src_size/4;
for(i=0; i<num_pixels; i+=4)
unsigned j,i,num_pixels=src_size/4;
uint16_t *d = (uint16_t *)dst;
for(i=0,j=0; j<num_pixels; i+=4,j++)
{
const int b= src[i+0];
const int g= src[i+1];
const int r= src[i+2];
((uint16_t *)dst)[i]= (b>>3) | ((g&0xFC)<<3) | ((r&0xF8)<<8);
d[j]= (b>>3) | ((g&0xFC)<<3) | ((r&0xF8)<<8);
}
}
void rgb32to15(const uint8_t *src, uint8_t *dst, unsigned src_size)
{
unsigned i,num_pixels=src_size/4;
for(i=0; i<num_pixels; i+=4)
unsigned j,i,num_pixels=src_size/4;
uint16_t *d = (uint16_t *)dst;
for(i=0,j=0; j<num_pixels; i+=4,j++)
{
const int b= src[i+0];
const int g= src[i+1];
const int r= src[i+2];
((uint16_t *)dst)[i]= (b>>3) | ((g&0xF8)<<3) | ((r&0xF8)<<7);
d[j]= (b>>3) | ((g&0xF8)<<3) | ((r&0xF8)<<7);
}
}
void rgb24to16(const uint8_t *src, uint8_t *dst, unsigned src_size)
{
unsigned i,num_pixels=src_size/3;
for(i=0; i<num_pixels; i+=3)
unsigned j,i,num_pixels=src_size/3;
uint16_t *d = (uint16_t *)dst;
for(i=0,j=0; j<num_pixels; i+=3,j++)
{
const int b= src[i+0];
const int g= src[i+1];
const int r= src[i+2];
((uint16_t *)dst)[i]= (b>>3) | ((g&0xFC)<<3) | ((r&0xF8)<<8);
d[j]= (b>>3) | ((g&0xFC)<<3) | ((r&0xF8)<<8);
}
}
void rgb24to15(const uint8_t *src, uint8_t *dst, unsigned src_size)
{
unsigned i,num_pixels=src_size/3;
for(i=0; i<num_pixels; i+=3)
unsigned j,i,num_pixels=src_size/3;
uint16_t *d = (uint16_t *)dst;
for(i=0,j=0; j<num_pixels; i+=3,j++)
{
const int b= src[i+0];
const int g= src[i+1];
const int r= src[i+2];
((uint16_t *)dst)[i]= (b>>3) | ((g&0xF8)<<3) | ((r&0xF8)<<7);
d[j]= (b>>3) | ((g&0xF8)<<3) | ((r&0xF8)<<7);
}
}

View File

@ -216,53 +216,57 @@ void palette8torgb24(const uint8_t *src, uint8_t *dst, unsigned num_pixels, cons
void rgb32to16(const uint8_t *src, uint8_t *dst, unsigned src_size)
{
unsigned i,num_pixels=src_size/4;
for(i=0; i<num_pixels; i+=4)
unsigned j,i,num_pixels=src_size/4;
uint16_t *d = (uint16_t *)dst;
for(i=0,j=0; j<num_pixels; i+=4,j++)
{
const int b= src[i+0];
const int g= src[i+1];
const int r= src[i+2];
((uint16_t *)dst)[i]= (b>>3) | ((g&0xFC)<<3) | ((r&0xF8)<<8);
d[j]= (b>>3) | ((g&0xFC)<<3) | ((r&0xF8)<<8);
}
}
void rgb32to15(const uint8_t *src, uint8_t *dst, unsigned src_size)
{
unsigned i,num_pixels=src_size/4;
for(i=0; i<num_pixels; i+=4)
unsigned j,i,num_pixels=src_size/4;
uint16_t *d = (uint16_t *)dst;
for(i=0,j=0; j<num_pixels; i+=4,j++)
{
const int b= src[i+0];
const int g= src[i+1];
const int r= src[i+2];
((uint16_t *)dst)[i]= (b>>3) | ((g&0xF8)<<3) | ((r&0xF8)<<7);
d[j]= (b>>3) | ((g&0xF8)<<3) | ((r&0xF8)<<7);
}
}
void rgb24to16(const uint8_t *src, uint8_t *dst, unsigned src_size)
{
unsigned i,num_pixels=src_size/3;
for(i=0; i<num_pixels; i+=3)
unsigned j,i,num_pixels=src_size/3;
uint16_t *d = (uint16_t *)dst;
for(i=0,j=0; j<num_pixels; i+=3,j++)
{
const int b= src[i+0];
const int g= src[i+1];
const int r= src[i+2];
((uint16_t *)dst)[i]= (b>>3) | ((g&0xFC)<<3) | ((r&0xF8)<<8);
d[j]= (b>>3) | ((g&0xFC)<<3) | ((r&0xF8)<<8);
}
}
void rgb24to15(const uint8_t *src, uint8_t *dst, unsigned src_size)
{
unsigned i,num_pixels=src_size/3;
for(i=0; i<num_pixels; i+=3)
unsigned j,i,num_pixels=src_size/3;
uint16_t *d = (uint16_t *)dst;
for(i=0,j=0; j<num_pixels; i+=3,j++)
{
const int b= src[i+0];
const int g= src[i+1];
const int r= src[i+2];
((uint16_t *)dst)[i]= (b>>3) | ((g&0xF8)<<3) | ((r&0xF8)<<7);
d[j]= (b>>3) | ((g&0xF8)<<3) | ((r&0xF8)<<7);
}
}