diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
index f371dc6..c7aee32 100644
|
a
|
b
|
static int tiff_unpack_strip(TiffContext *s, uint8_t* dst, int stride, const uin |
| 173 | 173 | switch(s->compr){ |
| 174 | 174 | case TIFF_RAW: |
| 175 | 175 | if (!s->fill_order) { |
| 176 | | memcpy(dst, src, width); |
| | 176 | if (s->bpp == 2) { |
| | 177 | int i; |
| | 178 | for(i = 0; i < width; i++) { |
| | 179 | dst[i*4+0] = src[i] >> 6; |
| | 180 | dst[i*4+1] = src[i] >> 4 & 0x3; |
| | 181 | dst[i*4+2] = src[i] >> 2 & 0x3; |
| | 182 | dst[i*4+3] = src[i] & 0x3; |
| | 183 | } |
| | 184 | } else if (s->bpp == 4) { |
| | 185 | int i; |
| | 186 | for(i = 0; i < width; i++) { |
| | 187 | dst[i*2+0] = src[i] >> 4; |
| | 188 | dst[i*2+1] = src[i] & 0xF; |
| | 189 | } |
| | 190 | } else |
| | 191 | memcpy(dst, src, width); |
| | 192 | } |
| 177 | 193 | } else { |
| 178 | 194 | int i; |
| 179 | 195 | for (i = 0; i < width; i++) |
| … |
… |
static int init_image(TiffContext *s) |
| 227 | 243 | case 11: |
| 228 | 244 | s->avctx->pix_fmt = PIX_FMT_MONOBLACK; |
| 229 | 245 | break; |
| | 246 | case 21: |
| | 247 | case 41: |
| 230 | 248 | case 81: |
| 231 | 249 | s->avctx->pix_fmt = PIX_FMT_PAL8; |
| 232 | 250 | break; |
| … |
… |
static int init_image(TiffContext *s) |
| 248 | 266 | s->bpp, s->bppcount); |
| 249 | 267 | return AVERROR_INVALIDDATA; |
| 250 | 268 | } |
| | 269 | if (s->bpp == 2 && s->compr != TIFF_RAW || s->bpp == 4 && s->compr != TIFF_RAW) { |
| | 270 | av_log(s->avctx, AV_LOG_ERROR, "2/4bpp with compression is not supported\n"); |
| | 271 | return AVERROR_INVALIDDATA; |
| | 272 | } |
| 251 | 273 | if (s->width != s->avctx->width || s->height != s->avctx->height) { |
| 252 | 274 | if ((ret = av_image_check_size(s->width, s->height, 0, s->avctx)) < 0) |
| 253 | 275 | return ret; |