summaryrefslogtreecommitdiffstats
path: root/postproc
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-05 17:46:20 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-05 17:46:20 +0000
commitf5d935298609b3530f0e274033d264d8da20cd42 (patch)
treef248a00a96ef417c28f03035a7031955bd2999f4 /postproc
parent21f00e8f8ec007036d9c2d69d9c7ac17aa5181cd (diff)
downloadmpv-f5d935298609b3530f0e274033d264d8da20cd42.tar.bz2
mpv-f5d935298609b3530f0e274033d264d8da20cd42.tar.xz
Fixed rgb32(24)to16 stuff, rgb32(24)to15 is still broken
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2720 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'postproc')
-rw-r--r--postproc/rgb2rgb.c28
-rw-r--r--postproc/rgb2rgb_template.c28
2 files changed, 32 insertions, 24 deletions
diff --git a/postproc/rgb2rgb.c b/postproc/rgb2rgb.c
index 19fa7faca0..5779bf5e30 100644
--- a/postproc/rgb2rgb.c
+++ b/postproc/rgb2rgb.c
@@ -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);
}
}
diff --git a/postproc/rgb2rgb_template.c b/postproc/rgb2rgb_template.c
index 19fa7faca0..5779bf5e30 100644
--- a/postproc/rgb2rgb_template.c
+++ b/postproc/rgb2rgb_template.c
@@ -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);
}
}