From 8a4284adbf180c8bf3f649d6dd4281565e0dd015 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Tue, 30 Oct 2012 15:28:13 +0000 Subject: [PATCH] ff: fix case where image does not have alpha channel Signed-off-by: Paul B Mahol --- libavcodec/iff.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavcodec/iff.c b/libavcodec/iff.c index 3940a0cdae..bc88a8e45b 100644 --- a/libavcodec/iff.c +++ b/libavcodec/iff.c @@ -330,8 +330,16 @@ static av_cold int decode_init(AVCodecContext *avctx) avctx->pix_fmt = (avctx->bits_per_coded_sample < 8) || (avctx->extradata_size >= 2 && palette_size) ? AV_PIX_FMT_PAL8 : AV_PIX_FMT_GRAY8; } else if (avctx->bits_per_coded_sample <= 32) { - if (avctx->codec_tag != MKTAG('D','E','E','P')) - avctx->pix_fmt = AV_PIX_FMT_BGR32; + if (avctx->codec_tag != MKTAG('D','E','E','P')) { + if (avctx->bits_per_coded_sample == 24) { + avctx->pix_fmt = AV_PIX_FMT_RGB0; + } else if (avctx->bits_per_coded_sample == 32) { + avctx->pix_fmt = AV_PIX_FMT_BGR32; + } else { + av_log_ask_for_sample(avctx, "unknown bits_per_coded_sample\n"); + return AVERROR_PATCHWELCOME; + } + } } else { return AVERROR_INVALIDDATA; } -- GitLab