diff --git a/libavcodec/xwddec.c b/libavcodec/xwddec.c index 387b697491..c43724e538 100644 --- a/libavcodec/xwddec.c +++ b/libavcodec/xwddec.c @@ -155,10 +155,12 @@ static int xwd_decode_frame(AVCodecContext *avctx, void *data, switch (vclass) { case XWD_STATIC_GRAY: case XWD_GRAY_SCALE: - if (bpp != 1) + if (bpp != 1 && bpp != 8 || bpp != pixdepth) return AVERROR_INVALIDDATA; if (pixdepth == 1) avctx->pix_fmt = AV_PIX_FMT_MONOWHITE; + else if (pixdepth == 8) + avctx->pix_fmt = AV_PIX_FMT_GRAY8; break; case XWD_STATIC_COLOR: case XWD_PSEUDO_COLOR: