From patchwork Wed May 29 22:15:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Tomas_H=C3=A4rdin?= X-Patchwork-Id: 49373 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:8f0d:0:b0:460:55fa:d5ed with SMTP id i13csp953514vqu; Wed, 29 May 2024 15:15:38 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWV/00HQ5LSMOnTb5MuSZnid0zBMDQTWyYfBBcCmkXMxX/jzjysRSp2ewTfsRrto2mN4rbYma2mI0KscuoMraspvcs3WM9qYLBSFA== X-Google-Smtp-Source: AGHT+IFPlC4BJh1ji3XaGmjJk5D7KjjaGYw87d9rJ+J2j+uuWigtGXifsKYtyDFENdT3AVE1u9FM X-Received: by 2002:a17:907:bb8a:b0:a5a:89cf:489a with SMTP id a640c23a62f3a-a65e9102b36mr26603866b.4.1717020938034; Wed, 29 May 2024 15:15:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1717020938; cv=none; d=google.com; s=arc-20160816; b=SOPfB0NBJbrZRvGvhu7xM/jTz70WknyqC+CdxWYRQzfZUfsF7aBhoVa18kQb3tWvp0 5UhB70k+/NFFX2Kh0/I/cxTatXK/ehdIL/5uRwjurPVe03IgDM/tecWbvcwvToio5//Z xKhwfr7j3SNlxZVYwDLR3ZETU+lWQfDcntbAVtyhATFxwjBP+exB1A5OIVpty1vmogoA KmlBf4xMPwI7QPA+IKajVHGX1WWay74CQMnS1QzdbAKG/9eqKLOpfRwgMgAOsbP/Gn5n 34Fwi248jS6whA+OI7l2Pte+HpcUQvVcB8yeIPh4+sF14JsYcgKGooNH0XwGfmY9IqVY Gtaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:user-agent:references:in-reply-to:date:to:from :message-id:delivered-to; bh=Q2hLIAPbITt8MIipkIoI+aY7DRtU2sSRjUvP26Y6Quk=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=RW+tbODblcs7Hyhx1hKfz1DdpcWihkZADmiWbBAY/55l2jNh9k5ZUXLa//5FF6OQ+j aiefykNS4IvEphT4RgVSgidqjplcolJSrTO/EO4LW97uHNqvEYuc12sdNc4OPnYW7b4z IWffWkBofVHQTLOL37PWsWNsf71kn+SxPX2PSu9553ni5bcoiR0RH5cEI3SsuXrsIyAg CerWz4MZyVQqouQyFHoGILEdCY8MKBjY2erzrS5wgdpfzEFryAldWynVGL2IdM1Mg3cr V4IH2HYah7FXAM0QO8kLZQdbP/41uk7TgDUfEA9jQa22Lux5YkQAtHmwjQPJASR/bIFu XsAw==; 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-a633c3fa442si246036966b.540.2024.05.29.15.15.37; Wed, 29 May 2024 15:15:38 -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 AF49368D3C5; Thu, 30 May 2024 01:15:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from glom.nmugroup.com (glom.nmugroup.com [193.183.80.6]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EE19368C0E9 for ; Thu, 30 May 2024 01:15:28 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by glom.nmugroup.com (Postfix) with ESMTP id 5F60054292DE for ; Thu, 30 May 2024 00:15:28 +0200 (CEST) Received: from debian.lan (unknown [IPv6:2a00:66c0:a::72c]) (Authenticated sender: git01) by glom.nmugroup.com (Postfix) with ESMTPSA id 2171C5429274 for ; Thu, 30 May 2024 00:15:27 +0200 (CEST) Message-ID: From: Tomas =?iso-8859-1?q?H=E4rdin?= To: FFmpeg development discussions and patches Date: Thu, 30 May 2024 00:15:27 +0200 In-Reply-To: <27e5f614496e729f68326a31c3ac70d5923cfa97.camel@haerdin.se> References: <27e5f614496e729f68326a31c3ac70d5923cfa97.camel@haerdin.se> User-Agent: Evolution 3.46.4-2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/5] lavu/mathematics: Return early if either a or b is zero 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: fb9hbpuYuAE1 This doesn't really fix anything, it just makes the value analysis easier. I don't feel strongly about it. /Tomas From cf9c56d7d4d7325d51ba6d99259431be7fca1f67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomas=20H=C3=A4rdin?= Date: Mon, 20 May 2024 14:46:01 +0200 Subject: [PATCH 5/5] lavu/mathematics: Return early if either a or b is zero This removes the need to check b further down --- libavutil/mathematics.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavutil/mathematics.c b/libavutil/mathematics.c index 61aeb7c029..06f6e61e78 100644 --- a/libavutil/mathematics.c +++ b/libavutil/mathematics.c @@ -71,6 +71,9 @@ int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd) rnd -= AV_ROUND_PASS_MINMAX; } + if (a == 0 || b == 0) + return 0; + if (a < 0) return -(uint64_t)av_rescale_rnd(-FFMAX(a, -INT64_MAX), b, c, rnd ^ ((rnd >> 1) & 1)); @@ -85,7 +88,7 @@ int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd) else { int64_t ad = a / c; int64_t a2 = (a % c * b + r) / c; - if (ad >= INT32_MAX && b && ad > (INT64_MAX - a2) / b) + if (ad >= INT32_MAX && ad > (INT64_MAX - a2) / b) return INT64_MIN; return ad * b + a2; } -- 2.39.2