From patchwork Tue May 18 10:07:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 12308 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 BB519C31FF for ; Tue, 18 May 2021 10:09:13 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id DB3556891F; Tue, 18 May 2021 12:09:12 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="rjuiudq4"; dkim-atps=neutral Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 37C2A602B2 for ; Tue, 18 May 2021 12:09:11 +0200 (CEST) Received: by mail-wm1-x32f.google.com with SMTP id u4-20020a05600c00c4b02901774b80945cso1159828wmm.3 for ; Tue, 18 May 2021 03:09:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JYjjbuKoCbuf4pRwZGG1jSVTp8girvf/0VPKNNR7AbQ=; b=rjuiudq4NcsJzAL6jP4XRHhrmPWNqJ0Sm+NumECuy4LY09dpY5M5nFgbSxFB30clq/ dme58KA5FzfXCedYNuVPM9yRS9A1Iaf8ppVJQ7NheojZtkrjI4HpXJMdWMSgZfBTotm3 9kT8NBUEfs7KiuBrGFMOjxEVU8u9J1qTKpUMCxfK8DXERykFFPQkOcUyYSISY8p0bvX2 Xy1Fz4U+RcfTXgyAjEWkwvhazAFnvQprOQMec2L0aY/sCK3ZjaQVq+LRf/vz6ZLX9DOj sWwPPvQKqKIFtc+TWdn7+zTix1QSEQVkqDElmtFufjmttgKXtVVDd3iNOSiC6Re25YBW E1FQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JYjjbuKoCbuf4pRwZGG1jSVTp8girvf/0VPKNNR7AbQ=; b=l/42usXDhFh4cp4opGkckPRp6rropwHdiCLB3ftfXDqj/1uaUSLnKCu4sPRPAxmJN1 LVvg2DH8i35OdIxob5XsE4GjFnCgEDXdPDkjyQidRgVpkgBixaNIUWI+eH5EqZyImza+ 2WRAK67hbAsz5hQKtsRlomJU/p8BfqWz+bjuPV4uYt7DPoj0kKwxqtELPV6ZWMrXJEUT M1zIdnTBai/qrRDBOBuii10Lce2ntdWOwGoAqQdswcG6KYX6vzxcecWAUs55eusf3Vm5 ogfNcOF/bZpMoIhcTQ6R4U+TowcPKfY73cKVNDFvMbqaJJ0L9WjdAT39VroGJZM+OHiJ werA== X-Gm-Message-State: AOAM532OcFaN18Tijy52SznoUSeaiz9HNpMDsU8Qs417zeoWc0ad8cfn 0zyhUTWjMvIdBdtZHyYil6Nwpmm0+PheIA== X-Google-Smtp-Source: ABdhPJx96qEvCNzPPG+hfPG404wQWTz+G6Eaq6cyR1t+ZZioj5cqEVTkiX+nsj1p88afeQkl0ZEjiw== X-Received: by 2002:a7b:c7c5:: with SMTP id z5mr4062471wmk.184.1621332550624; Tue, 18 May 2021 03:09:10 -0700 (PDT) Received: from naush-laptop.pitowers.org ([2a00:1098:3142:14:34e4:187b:f2:ed28]) by smtp.gmail.com with ESMTPSA id o11sm6566682wrq.93.2021.05.18.03.09.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 May 2021 03:09:10 -0700 (PDT) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Date: Tue, 18 May 2021 11:07:02 +0100 Message-Id: <20210518100706.578526-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 0/4] Switch RaspberryPi IPA to use std::chrono::duration 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" Hi, Here is an attempt at switching all time based variables in our IPA/Controller to use std::chrono::duration. This change makes things much less error prone when converting time bases or performing arithmetic on various time based variables. It also makes things quite neat when defining time duration defaults. Patch 1 provides some simple helpers for using std::chrono::duration. Patches 2-4 do the conversion in stages. Because of the nature of this conversion, some of the changes in earlier patches get reverted back once all the conversions have been completed. Thanks, Naush Naushir Patuck (4): ipa: raspberrypi: Add helper macros for std::chrono::duration ipa: raspberrypi: Switch ipa/cam_helper to use RPiController::Duration ipa: raspberrypi: Switch AgcAlgorithm API to use RPiController::Duration ipa: raspberrypi: Switch the AGC/Lux code to use RPiController::Duration src/ipa/raspberrypi/cam_helper.cpp | 17 ++-- src/ipa/raspberrypi/cam_helper.hpp | 10 ++- .../raspberrypi/controller/agc_algorithm.hpp | 7 +- src/ipa/raspberrypi/controller/agc_status.h | 12 +-- src/ipa/raspberrypi/controller/camera_mode.h | 5 +- .../raspberrypi/controller/device_status.h | 6 +- src/ipa/raspberrypi/controller/duration.hpp | 33 +++++++ src/ipa/raspberrypi/controller/rpi/agc.cpp | 89 ++++++++++--------- src/ipa/raspberrypi/controller/rpi/agc.hpp | 32 +++---- src/ipa/raspberrypi/controller/rpi/lux.cpp | 17 ++-- src/ipa/raspberrypi/controller/rpi/lux.hpp | 2 +- src/ipa/raspberrypi/raspberrypi.cpp | 72 ++++++++------- 12 files changed, 181 insertions(+), 121 deletions(-) create mode 100644 src/ipa/raspberrypi/controller/duration.hpp