lavf/riffenc: Handle AV_PIX_FMT_MONOBLACK
authorMats Peterson <matsp888@yahoo.com>
Tue, 23 Feb 2016 16:17:12 +0000 (17:17 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 23 Feb 2016 16:58:52 +0000 (17:58 +0100)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/riffenc.c

index 0d958e3..1dd7971 100644 (file)
@@ -241,9 +241,14 @@ void ff_put_bmp_header(AVIOContext *pb, AVCodecContext *enc,
                 avio_w8(pb, 0);
         } else if (raw_pal_avi) {
             int i;
+            enum AVPixelFormat pix_fmt = enc->pix_fmt;
+            if (pix_fmt == AV_PIX_FMT_NONE && enc->bits_per_coded_sample == 1)
+                pix_fmt = AV_PIX_FMT_MONOWHITE;
             for (i = 0; i < 1 << enc->bits_per_coded_sample; i++) {
                 /* Initialize 1 bpp palette to black & white */
-                if (!i && enc->bits_per_coded_sample == 1)
+                if (i == 0 && pix_fmt == AV_PIX_FMT_MONOWHITE)
+                    avio_wl32(pb, 0xffffff);
+                else if (i == 1 && pix_fmt == AV_PIX_FMT_MONOBLACK)
                     avio_wl32(pb, 0xffffff);
                 else
                     avio_wl32(pb, 0);