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;
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) {
- av_log(avctx, AV_LOG_ERROR, "colormap expected\n");
- return -1;
- }
if (maplength % 3 || maplength > 768) {
av_log(avctx, AV_LOG_WARNING, "invalid colormap length\n");
return -1;