From 09905c412ddb2dc3dd24e5741f64a59c7610e8ea Mon Sep 17 00:00:00 2001 From: Kevin Wheatley Date: Tue, 3 Jan 2017 16:31:16 +0000 Subject: [PATCH] libavcodec/exr: Fix blank output when data window != display window 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 --- libavcodec/exr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/exr.c b/libavcodec/exr.c index 78527270d1..2c213b394c 100644 --- a/libavcodec/exr.c +++ b/libavcodec/exr.c @@ -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];