| | 217 | switch(s->bpp*10 + s->bppcount){ |
| | 218 | case 11: |
| | 219 | s->avctx->pix_fmt = PIX_FMT_MONOBLACK; |
| | 220 | break; |
| | 221 | case 81: |
| | 222 | s->avctx->pix_fmt = PIX_FMT_PAL8; |
| | 223 | break; |
| | 224 | case 243: |
| | 225 | s->avctx->pix_fmt = PIX_FMT_RGB24; |
| | 226 | break; |
| | 227 | case 161: |
| | 228 | s->avctx->pix_fmt = PIX_FMT_GRAY16BE; |
| | 229 | break; |
| | 230 | case 324: |
| | 231 | s->avctx->pix_fmt = PIX_FMT_RGBA; |
| | 232 | break; |
| | 233 | case 483: |
| | 234 | s->avctx->pix_fmt = s->le ? PIX_FMT_RGB48LE : PIX_FMT_RGB48BE; |
| | 235 | break; |
| | 236 | default: |
| | 237 | av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, s->bppcount); |
| | 238 | return -1; |
| | 239 | } |
| | 240 | if(s->width != s->avctx->width || s->height != s->avctx->height){ |
| | 241 | if(avcodec_check_dimensions(s->avctx, s->width, s->height)) |
| | 242 | return -1; |
| | 243 | avcodec_set_dimensions(s->avctx, s->width, s->height); |
| | 244 | } |
| | 245 | if(s->picture.data[0]) |
| | 246 | s->avctx->release_buffer(s->avctx, &s->picture); |
| | 247 | if(s->avctx->get_buffer(s->avctx, &s->picture) < 0){ |
| | 248 | av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed\n"); |
| | 249 | return -1; |
| | 250 | } |
| | 251 | if(s->bpp == 8 && s->picture.data[1]){ |
| | 252 | /* make default grayscale pal */ |
| | 253 | pal = (uint32_t *) s->picture.data[1]; |
| | 254 | for(i = 0; i < 256; i++) |
| | 255 | pal[i] = i * 0x010101; |
| | 256 | } |
| | 257 | return 0; |
| | 258 | } |
| | 259 | |
| 284 | | switch(s->bpp*10 + count){ |
| 285 | | case 11: |
| 286 | | s->avctx->pix_fmt = PIX_FMT_MONOBLACK; |
| 287 | | break; |
| 288 | | case 81: |
| 289 | | s->avctx->pix_fmt = PIX_FMT_PAL8; |
| 290 | | break; |
| 291 | | case 243: |
| 292 | | s->avctx->pix_fmt = PIX_FMT_RGB24; |
| 293 | | break; |
| 294 | | case 161: |
| 295 | | s->avctx->pix_fmt = PIX_FMT_GRAY16BE; |
| 296 | | break; |
| 297 | | case 324: |
| 298 | | s->avctx->pix_fmt = PIX_FMT_RGBA; |
| 299 | | break; |
| 300 | | case 483: |
| 301 | | s->avctx->pix_fmt = s->le ? PIX_FMT_RGB48LE : PIX_FMT_RGB48BE; |
| 302 | | break; |
| 303 | | default: |
| 304 | | av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count); |
| | 332 | if(init_image(s)) |
| 307 | | if(s->width != s->avctx->width || s->height != s->avctx->height){ |
| 308 | | if(avcodec_check_dimensions(s->avctx, s->width, s->height)) |
| 309 | | return -1; |
| 310 | | avcodec_set_dimensions(s->avctx, s->width, s->height); |
| 311 | | } |
| 312 | | if(s->picture.data[0]) |
| 313 | | s->avctx->release_buffer(s->avctx, &s->picture); |
| 314 | | if(s->avctx->get_buffer(s->avctx, &s->picture) < 0){ |
| 315 | | av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed\n"); |
| | 340 | s->bpp *= value; |
| | 341 | s->bppcount = value; |
| | 342 | if(init_image(s)) |