From patchwork Tue Oct 25 10:19:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 39002 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4a86:b0:9d:28a3:170e with SMTP id fn6csp2712444pzb; Tue, 25 Oct 2022 03:19:33 -0700 (PDT) X-Google-Smtp-Source: AMsMyM68VBT24pvjzie5GnzYPCah1KIqKh81zgRwMWltQmh6Jn3W3j/bqMsgBxwE+D/7a5orp7Pi X-Received: by 2002:a05:6402:2319:b0:45c:4231:de18 with SMTP id l25-20020a056402231900b0045c4231de18mr35810585eda.383.1666693173770; Tue, 25 Oct 2022 03:19:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666693173; cv=none; d=google.com; s=arc-20160816; b=xbCmyW6f5w9vjX6mk40Az2AHi9EMt5YCrgQp3jjnjgQUAf9B2xkVOnokGqsshSmrDk RlO/6f71gIQRHGmrD565KLpSPu2MzcN/OsQTBk9/LwkDuBGZLSI8x1Tgf6Mm7Ikk+EiM +EnIuiF1eFDHT0x0mcnOEHVtOBDRJAFsxBnhgs699vewlb26f7bzo4Va8hkARHAC/odR VyI89mBsoqGd2kExCW7GDjFVgW+OW02AOGt9vrVjW5cQ34785yB3NayM+FDUSXGuNJIM LwSmHxRtZHmeiHkHC6TPa2D07V7e8wm6wAq5jlYPaNHVZEazYIPCBcPieMTpTqNRAO/b KcEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=26emmfz+zbFNQaQDqaxkOd159y7lGxkoKh1PvmaM34U=; b=NRRh8rv6+PHx7ZnW8C77ZjcFugh74mcf8nbwceUfYhZRms1UIS1fE+C0vaY7ksLVWT K8tX2rhrvK7IZ1jG0dX7yJsifjph5MOLpGqAPfAkvbq/arNlhTwK1Ad5TTThKGtgg9u1 BoR1DnizRfuj3O5BFMslVXUSZSOUZtwslaqXykBDr26Zs0RwDJG1LmYur4+KzxvfT0wd 4t0hraSexHWCcEWpaHd4YWszy96VC7Dlgld4vyKlkEqfVJjoY8jqgW8xBNfD2yEJh7YR UFSURfGsl4NWeKB/utg8+GbVVmQkgL3RL1blHcTMgBWHHyFRaxOpN81J1egS5k99v9Th FKfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=2ckNLwPJ; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v9-20020aa7d9c9000000b00461f5bb2b79si2035546eds.458.2022.10.25.03.19.32; Tue, 25 Oct 2022 03:19:33 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=2ckNLwPJ; 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 D77FA68BD1F; Tue, 25 Oct 2022 13:19:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C965268B5E6 for ; Tue, 25 Oct 2022 13:19:22 +0300 (EEST) Received: by mail-lf1-f45.google.com with SMTP id j16so1472815lfe.12 for ; Tue, 25 Oct 2022 03:19:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=JeVXksV3w7sKEB3+ZiEWJOi3lDxgzbMDOljLHnpSkz4=; b=2ckNLwPJblJr6vgI1V08VfzIT6sm+C0dfPkLtEFVBigY4UD6Jw1dHRtYz/YoJfdRMc SYZqwkAp9aA2JhWckUhInHAQY/aLrwwaUWWS8e/RFluti5jtW/5UYn4bvoZcbLKDNgHq V1Cmdc7gBHrGGLO57FVVQ4rctWheBY5AGJz1zBYNmbCIiAEOhNzhk8OgmPGKjOckuz1m kEsYNhPE1+TXirZ7T6V7vagzEdOQZbJnkw8skioO9Ma9Z9wZQOh6fENacfDOsq6oGD34 s9aFrgIhS3R/zO44LQZrCDqSGhirKxjGknnheFxUGPNBoP3iit9BufVXhlDXj0jN5bDr fZbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=JeVXksV3w7sKEB3+ZiEWJOi3lDxgzbMDOljLHnpSkz4=; b=LHTq72iu5ybhO5OUKmzEYl332F6V6cZlYObBda0NTMx6I2YB1Y2hH7T53atKeeOlkS IWr+nu8bIl+3Lzldcjg5UP3VayIHruZtAcGJgNfC6tIH2KVGGIhKmhfWdtNWhEBNvZGZ wJL3+2F1fHB9LGeprgoXN3+uV9cCOsIDaqS7ZSj8IZ8PftCzu2ySv7XHg/yU5UlrI/OF PKZ3Bd7Itdj8vpLd04+sQbTgz08IbXJvzBbmiBIwhbeMi3PwcDgqeCuv1E4GCxUKzvbe hl59nFRwWRE8xuZTQjZ15rtEsLX6JsEH7xzhtAhB72gLrDV2ek3nc+0aLVbjshg+9dzx HbwQ== X-Gm-Message-State: ACrzQf2KHU3j8tRqISqfXt9iKxSbvUwmbQEqwvvpiyeM0rLwNnfpjcA0 dbbumruDGi641vXl91yo5TBT0FURINp7F59z X-Received: by 2002:a05:6512:3150:b0:4ac:d2b4:3e4b with SMTP id s16-20020a056512315000b004acd2b43e4bmr2520583lfi.137.1666693161936; Tue, 25 Oct 2022 03:19:21 -0700 (PDT) Received: from localhost (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id q20-20020ac246f4000000b004a03fd4476esm345346lfo.287.2022.10.25.03.19.21 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 25 Oct 2022 03:19:21 -0700 (PDT) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 25 Oct 2022 13:19:20 +0300 Message-Id: <20221025101920.40198-1-martin@martin.st> X-Mailer: git-send-email 2.37.0 (Apple Git-136) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] swscale: aarch64: Fix yuv2rgb with negative strides X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: i45+JBCWaUHO Treat the 32 bit stride registers as signed. Alternatively, we could make the stride arguments ptrdiff_t instead of int, and changing all of the assembly to operate on these registers with their full 64 bit width, but that's a much larger and more intrusive change (and risks missing some operation, which would clamp the intermediates to 32 bit still). Fixes: https://trac.ffmpeg.org/ticket/9985 Signed-off-by: Martin Storsjö --- libswscale/aarch64/yuv2rgb_neon.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libswscale/aarch64/yuv2rgb_neon.S b/libswscale/aarch64/yuv2rgb_neon.S index f4b220fb60..f341268c5d 100644 --- a/libswscale/aarch64/yuv2rgb_neon.S +++ b/libswscale/aarch64/yuv2rgb_neon.S @@ -118,8 +118,8 @@ .endm .macro increment_yuv422p - add x6, x6, w7, UXTW // srcU += incU - add x13, x13, w14, UXTW // srcV += incV + add x6, x6, w7, SXTW // srcU += incU + add x13, x13, w14, SXTW // srcV += incV .endm .macro compute_rgba r1 g1 b1 a1 r2 g2 b2 a2 @@ -189,8 +189,8 @@ function ff_\ifmt\()_to_\ofmt\()_neon, export=1 st4 {v16.8B,v17.8B,v18.8B,v19.8B}, [x2], #32 subs w8, w8, #16 // width -= 16 b.gt 2b - add x2, x2, w3, UXTW // dst += padding - add x4, x4, w5, UXTW // srcY += paddingY + add x2, x2, w3, SXTW // dst += padding + add x4, x4, w5, SXTW // srcY += paddingY increment_\ifmt subs w1, w1, #1 // height -= 1 b.gt 1b