From patchwork Mon Aug 25 11:44:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 24231 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 89513BEFBE for ; Mon, 25 Aug 2025 11:44:49 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 2DC2F692E1; Mon, 25 Aug 2025 13:44:49 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="t89ymJe+"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2B825692CA for ; Mon, 25 Aug 2025 13:44:47 +0200 (CEST) Received: from neptunite.infra.iob (unknown [IPv6:2404:7a81:160:2100:39d7:37aa:64a2:5533]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 252532285; Mon, 25 Aug 2025 13:43:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1756122225; bh=NQvSBFAPvMusXBmYYHfn5GFpM6WuZdz3Rgw9gpiLhSQ=; h=From:To:Cc:Subject:Date:From; b=t89ymJe+CgmCHMi/v2WN5E+cT0qQAEi7E6eA6Mu2jP4vKLXBIhhZ4SojEmRzNjF2L SbBKNoEaV+hYdl/Tk2PRbGZ3YkfD1akVv/bd2J9whdxpp0RdY4ypDzulJVVHfYSYM3 255VhOGglIME26wFIVNZ1D/WLsRIV+PTdySJq0NY= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH] libcamera: clock_recovery: Use nanoseconds in addSample() Date: Mon, 25 Aug 2025 20:44:35 +0900 Message-ID: <20250825114435.570351-1-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" FrameWallClock was recently changed to nanoseconds, and all users of ClockRecovery use SensorTimestamp directly, which is also in nanoseconds. Thus addSample() should also use nanoseconds. Fix this. Signed-off-by: Paul Elder Reviewed-by: Barnabás Pőcze Reviewed-by: Naushir Patuck Tested-by: Naushir Patuck --- src/libcamera/clock_recovery.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libcamera/clock_recovery.cpp b/src/libcamera/clock_recovery.cpp index abacf444fbf8..f9ccb6ae2144 100644 --- a/src/libcamera/clock_recovery.cpp +++ b/src/libcamera/clock_recovery.cpp @@ -118,10 +118,10 @@ void ClockRecovery::addSample() clock_gettime(CLOCK_BOOTTIME, &bootTime1); clock_gettime(CLOCK_REALTIME, &wallTime); clock_gettime(CLOCK_BOOTTIME, &bootTime2); - uint64_t boot1 = bootTime1.tv_sec * 1000000ULL + bootTime1.tv_nsec / 1000; - uint64_t boot2 = bootTime2.tv_sec * 1000000ULL + bootTime2.tv_nsec / 1000; + uint64_t boot1 = bootTime1.tv_sec * 1000000000ULL + bootTime1.tv_nsec; + uint64_t boot2 = bootTime2.tv_sec * 1000000000ULL + bootTime2.tv_nsec; uint64_t boot = (boot1 + boot2) / 2; - uint64_t wall = wallTime.tv_sec * 1000000ULL + wallTime.tv_nsec / 1000; + uint64_t wall = wallTime.tv_sec * 1000000000ULL + wallTime.tv_nsec; addSample(boot, wall); }