Commit e49cfbb4 authored by kostya's avatar kostya

Check combined depth and number of components in TIFF decoder, thus eliminating

additional checks for each depth (like 48-bit gray vs. 48-bit RGB)



git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19076 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 66b3f809
......@@ -243,31 +243,28 @@ static int tiff_decode_tag(TiffContext *s, const uint8_t *start, const uint8_t *
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 32:
if(count == 4){
s->avctx->pix_fmt = PIX_FMT_RGBA;
}else{
av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count);
return -1;
}
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=%d, %d components)\n", s->bpp, count);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment