exr: simplify filling channel_buffer[]

Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
Paul B Mahol 2013-02-24 12:28:22 +00:00
parent 645f96f129
commit 74a78bfe6c

View File

@ -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;