[FFmpeg-cvslog] avcodec/interplayvideo: fix regression causing artifacts

Paul B Mahol git at videolan.org
Thu Jun 29 17:44:25 EEST 2017


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Thu Jun 29 16:42:14 2017 +0200| [3821c004e2607fb4450f1635ebaf6a4b7d5aeef9] | committer: Paul B Mahol

avcodec/interplayvideo: fix regression causing artifacts

Signed-off-by: Paul B Mahol <onemda at gmail.com>

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

 libavcodec/interplayvideo.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c
index 690bc76901..56ce38b042 100644
--- a/libavcodec/interplayvideo.c
+++ b/libavcodec/interplayvideo.c
@@ -1044,12 +1044,14 @@ static void ipvideo_decode_format_10_opcodes(IpvideoContext *s, AVFrame *frame)
             for (x = 0; x < s->avctx->width; x += 8) {
                 s->pixel_ptr = s->cur_decode_frame->data[0] + x + y * s->cur_decode_frame->linesize[0];
 
-                while (skip <= 0 && bytestream2_get_bytes_left(&skip_map_ptr) > 1)  {
+                while (skip <= 0)  {
                     if (skip != -0x8000 && skip) {
                         opcode = bytestream2_get_le16(&decoding_map_ptr);
                         ipvideo_format_10_passes[pass](s, frame, opcode);
                         break;
                     }
+                    if (bytestream2_get_bytes_left(&skip_map_ptr) < 2)
+                        return;
                     skip = bytestream2_get_le16(&skip_map_ptr);
                 }
                 skip *= 2;



More information about the ffmpeg-cvslog mailing list