comparison tiff.c @ 9784:2142607ddc2e libavcodec

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)
author kostya
date Tue, 02 Jun 2009 15:31:51 +0000
parents 8074df653392
children 58d29c191e5a
comparison
equal deleted inserted replaced
9783:21f3bbb20e42 9784:2142607ddc2e
241 break; 241 break;
242 default: 242 default:
243 s->bpp = -1; 243 s->bpp = -1;
244 } 244 }
245 } 245 }
246 switch(s->bpp){ 246 if(count > 4){
247 case 1: 247 av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count);
248 return -1;
249 }
250 switch(s->bpp*10 + count){
251 case 11:
248 s->avctx->pix_fmt = PIX_FMT_MONOBLACK; 252 s->avctx->pix_fmt = PIX_FMT_MONOBLACK;
249 break; 253 break;
250 case 8: 254 case 81:
251 s->avctx->pix_fmt = PIX_FMT_PAL8; 255 s->avctx->pix_fmt = PIX_FMT_PAL8;
252 break; 256 break;
253 case 24: 257 case 243:
254 s->avctx->pix_fmt = PIX_FMT_RGB24; 258 s->avctx->pix_fmt = PIX_FMT_RGB24;
255 break; 259 break;
256 case 16: 260 case 161:
257 if(count == 1){ 261 s->avctx->pix_fmt = PIX_FMT_GRAY16BE;
258 s->avctx->pix_fmt = PIX_FMT_GRAY16BE; 262 break;
259 }else{ 263 case 324:
260 av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%i)\n", s->bpp); 264 s->avctx->pix_fmt = PIX_FMT_RGBA;
261 return -1; 265 break;
262 } 266 case 483:
263 break; 267 s->avctx->pix_fmt = s->le ? PIX_FMT_RGB48LE : PIX_FMT_RGB48BE;
264 case 32:
265 if(count == 4){
266 s->avctx->pix_fmt = PIX_FMT_RGBA;
267 }else{
268 av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count);
269 return -1;
270 }
271 break; 268 break;
272 default: 269 default:
273 av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count); 270 av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count);
274 return -1; 271 return -1;
275 } 272 }