]> git.sesse.net Git - ffmpeg/commitdiff
libavcodec/exr: Fix blank output when data window != display window
authorKevin Wheatley <kevin.j.wheatley@gmail.com>
Tue, 3 Jan 2017 16:31:16 +0000 (16:31 +0000)
committerPaul B Mahol <onemda@gmail.com>
Fri, 6 Jan 2017 17:01:12 +0000 (18:01 +0100)
looks like there is a bug in commit
1a08758e7c4e14a9ea8d2fef6c33ad411b2d3c40 relating to the handling of
ptr in decode_frame after decode_block is called, before this commit
ptr would have been incremented for each line in the data window, now
after the commit it is left at the start of the first included line
rather than the line after the data window then the code sets the
remaining lines to 0 and thus the whole image is over written.

Fix by adjusting ptr to the correct line after decode_block returns

Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com>
libavcodec/exr.c

index 78527270d1e5301cd2a25b3cb0c340ebf8e0e924..2c213b394cf78b749fed6aec2b127b376b93a68b 100644 (file)
@@ -1729,6 +1729,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
     avctx->execute2(avctx, decode_block, s->thread_data, NULL, nb_blocks);
 
     // Zero out the end if ymax+1 is not h
+    ptr = picture->data[0] + ((s->ymax+1) * picture->linesize[0]);
     for (y = s->ymax + 1; y < avctx->height; y++) {
         memset(ptr, 0, out_line_size);
         ptr += picture->linesize[0];