diff options
author | Paul B Mahol <onemda@gmail.com> | 2012-10-30 15:28:13 +0000 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2012-10-30 15:28:13 +0000 |
commit | 8a4284adbf180c8bf3f649d6dd4281565e0dd015 (patch) | |
tree | 18657b2e6a1fc8e7776731dbe896d4af2185be21 /libavcodec | |
parent | 6f5f7f705d10e639cf047be216a94de1e39a96e9 (diff) | |
download | ffmpeg-8a4284adbf180c8bf3f649d6dd4281565e0dd015.tar.gz |
ff: fix case where image does not have alpha channel
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/iff.c | 12 |
1 files 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; } |