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) Originally committed as revision 19076 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
68e7f4828d
commit
9706d1c766
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user