From patchwork Sat Oct 5 22:38:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Plowman X-Patchwork-Id: 52076 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:938f:0:b0:48e:c0f8:d0de with SMTP id z15csp1185177vqg; Sat, 5 Oct 2024 15:59:06 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWwRW9v+NHgwMnvTxLExH12x6f0qzYPqxa1Bx7kqHrpKt26g8KJQrq4qJBtB8MbCKKNNHskCaLxRh4XSgc8kYsq@gmail.com X-Google-Smtp-Source: AGHT+IFCxYRTT3KFTX4fPmDpJmmD25XoxvgxZnVLXyKIVDihj7yOtykHMSr6BC2lq7OYJ/hlYBCj X-Received: by 2002:a05:651c:1508:b0:2fa:d464:32d3 with SMTP id 38308e7fff4ca-2faea267974mr32584901fa.20.1728169146461; Sat, 05 Oct 2024 15:59:06 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 38308e7fff4ca-2faf9ab0397si7694281fa.61.2024.10.05.15.59.06; Sat, 05 Oct 2024 15:59:06 -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=@frankplowman.com header.s=zmail header.b=V3JkDjXt; arc=fail (body hash mismatch); 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 1767F68D3FA; Sun, 6 Oct 2024 01:39:46 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from sender-op-o11.zoho.eu (sender-op-o11.zoho.eu [136.143.169.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2411268D691 for ; Sun, 6 Oct 2024 01:39:39 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; t=1728167976; cv=none; d=zohomail.eu; s=zohoarc; b=J6hYor+KhlXKF6sfTtO+CdDAkUD9rRsXXnyTSlx2eovKdJWvxmDaLHu+bHN3mgh4OmfZkm9601JYLva8xS1d8JvcPfX+6N3SpzPoWEyfcne4EHq+cMw/sympNFK6ixuHunUyQzwuuDfSHOapAznxqKpVr6hH/F3pIBk3VQXLIQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1728167976; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=y+Hq2yFEmWoZ/Ey0ZcfDevm5mzRjoKNBfRkUK0Z3dZo=; b=TNoTMFF2FLNKlTJqdiQbjQa1wMiR3Nwg8/7vY4Pnm0Jk4wrfiGgv95cvf2/EuL+Mt8wQX0A+ycxp4AeQVcP+oUDO6ImhK8/h+QytVddvFQHCzrpC//PNIGzzXQpA4eAQqVJLBC7zH7fyvwb20KW5qp6Hdq0wSMGYLVIzcLsafro= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=frankplowman.com; spf=pass smtp.mailfrom=post@frankplowman.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1728167976; s=zmail; d=frankplowman.com; i=post@frankplowman.com; h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Transfer-Encoding:Message-Id:Reply-To; bh=y+Hq2yFEmWoZ/Ey0ZcfDevm5mzRjoKNBfRkUK0Z3dZo=; b=V3JkDjXtI5xifub4RiiRCaD1u/COAKF2uRg0E81BufRbiBhNDyXa+8IoZ9LtKm6W L6CHxTy1jcxDLeb0SFUJyK/HCUpCoYB3MFC/3egKFTWagkLSYQE7Geh2IVSp18SZHQp jalEK2YqA2OGMMXgEWh/edJel4njbs3a7FuspOsU= Received: by mx.zoho.eu with SMTPS id 172816797554118.28412100513208; Sun, 6 Oct 2024 00:39:35 +0200 (CEST) From: Frank Plowman To: ffmpeg-devel@ffmpeg.org Date: Sat, 5 Oct 2024 15:38:05 -0700 Message-ID: <20241005223922.53888-1-post@frankplowman.com> X-Mailer: git-send-email 2.46.2 MIME-Version: 1.0 X-ZohoMailClient: External Subject: [FFmpeg-devel] [PATCH] lavu/common: Fix AV_CEIL_RSHIFT for unsigned LHS 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 Cc: Frank Plowman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: +Xi2HumLRjv9 The first branch of this ternary expression was intended to avoid having two shift operations in the case the RHS is not known at compile time. It only works if the LHS has a signed type however, otherwise the result is invalid. We could alternatively have different versions of AV_CEIL_RSHIFT for different sizes of operand, then cast the LHS to the relevant signed type. Signed-off-by: Frank Plowman --- libavutil/common.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavutil/common.h b/libavutil/common.h index 3b830daf30..ec38752b64 100644 --- a/libavutil/common.h +++ b/libavutil/common.h @@ -57,8 +57,7 @@ /* assume b>0 */ #define ROUNDED_DIV(a,b) (((a)>=0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b)) /* Fast a/(1<=0 and b>=0 */ -#define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b)) \ - : ((a) + (1<<(b)) - 1) >> (b)) +#define AV_CEIL_RSHIFT(a,b) (((a) + (1<<(b)) - 1) >> (b)) /* Backwards compat. */ #define FF_CEIL_RSHIFT AV_CEIL_RSHIFT