exr: simplify filling channel_buffer[]

Signed-off-by: Paul B Mahol <onemda@gmail.com>
pull/10/head
Paul B Mahol 12 years ago
parent 645f96f129
commit 74a78bfe6c
  1. 21
      libavcodec/exr.c

@ -295,23 +295,18 @@ static int decode_block(AVCodecContext *avctx, void *tdata,
}
}
if (s->compr != EXR_RAW && data_size < uncompressed_size) {
if (data_size < uncompressed_size) {
predictor(td->tmp, uncompressed_size);
reorder_pixels(td->tmp, td->uncompressed_data, uncompressed_size);
channel_buffer[0] = td->uncompressed_data + xdelta * s->channel_offsets[0];
channel_buffer[1] = td->uncompressed_data + xdelta * s->channel_offsets[1];
channel_buffer[2] = td->uncompressed_data + xdelta * s->channel_offsets[2];
if (s->channel_offsets[3] >= 0)
channel_buffer[3] = td->uncompressed_data + xdelta * s->channel_offsets[3];
} else {
channel_buffer[0] = src + xdelta * s->channel_offsets[0];
channel_buffer[1] = src + xdelta * s->channel_offsets[1];
channel_buffer[2] = src + xdelta * s->channel_offsets[2];
if (s->channel_offsets[3] >= 0)
channel_buffer[3] = src + xdelta * s->channel_offsets[3];
src = td->uncompressed_data;
}
channel_buffer[0] = src + xdelta * s->channel_offsets[0];
channel_buffer[1] = src + xdelta * s->channel_offsets[1];
channel_buffer[2] = src + xdelta * s->channel_offsets[2];
if (s->channel_offsets[3] >= 0)
channel_buffer[3] = src + xdelta * s->channel_offsets[3];
ptr = p->data[0] + line * p->linesize[0];
for (i = 0; i < s->scan_lines_per_block && line + i <= s->ymax; i++, ptr += p->linesize[0]) {
const uint8_t *r, *g, *b, *a;

Loading…
Cancel
Save