avcodec/iff: fix artifacts with uncompressed ham ANIMs
authorPaul B Mahol <onemda@gmail.com>
Tue, 17 May 2016 09:01:02 +0000 (11:01 +0200)
committerPaul B Mahol <onemda@gmail.com>
Tue, 17 May 2016 09:02:44 +0000 (11:02 +0200)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavcodec/iff.c

index 9d7dce5596eb2925abe9b0c307ddb2f5fe86ea54..fbb0daec988d20265b2b6a7101ad33bb03a9a69a 100644 (file)
@@ -1366,9 +1366,9 @@ static int decode_frame(AVCodecContext *avctx,
             }
         } else if (avctx->codec_tag == MKTAG('I', 'L', 'B', 'M') || // interleaved
                    avctx->codec_tag == MKTAG('A', 'N', 'I', 'M')) {
+            if (avctx->codec_tag == MKTAG('A', 'N', 'I', 'M'))
+                memcpy(s->video[0], buf, FFMIN(buf_end - buf, s->video_size));
             if (avctx->pix_fmt == AV_PIX_FMT_PAL8 || avctx->pix_fmt == AV_PIX_FMT_GRAY8) {
-                if (avctx->codec_tag == MKTAG('A', 'N', 'I', 'M'))
-                    memcpy(s->video[0], buf, FFMIN(buf_end - buf, s->video_size));
                 for (y = 0; y < avctx->height; y++) {
                     uint8_t *row = &frame->data[0][y * frame->linesize[0]];
                     memset(row, 0, avctx->width);