Browse Source

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>
tags/n2.8
Michael Niedermayer 10 years ago
parent
commit
36a87c2dc7
3 changed files with 9 additions and 5 deletions
  1. +7
    -3
      libavcodec/dds.c
  2. +1
    -1
      tests/ref/fate/dds-pal
  3. +1
    -1
      tests/ref/fate/dds-pal-ati

+ 7
- 3
libavcodec/dds.c View File

@@ -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;
}


+ 1
- 1
tests/ref/fate/dds-pal View File

@@ -1,2 +1,2 @@
#tb 0: 1/25
0, 0, 0, 1, 65536, 0xbffee5cd
0, 0, 0, 1, 65536, 0x4287e5cd

+ 1
- 1
tests/ref/fate/dds-pal-ati View File

@@ -1,2 +1,2 @@
#tb 0: 1/25
0, 0, 0, 1, 16384, 0x23068060
0, 0, 0, 1, 16384, 0x6ac18060

Loading…
Cancel
Save