Set palette for 1bit pcx.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Fri, 11 Nov 2011 17:36:41 +0000 (18:36 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Fri, 11 Nov 2011 17:40:19 +0000 (18:40 +0100)
The stored palette contains zeroes only.
Fixes ticket #637.

libavcodec/pcx.c

index b2d433a..851b205 100644 (file)
@@ -224,6 +224,9 @@ static int pcx_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
 
     if (nplanes == 1 && bits_per_pixel == 8) {
         pcx_palette(&buf, (uint32_t *) p->data[1], 256);
+    } else if (bits_per_pixel * nplanes == 1) {
+        AV_WN32A(p->data[1]  , 0xFF000000);
+        AV_WN32A(p->data[1]+4, 0xFFFFFFFF);
     } else if (bits_per_pixel < 8) {
         const uint8_t *palette = bufstart+16;
         pcx_palette(&palette, (uint32_t *) p->data[1], 16);