|
|
@@ -553,13 +553,16 @@ static int decode_frame_ilbm(AVCodecContext *avctx, |
|
|
|
memcpy(row, buf, FFMIN(avctx->width, buf_end - buf)); |
|
|
|
buf += avctx->width + (avctx->width % 2); // padding if odd |
|
|
|
} |
|
|
|
} else { // IFF-PBM: HAM to PIX_FMT_BGR32 |
|
|
|
} else if (s->ham) { // IFF-PBM: HAM to PIX_FMT_BGR32 |
|
|
|
for (y = 0; y < avctx->height; y++) { |
|
|
|
uint8_t *row = &s->frame.data[0][ y*s->frame.linesize[0] ]; |
|
|
|
memcpy(s->ham_buf, buf, FFMIN(avctx->width, buf_end - buf)); |
|
|
|
buf += avctx->width + (avctx->width & 1); // padding if odd |
|
|
|
decode_ham_plane32((uint32_t *) row, s->ham_buf, s->ham_palbuf, s->planesize); |
|
|
|
} |
|
|
|
} else { |
|
|
|
av_log_ask_for_sample(avctx, "unsupported bpp\n"); |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|