diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index a96d3cd5d4..5d0604eea9 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -494,7 +494,8 @@ static int decode_frame(AVCodecContext *avctx, } else if (s->bit_depth == 16 && s->color_type == PNG_COLOR_TYPE_RGB_ALPHA) { avctx->pix_fmt = PIX_FMT_RGBA64BE; - } else if (s->color_type == PNG_COLOR_TYPE_PALETTE) { + } else if ((s->bits_per_pixel == 1 || s->bits_per_pixel == 2 || s->bits_per_pixel == 4 || s->bits_per_pixel == 8) && + s->color_type == PNG_COLOR_TYPE_PALETTE) { avctx->pix_fmt = PIX_FMT_PAL8; } else if (s->bit_depth == 1) { avctx->pix_fmt = PIX_FMT_MONOBLACK;