[FFmpeg-cvslog] libavcodec/exr: Fix blank output when data window != display window

Kevin Wheatley git at videolan.org
Fri Jan 6 19:11:37 EET 2017


ffmpeg | branch: master | Kevin Wheatley <kevin.j.wheatley at gmail.com> | Tue Jan  3 16:31:16 2017 +0000| [09905c412ddb2dc3dd24e5741f64a59c7610e8ea] | committer: Paul B Mahol

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 <kevin.j.wheatley at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=09905c412ddb2dc3dd24e5741f64a59c7610e8ea
---

 libavcodec/exr.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index 7852727..2c213b3 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];



More information about the ffmpeg-cvslog mailing list