xwdenc: fix monow encoding

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
Paul B Mahol 2012-02-24 04:53:26 +00:00 committed by Anton Khirnov
parent 159a2436b0
commit 99cff417f3

View File

@ -44,7 +44,7 @@ static int xwd_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
{ {
enum PixelFormat pix_fmt = avctx->pix_fmt; enum PixelFormat pix_fmt = avctx->pix_fmt;
uint32_t pixdepth, bpp, bpad, ncolors = 0, lsize, vclass, be = 0; uint32_t pixdepth, bpp, bpad, ncolors = 0, lsize, vclass, be = 0;
uint32_t rgb[3] = { 0 }; uint32_t rgb[3] = { 0 }, bitorder = 0;
uint32_t header_size; uint32_t header_size;
int i, out_size, ret; int i, out_size, ret;
uint8_t *ptr, *buf; uint8_t *ptr, *buf;
@ -133,6 +133,8 @@ static int xwd_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
ncolors = 256; ncolors = 256;
break; break;
case PIX_FMT_MONOWHITE: case PIX_FMT_MONOWHITE:
be = 1;
bitorder = 1;
bpp = 1; bpp = 1;
bpad = 8; bpad = 8;
vclass = XWD_STATIC_GRAY; vclass = XWD_STATIC_GRAY;
@ -164,7 +166,7 @@ static int xwd_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
bytestream_put_be32(&buf, 0); // bitmap x offset bytestream_put_be32(&buf, 0); // bitmap x offset
bytestream_put_be32(&buf, be); // byte order bytestream_put_be32(&buf, be); // byte order
bytestream_put_be32(&buf, 32); // bitmap unit bytestream_put_be32(&buf, 32); // bitmap unit
bytestream_put_be32(&buf, be); // bit-order of image data bytestream_put_be32(&buf, bitorder); // bit-order of image data
bytestream_put_be32(&buf, bpad); // bitmap scan-line pad in bits bytestream_put_be32(&buf, bpad); // bitmap scan-line pad in bits
bytestream_put_be32(&buf, bpp); // bits per pixel bytestream_put_be32(&buf, bpp); // bits per pixel
bytestream_put_be32(&buf, lsize); // bytes per scan-line bytestream_put_be32(&buf, lsize); // bytes per scan-line