From patchwork Sun Jun 30 09:04:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= X-Patchwork-Id: 50216 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:cc64:0:b0:482:c625:d099 with SMTP id k4csp1176099vqv; Sun, 30 Jun 2024 02:04:50 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUAABmfpIs3qq8Giw71/WG4qxsF+wrXWD1L3YEBg5lE7NLvbmTXsr0vKPEvLbOO/ZZhJl90TAxgELPtffNX/CR/+XbfGFd/OBsPfg== X-Google-Smtp-Source: AGHT+IHM3WXJx3q5uZLPMawYhmMcY+Q8n70apmzlGXA5USliWeO6f4fEV84UV5UDkubpLa1C31qr X-Received: by 2002:a17:906:3747:b0:a6f:6029:998f with SMTP id a640c23a62f3a-a751444daf3mr180510266b.46.1719738290544; Sun, 30 Jun 2024 02:04:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1719738290; cv=none; d=google.com; s=arc-20160816; b=JXQIDfnCcRCY8T6vRf+ronY/FkM+myB/LpKine1M3GuUGvIPpW7cdwrdoVc4TbCD8v Z9W/R/8yigHsOrgvcLyzrOBQNmiSoozTAR6oGbgtPpZ+TU08QpLzPkhLq8gXdfpg9xwQ 9YNHJOwkfs6x9rnMctwN0T8gF4hb+PrR6eBKDPNbrsotGCg1/X7jPAdzNlvJC3irS9me vzt5HV2QIe4fc0S4TfCe1GePZQ7bz9ohWr9R2fi0evmdenvQPVesbWlL4SJxFPFq/lax SNJ9IX+DJZzO051M3Z7n3ycp48wG0eDGnGCBURAj1FMpnwf9YhsoJTZ0G2Cbb5LJLzpR FOeA== 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 :delivered-to; bh=dIUgPZcgGCFgPzTwCXK7b5VOklD4hUE6/Vvh933blvo=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=btYR3ufTh9nMdl7qFMBe4CPsQp61/Kyflg98E1wZn4lBljIMyA1eZu/ltaRbb69BHA lVBA2FPvCnmIIMJNUgeXt6zkLfhqy4EQSEjKeoSBcB2XakdLmu4ONWrNJYXE5u1c2yco uin6xtYdiTtzEqq4HmGHsLpR2ab1/0rd1dTFcyRpOyyhcrSi0O3SNMnLe4AY4d6Hyr72 dOW/TQvI/EMZ0NBeerg3jvrvi19oMAtM0O04EIuOn0ZPGk2jUkF4Gn3ukuWas7GaKQrn s9kuHwQSrGkQil0SKtqHMRjNlLNlDfGRnnPfOwyV+1PpeDgR/+D84S5EALzr1XhHeusv lfBA==; dara=google.com ARC-Authentication-Results: i=1; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a72aaef665bsi256471966b.179.2024.06.30.02.04.50; Sun, 30 Jun 2024 02:04:50 -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; 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 C0AE368D6A6; Sun, 30 Jun 2024 12:04:39 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E40968C4B3 for ; Sun, 30 Jun 2024 12:04:31 +0300 (EEST) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 7071DC0137 for ; Sun, 30 Jun 2024 12:04:30 +0300 (EEST) From: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= To: ffmpeg-devel@ffmpeg.org Date: Sun, 30 Jun 2024 12:04:28 +0300 Message-ID: <20240630090430.65753-1-remi@remlab.net> X-Mailer: git-send-email 2.45.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] lavc/vc1dsp: fix potential overflow in R-V V inv_trans_4 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: HTL6KJQeVUDq Judging by the coefficients, the last round of add/sub can overflow to 17 bits with a very small probability just as with the 8-point transform. This is not observed under FATE, but better safe than sorry. --- libavcodec/riscv/vc1dsp_rvv.S | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libavcodec/riscv/vc1dsp_rvv.S b/libavcodec/riscv/vc1dsp_rvv.S index fa4bef2b8b..bf7864227a 100644 --- a/libavcodec/riscv/vc1dsp_rvv.S +++ b/libavcodec/riscv/vc1dsp_rvv.S @@ -202,13 +202,14 @@ func ff_vc1_inv_trans_4_rvv, zve32x vmul.vx v20, v1, t2 vadd.vv v26, v14, v16 # t3 vsub.vv v27, v18, v20 # t4 - vadd.vv v0, v24, v26 - vsub.vv v1, v25, v27 - vadd.vv v2, v25, v27 - vsub.vv v3, v24, v26 - .irp n,0,1,2,3 - vssra.vx v\n, v\n, t1 # + 4 >> 3 or + 64 >> 7 - .endr + vwadd.vv v8, v24, v26 + vwsub.vv v10, v25, v27 + vwadd.vv v12, v25, v27 + vwsub.vv v14, v24, v26 + vnclip.wx v0, v8, t1 + vnclip.wx v1, v10, t1 + vnclip.wx v2, v12, t1 + vnclip.wx v3, v14, t1 jr t0 endfunc