s->bpp = -1;
}
}
- switch(s->bpp){
- case 1:
+ if(count > 4){
+ av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count);
+ return -1;
+ }
+ switch(s->bpp*10 + count){
+ case 11:
s->avctx->pix_fmt = PIX_FMT_MONOBLACK;
break;
- case 8:
+ case 81:
s->avctx->pix_fmt = PIX_FMT_PAL8;
break;
- case 24:
+ case 243:
s->avctx->pix_fmt = PIX_FMT_RGB24;
break;
- case 16:
- if(count == 1){
- s->avctx->pix_fmt = PIX_FMT_GRAY16BE;
- }else{
- av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%i)\n", s->bpp);
- return -1;
- }
+ case 161:
+ s->avctx->pix_fmt = PIX_FMT_GRAY16BE;
+ break;
+ case 324:
+ s->avctx->pix_fmt = PIX_FMT_RGBA;
+ break;
+ case 483:
+ s->avctx->pix_fmt = s->le ? PIX_FMT_RGB48LE : PIX_FMT_RGB48BE;
break;
default:
- av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%i)\n", s->bpp);
+ av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count);
return -1;
}
if(s->width != s->avctx->width || s->height != s->avctx->height){
NULL,
tiff_end,
decode_frame,
- 0,
+ CODEC_CAP_DR1,
NULL,
.long_name = NULL_IF_CONFIG_SMALL("TIFF image"),
};