From patchwork Mon Nov 28 08:05:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Verkamp X-Patchwork-Id: 1580 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.90.1 with SMTP id o1csp1673680vsb; Mon, 28 Nov 2016 00:05:28 -0800 (PST) X-Received: by 10.194.111.196 with SMTP id ik4mr17783755wjb.90.1480320328167; Mon, 28 Nov 2016 00:05:28 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j83si24762188wmj.10.2016.11.28.00.05.27; Mon, 28 Nov 2016 00:05:28 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 65712689B4A; Mon, 28 Nov 2016 10:05:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from oak.drv.nu (oak.drv.nu [71.19.156.27]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B4D2E689A28 for ; Mon, 28 Nov 2016 10:05:13 +0200 (EET) Received: from hickory.drv.nu (unknown [IPv6:2600:8800:1500:b2:c0ba:b003:7b5b:5747]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: daniel@drv.nu) by oak.drv.nu (Postfix) with ESMTPSA id CEBD2103049; Mon, 28 Nov 2016 01:05:16 -0700 (MST) From: Daniel Verkamp To: ffmpeg-devel@ffmpeg.org Date: Mon, 28 Nov 2016 01:05:06 -0700 Message-Id: <20161128080506.5713-1-daniel@drv.nu> X-Mailer: git-send-email 2.11.0.rc2 Subject: [FFmpeg-devel] [PATCH] msrle: implement vertical offset in 4-bit RLE X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Daniel Verkamp MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The delta escape (2) is supposed to work the same in 4-bit RLE as in 8-bit RLE. This is documented in the MSDN Bitmap Compression page: https://msdn.microsoft.com/en-us/library/windows/desktop/dd183383(v=vs.85).aspx The unchecked modification of line is safe, since the loop condition (line >= 0) will check it before any pixel data is written. Fixes ticket #5153 (output now matches ImageMagick for the provided sample). Signed-off-by: Daniel Verkamp --- libavcodec/msrledec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/msrledec.c b/libavcodec/msrledec.c index 805802ae18..f0cbde67ff 100644 --- a/libavcodec/msrledec.c +++ b/libavcodec/msrledec.c @@ -63,7 +63,7 @@ static int msrle_decode_pal4(AVCodecContext *avctx, AVFrame *pic, stream_byte = bytestream2_get_byte(gb); pixel_ptr += stream_byte; stream_byte = bytestream2_get_byte(gb); - avpriv_request_sample(avctx, "Unused stream byte %X", stream_byte); + line -= stream_byte; } else { // copy pixels from encoded stream odd_pixel = stream_byte & 1;