diff --git a/libavcodec/sunrast.c b/libavcodec/sunrast.c index 3e1cea6c36..c33265dc84 100644 --- a/libavcodec/sunrast.c +++ b/libavcodec/sunrast.c @@ -93,7 +93,7 @@ static int sunrast_decode_frame(AVCodecContext *avctx, void *data, avctx->pix_fmt = PIX_FMT_MONOWHITE; break; case 8: - avctx->pix_fmt = PIX_FMT_PAL8; + avctx->pix_fmt = maplength ? PIX_FMT_PAL8 : PIX_FMT_GRAY8; break; case 24: avctx->pix_fmt = (type == RT_FORMAT_RGB) ? PIX_FMT_RGB24 : PIX_FMT_BGR24; @@ -121,7 +121,7 @@ static int sunrast_decode_frame(AVCodecContext *avctx, void *data, if (depth != 8 && maplength) { av_log(avctx, AV_LOG_WARNING, "useless colormap found or file is corrupted, trying to recover\n"); - } else if (depth == 8) { + } else if (maplength) { unsigned int len = maplength / 3; if (!maplength) {