big endian fix (untested)

Originally committed as revision 3397 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2004-08-17 09:57:56 +00:00
parent da6c4573e9
commit 3ad7dd8cda
1 changed files with 22 additions and 12 deletions

View File

@ -32,6 +32,16 @@
#define VLC_BITS 11 #define VLC_BITS 11
#ifdef WORDS_BIGENDIAN
#define B 3
#define G 2
#define R 1
#else
#define B 0
#define G 1
#define R 2
#endif
typedef enum Predictor{ typedef enum Predictor{
LEFT= 0, LEFT= 0,
PLANE, PLANE,
@ -157,13 +167,13 @@ static inline void add_left_prediction_bgr32(uint8_t *dst, uint8_t *src, int w,
b= *blue; b= *blue;
for(i=0; i<w; i++){ for(i=0; i<w; i++){
b+= src[4*i+0]; b+= src[4*i+B];
g+= src[4*i+1]; g+= src[4*i+G];
r+= src[4*i+2]; r+= src[4*i+R];
dst[4*i+0]= b; dst[4*i+B]= b;
dst[4*i+1]= g; dst[4*i+G]= g;
dst[4*i+2]= r; dst[4*i+R]= r;
} }
*red= r; *red= r;
@ -619,9 +629,9 @@ static void decode_bgr_bitstream(HYuvContext *s, int count){
} }
}else{ }else{
for(i=0; i<count; i++){ for(i=0; i<count; i++){
s->temp[0][4*i+1]= get_vlc2(&s->gb, s->vlc[1].table, VLC_BITS, 3); s->temp[0][4*i+G]= get_vlc2(&s->gb, s->vlc[1].table, VLC_BITS, 3);
s->temp[0][4*i ]= get_vlc2(&s->gb, s->vlc[0].table, VLC_BITS, 3) + s->temp[0][4*i+1]; s->temp[0][4*i+B]= get_vlc2(&s->gb, s->vlc[0].table, VLC_BITS, 3) + s->temp[0][4*i+G];
s->temp[0][4*i+2]= get_vlc2(&s->gb, s->vlc[2].table, VLC_BITS, 3) + s->temp[0][4*i+1]; s->temp[0][4*i+R]= get_vlc2(&s->gb, s->vlc[2].table, VLC_BITS, 3) + s->temp[0][4*i+G];
get_vlc2(&s->gb, s->vlc[2].table, VLC_BITS, 3); //?! get_vlc2(&s->gb, s->vlc[2].table, VLC_BITS, 3); //?!
} }
} }
@ -634,9 +644,9 @@ static void decode_bgr_bitstream(HYuvContext *s, int count){
} }
}else{ }else{
for(i=0; i<count; i++){ for(i=0; i<count; i++){
s->temp[0][4*i ]= get_vlc2(&s->gb, s->vlc[0].table, VLC_BITS, 3); s->temp[0][4*i+B]= get_vlc2(&s->gb, s->vlc[0].table, VLC_BITS, 3);
s->temp[0][4*i+1]= get_vlc2(&s->gb, s->vlc[1].table, VLC_BITS, 3); s->temp[0][4*i+G]= get_vlc2(&s->gb, s->vlc[1].table, VLC_BITS, 3);
s->temp[0][4*i+2]= get_vlc2(&s->gb, s->vlc[2].table, VLC_BITS, 3); s->temp[0][4*i+R]= get_vlc2(&s->gb, s->vlc[2].table, VLC_BITS, 3);
get_vlc2(&s->gb, s->vlc[2].table, VLC_BITS, 3); //?! get_vlc2(&s->gb, s->vlc[2].table, VLC_BITS, 3); //?!
} }
} }