aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2013-02-24 12:28:22 +0000
committerPaul B Mahol <onemda@gmail.com>2013-02-24 14:27:39 +0000
commit74a78bfe6c1bc0f5b9d34979fc081dcb75c0ae03 (patch)
treeedc3a4933d0f73a0a6737faedbcb19c66fffe7b2 /libavcodec
parent645f96f129ad9d25dd4cad998b6d15de8f9c4765 (diff)
downloadffmpeg-74a78bfe6c1bc0f5b9d34979fc081dcb75c0ae03.tar.gz
exr: simplify filling channel_buffer[]
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/exr.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index 83d1cc99f7..59144a2d8d 100644
--- a/libavcodec/exr.c
+++ b/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;