diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2015-07-19 22:55:16 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-07-19 23:26:59 +0200 |
commit | 36a87c2dc7f302da3778bd0cff050b5c93a730c7 (patch) | |
tree | 134b4e7fc0cc37fb70cc573701c8340299af04c4 /libavcodec/dds.c | |
parent | 4ebe31abf1b48b86300d11bd0421d47b762c4bd2 (diff) | |
download | ffmpeg-36a87c2dc7f302da3778bd0cff050b5c93a730c7.tar.gz |
avcodec/dds: fix paletted files
Fixes Ticket4664
The changed fate tests lack red/blue shades and thus look correct
either way
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/dds.c')
-rw-r--r-- | libavcodec/dds.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libavcodec/dds.c b/libavcodec/dds.c index 3f6f7f8cb7..566954ddd9 100644 --- a/libavcodec/dds.c +++ b/libavcodec/dds.c @@ -629,9 +629,13 @@ static int dds_decode(AVCodecContext *avctx, void *data, int i; /* Use the first 1024 bytes as palette, then copy the rest. */ bytestream2_get_buffer(gbc, frame->data[1], 256 * 4); - if (HAVE_BIGENDIAN) - for (i = 0; i < 256; i++) - AV_WB32(frame->data[1] + i*4, AV_RL32(frame->data[1] + i*4)); + for (i = 0; i < 256; i++) + AV_WN32(frame->data[1] + i*4, + (frame->data[1][2+i*4]<<0)+ + (frame->data[1][1+i*4]<<8)+ + (frame->data[1][0+i*4]<<16)+ + (frame->data[1][3+i*4]<<24) + ); frame->palette_has_changed = 1; } |