From patchwork Wed Jul 27 02:38:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 16812 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 30AF1BE173 for ; Wed, 27 Jul 2022 02:38:20 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7AB8863312; Wed, 27 Jul 2022 04:38:19 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1658889499; bh=RpGPyZDPBp7vjN58R9DpaHciA9xUZbkvfZp2LsvBpAU=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=lCwm6YN2SxBHcKJqrOD/ScpnpB0GHi2oHfJ6e4OCk+EcXlc4b7tTTkhd3CtObyNZE ytP2U5oTFBR2iCVmdWmirSQ2VDn1vTpFbbVtkWurnxfwBZK6Qi8HeYhEAJ7nuXSWla RRs6u3XugMEEvxwQC2KcVN3XwWC3aVGqY0We46HRJYOYL5sNIhZidVBpbkiKwMZNkA vO6mpdl/HXOowT7+i0ZdfwVRHCnC4Q/4NwFzABgCluU+K4Pv5cpEk2fXgdvK69Qukg 3chN9Ih1+ZCMsYV5fGMb6lZiNhuoGyfzG78opWDfqMGTm9S077antIa7YNdq9EJe4k FgeagBy9LVcPw== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2523F603E8 for ; Wed, 27 Jul 2022 04:38:18 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="j/jUTX6i"; dkim-atps=neutral Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 9811B56D; Wed, 27 Jul 2022 04:38:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1658889497; bh=RpGPyZDPBp7vjN58R9DpaHciA9xUZbkvfZp2LsvBpAU=; h=From:To:Cc:Subject:Date:From; b=j/jUTX6iRXv4R8bpsQ52Y/6kfLklLbZHSCbGMkzHMN3DL8c+ZH1PG0DxQXadPKeEt KdP6VqwgGmLIhTeB0ePQQ+6YJl1be//FUgmnMGpBdf2XshvjF3bBtbKm842bvB9q2V lsKg0akpyAdCBMN23TWAqZxhGW3a8NF1F10zwoJ8= To: libcamera-devel@lists.libcamera.org Date: Wed, 27 Jul 2022 05:38:02 +0300 Message-Id: <20220727023816.30008-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v7 00/14] Replace boost JSON parser with libyaml in Raspberry Pi IPA 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: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hello, This patches series replaces the boost JSON parser with the YamlParser implementation based on libyaml for the Raspberry Pi IPA module. Compared to v6 (posted by Naush), the main changes are - Rebase on top of "[PATCH 00/17] Raspberry Pi IPA code refactor" - Addition of patch 01/14 that simplifies usage of the YamlObject::get() function - Addition of patches 05/14 to 07/14 that prepare for error handling during tuning data read - Propagation of errors in 08/14 - Addition of 13/14 and 14/14 (those are optional and could be merged separately) Florian Sylvestre (1): libcamera: yaml_parser: Add getList() function Laurent Pinchart (9): libcamera: yaml_parser: Replace ok flag to get() with std::optional test: yaml-parser: Test dictionary items ordering libcamera: yaml_parser: Preserve order of items in dictionary ipa: raspberrypi: Replace tabs with spaces in tuning data files ipa: raspberrypi: Return an error code from Algorithm::read() ipa: raspberrypi: Propagate errors from AGC metering tuning data read ipa: raspberrypi: Replace Fatal log by error propagation ipa: raspberrypi: Use YamlParser to replace dependency on boost ipa: raspberrypi: agc: Use YamlObject::getList() Naushir Patuck (4): ipa: raspberrypi: Introduce version 2.0 format for the camera tuning file utils: raspberrypi: ctt: Output version 2.0 format tuning files utils: raspberrypi: Add tuning file conversion script ipa: raspberrypi: Convert existing cameara tuning files to version 2.0 README.rst | 6 - include/libcamera/internal/yaml_parser.h | 62 +- src/ipa/raspberrypi/controller/algorithm.cpp | 3 +- src/ipa/raspberrypi/controller/algorithm.h | 6 +- src/ipa/raspberrypi/controller/controller.cpp | 79 +- src/ipa/raspberrypi/controller/controller.h | 7 +- src/ipa/raspberrypi/controller/pwl.cpp | 13 +- src/ipa/raspberrypi/controller/pwl.h | 4 +- src/ipa/raspberrypi/controller/rpi/agc.cpp | 220 +++-- src/ipa/raspberrypi/controller/rpi/agc.h | 10 +- src/ipa/raspberrypi/controller/rpi/alsc.cpp | 149 +-- src/ipa/raspberrypi/controller/rpi/alsc.h | 2 +- src/ipa/raspberrypi/controller/rpi/awb.cpp | 171 ++-- src/ipa/raspberrypi/controller/rpi/awb.h | 8 +- .../controller/rpi/black_level.cpp | 13 +- .../raspberrypi/controller/rpi/black_level.h | 2 +- src/ipa/raspberrypi/controller/rpi/ccm.cpp | 65 +- src/ipa/raspberrypi/controller/rpi/ccm.h | 4 +- .../raspberrypi/controller/rpi/contrast.cpp | 28 +- src/ipa/raspberrypi/controller/rpi/contrast.h | 2 +- src/ipa/raspberrypi/controller/rpi/dpc.cpp | 12 +- src/ipa/raspberrypi/controller/rpi/dpc.h | 2 +- src/ipa/raspberrypi/controller/rpi/geq.cpp | 22 +- src/ipa/raspberrypi/controller/rpi/geq.h | 2 +- src/ipa/raspberrypi/controller/rpi/lux.cpp | 31 +- src/ipa/raspberrypi/controller/rpi/lux.h | 2 +- src/ipa/raspberrypi/controller/rpi/noise.cpp | 15 +- src/ipa/raspberrypi/controller/rpi/noise.h | 2 +- src/ipa/raspberrypi/controller/rpi/sdn.cpp | 7 +- src/ipa/raspberrypi/controller/rpi/sdn.h | 2 +- .../raspberrypi/controller/rpi/sharpen.cpp | 9 +- src/ipa/raspberrypi/controller/rpi/sharpen.h | 2 +- src/ipa/raspberrypi/data/imx219.json | 824 ++++++++-------- src/ipa/raspberrypi/data/imx219_noir.json | 686 +++++++------- src/ipa/raspberrypi/data/imx290.json | 326 ++++--- src/ipa/raspberrypi/data/imx296.json | 369 ++++---- src/ipa/raspberrypi/data/imx378.json | 677 ++++++++------ src/ipa/raspberrypi/data/imx477.json | 881 ++++++++++-------- src/ipa/raspberrypi/data/imx477_noir.json | 734 ++++++++------- src/ipa/raspberrypi/data/imx519.json | 677 ++++++++------ src/ipa/raspberrypi/data/ov5647.json | 824 ++++++++-------- src/ipa/raspberrypi/data/ov5647_noir.json | 686 +++++++------- src/ipa/raspberrypi/data/ov9281.json | 195 ++-- src/ipa/raspberrypi/data/se327m12.json | 683 ++++++++------ src/ipa/raspberrypi/data/uncalibrated.json | 180 ++-- src/ipa/raspberrypi/meson.build | 1 - src/ipa/raspberrypi/raspberrypi.cpp | 10 +- src/libcamera/yaml_parser.cpp | 228 +++-- test/yaml-parser.cpp | 94 +- utils/raspberrypi/ctt/convert_tuning.py | 46 + utils/raspberrypi/ctt/ctt.py | 18 +- .../raspberrypi/ctt/ctt_pretty_print_json.py | 188 ++-- 52 files changed, 5246 insertions(+), 4043 deletions(-) create mode 100755 utils/raspberrypi/ctt/convert_tuning.py mode change 100644 => 100755 utils/raspberrypi/ctt/ctt_pretty_print_json.py Tested-by: Naushir Patuck