[{"id":24104,"web_url":"https://patchwork.libcamera.org/comment/24104/","msgid":"<Yt6xhMks2XExeGgW@pendragon.ideasonboard.com>","date":"2022-07-25T15:06:44","subject":"Re: [libcamera-devel] [PATCH 00/15] Raspberry Pi IPA code refactor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nThank you for the series.\n\nOn Mon, Jul 25, 2022 at 02:46:24PM +0100, Naushir Patuck via libcamera-devel wrote:\n> Hi,\n> \n> This rather large patch series performs a (largely overdue) code refactoring on\n> all our IPA source files to match the libcamera coding style guidelines.\n> \n> Given the size of the first round of changes (switching to CamelCase), I've split\n> a single large patch into multiple smaller patches (1/15 - 10/15).  Please note,\n> THESE CANNOT BE MERGED AS-IS (hence the DNI tag) as they will cause intermediate\n> compile breakages.  Once ready for merging, these must be squashed into a single\n> large patch. It also means that the entire context of the change will not fully\n> be available in patches 1/15 - 10/15.  Apologies for that, but this seems the\n> most sensible way to help with the review.\n\nThat's totally fine.\n\nI've noticed the following remainign usages of snake_case:\n\nmd_parser.h\n        int bits_per_pixel_;\n        unsigned int num_lines_;\n        unsigned int line_length_bytes_;\nnoise_status.h\n        double noise_constant;\n        double noise_slope;\nawb.h\n        int frameCount_; /* counts up to startup_frames */\n        double computeDelta2Sum(double gain_r, double gainB);\nagc_status.h\n        char constraint_mode[32];\ndenoise_status.h\n        double noise_constant;\n        double noise_slope;\nblack_level_status.h\n        uint16_t black_level_r; /* out of 16 bits */\n        uint16_t black_level_g;\n        uint16_t black_level_b;\n\n> Naushir Patuck (15):\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n>   ipa: raspberrypi: Change to C style code comments\n>   ipa: raspberrypi: Remove extern \"C\" declarations\n>   ipa: raspberrypi: Rename header files from *.hpp to *.h\n>   raspberrypi: Update Copyright statement in all Raspberry Pi source\n>     files\n>   ipa: raspberryip: Remove all exception throw statements\n> \n>  .reuse/dep5                                   |    2 +-\n>  include/libcamera/color_space.h               |    2 +-\n>  include/libcamera/internal/bayer_format.h     |    2 +-\n>  include/libcamera/internal/delayed_controls.h |    2 +-\n>  include/libcamera/internal/v4l2_pixelformat.h |    2 +-\n>  include/libcamera/transform.h                 |    2 +-\n>  include/linux/bcm2835-isp.h                   |    2 +-\n>  src/cam/stream_options.cpp                    |    2 +-\n>  src/cam/stream_options.h                      |    2 +-\n>  src/ipa/libipa/histogram.cpp                  |    2 +-\n>  src/ipa/libipa/histogram.h                    |    2 +-\n>  src/ipa/raspberrypi/cam_helper.cpp            |   94 +-\n>  src/ipa/raspberrypi/cam_helper.h              |  127 ++\n>  src/ipa/raspberrypi/cam_helper.hpp            |  123 --\n>  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   40 +-\n>  src/ipa/raspberrypi/cam_helper_imx290.cpp     |   36 +-\n>  src/ipa/raspberrypi/cam_helper_imx296.cpp     |   28 +-\n>  src/ipa/raspberrypi/cam_helper_imx477.cpp     |   78 +-\n>  src/ipa/raspberrypi/cam_helper_imx519.cpp     |   76 +-\n>  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   48 +-\n>  src/ipa/raspberrypi/cam_helper_ov9281.cpp     |   32 +-\n>  .../raspberrypi/controller/agc_algorithm.h    |   31 +\n>  .../raspberrypi/controller/agc_algorithm.hpp  |   32 -\n>  src/ipa/raspberrypi/controller/agc_status.h   |   46 +-\n>  src/ipa/raspberrypi/controller/algorithm.cpp  |   26 +-\n>  src/ipa/raspberrypi/controller/algorithm.h    |   64 +\n>  src/ipa/raspberrypi/controller/algorithm.hpp  |   60 -\n>  src/ipa/raspberrypi/controller/alsc_status.h  |   16 +-\n>  .../raspberrypi/controller/awb_algorithm.h    |   23 +\n>  .../raspberrypi/controller/awb_algorithm.hpp  |   23 -\n>  src/ipa/raspberrypi/controller/awb_status.h   |   24 +-\n>  .../controller/black_level_status.h           |   14 +-\n>  src/ipa/raspberrypi/controller/camera_mode.h  |   54 +-\n>  .../raspberrypi/controller/ccm_algorithm.h    |   21 +\n>  .../raspberrypi/controller/ccm_algorithm.hpp  |   21 -\n>  src/ipa/raspberrypi/controller/ccm_status.h   |   12 +-\n>  .../controller/contrast_algorithm.h           |   22 +\n>  .../controller/contrast_algorithm.hpp         |   22 -\n>  .../raspberrypi/controller/contrast_status.h  |   16 +-\n>  src/ipa/raspberrypi/controller/controller.cpp |   86 +-\n>  src/ipa/raspberrypi/controller/controller.h   |   58 +\n>  src/ipa/raspberrypi/controller/controller.hpp |   54 -\n>  ...oise_algorithm.hpp => denoise_algorithm.h} |   12 +-\n>  .../raspberrypi/controller/denoise_status.h   |   12 +-\n>  .../raspberrypi/controller/device_status.cpp  |   20 +-\n>  .../raspberrypi/controller/device_status.h    |   18 +-\n>  src/ipa/raspberrypi/controller/dpc_status.h   |   14 +-\n>  src/ipa/raspberrypi/controller/focus_status.h |   20 +-\n>  src/ipa/raspberrypi/controller/geq_status.h   |   12 +-\n>  src/ipa/raspberrypi/controller/histogram.cpp  |   46 +-\n>  src/ipa/raspberrypi/controller/histogram.h    |   48 +\n>  src/ipa/raspberrypi/controller/histogram.hpp  |   44 -\n>  src/ipa/raspberrypi/controller/lux_status.h   |   28 +-\n>  .../controller/{metadata.hpp => metadata.h}   |   40 +-\n>  src/ipa/raspberrypi/controller/noise_status.h |   12 +-\n>  src/ipa/raspberrypi/controller/pwl.cpp        |  174 +--\n>  src/ipa/raspberrypi/controller/pwl.h          |  126 ++\n>  src/ipa/raspberrypi/controller/pwl.hpp        |  112 --\n>  src/ipa/raspberrypi/controller/rpi/agc.cpp    | 1031 +++++++++--------\n>  src/ipa/raspberrypi/controller/rpi/agc.h      |  141 +++\n>  src/ipa/raspberrypi/controller/rpi/agc.hpp    |  139 ---\n>  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  854 +++++++-------\n>  src/ipa/raspberrypi/controller/rpi/alsc.h     |  110 ++\n>  src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  106 --\n>  src/ipa/raspberrypi/controller/rpi/awb.cpp    |  762 ++++++------\n>  src/ipa/raspberrypi/controller/rpi/awb.h      |  193 +++\n>  src/ipa/raspberrypi/controller/rpi/awb.hpp    |  179 ---\n>  .../controller/rpi/black_level.cpp            |   46 +-\n>  .../raspberrypi/controller/rpi/black_level.h  |   30 +\n>  .../controller/rpi/black_level.hpp            |   30 -\n>  src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  117 +-\n>  .../controller/rpi/{ccm.hpp => ccm.h}         |   24 +-\n>  .../raspberrypi/controller/rpi/contrast.cpp   |  200 ++--\n>  src/ipa/raspberrypi/controller/rpi/contrast.h |   52 +\n>  .../raspberrypi/controller/rpi/contrast.hpp   |   50 -\n>  src/ipa/raspberrypi/controller/rpi/dpc.cpp    |   34 +-\n>  src/ipa/raspberrypi/controller/rpi/dpc.h      |   32 +\n>  src/ipa/raspberrypi/controller/rpi/dpc.hpp    |   32 -\n>  src/ipa/raspberrypi/controller/rpi/focus.cpp  |   18 +-\n>  .../controller/rpi/{focus.hpp => focus.h}     |   12 +-\n>  src/ipa/raspberrypi/controller/rpi/geq.cpp    |   64 +-\n>  src/ipa/raspberrypi/controller/rpi/geq.h      |   34 +\n>  src/ipa/raspberrypi/controller/rpi/geq.hpp    |   34 -\n>  src/ipa/raspberrypi/controller/rpi/lux.cpp    |   90 +-\n>  src/ipa/raspberrypi/controller/rpi/lux.h      |   45 +\n>  src/ipa/raspberrypi/controller/rpi/lux.hpp    |   43 -\n>  src/ipa/raspberrypi/controller/rpi/noise.cpp  |   60 +-\n>  src/ipa/raspberrypi/controller/rpi/noise.h    |   32 +\n>  src/ipa/raspberrypi/controller/rpi/noise.hpp  |   32 -\n>  src/ipa/raspberrypi/controller/rpi/sdn.cpp    |   46 +-\n>  src/ipa/raspberrypi/controller/rpi/sdn.h      |   32 +\n>  src/ipa/raspberrypi/controller/rpi/sdn.hpp    |   32 -\n>  .../raspberrypi/controller/rpi/sharpen.cpp    |   72 +-\n>  src/ipa/raspberrypi/controller/rpi/sharpen.h  |   34 +\n>  .../raspberrypi/controller/rpi/sharpen.hpp    |   34 -\n>  .../controller/sharpen_algorithm.h            |   21 +\n>  .../controller/sharpen_algorithm.hpp          |   21 -\n>  .../raspberrypi/controller/sharpen_status.h   |   22 +-\n>  .../{md_parser.hpp => md_parser.h}            |   40 +-\n>  src/ipa/raspberrypi/md_parser_smia.cpp        |  100 +-\n>  src/ipa/raspberrypi/raspberrypi.cpp           |  274 ++---\n>  src/libcamera/bayer_format.cpp                |    2 +-\n>  src/libcamera/color_space.cpp                 |    2 +-\n>  src/libcamera/delayed_controls.cpp            |    2 +-\n>  .../pipeline/raspberrypi/dma_heaps.cpp        |    2 +-\n>  .../pipeline/raspberrypi/dma_heaps.h          |    2 +-\n>  .../pipeline/raspberrypi/raspberrypi.cpp      |    2 +-\n>  .../pipeline/raspberrypi/rpi_stream.cpp       |    2 +-\n>  .../pipeline/raspberrypi/rpi_stream.h         |    2 +-\n>  src/libcamera/transform.cpp                   |    2 +-\n>  src/libcamera/v4l2_pixelformat.cpp            |    2 +-\n>  src/qcam/dng_writer.cpp                       |    2 +-\n>  src/qcam/dng_writer.h                         |    2 +-\n>  utils/raspberrypi/ctt/ctt.py                  |    2 +-\n>  utils/raspberrypi/ctt/ctt_alsc.py             |    2 +-\n>  utils/raspberrypi/ctt/ctt_awb.py              |    2 +-\n>  utils/raspberrypi/ctt/ctt_ccm.py              |    2 +-\n>  utils/raspberrypi/ctt/ctt_geq.py              |    2 +-\n>  utils/raspberrypi/ctt/ctt_image_load.py       |    2 +-\n>  utils/raspberrypi/ctt/ctt_lux.py              |    2 +-\n>  utils/raspberrypi/ctt/ctt_macbeth_locator.py  |    2 +-\n>  utils/raspberrypi/ctt/ctt_noise.py            |    2 +-\n>  .../raspberrypi/ctt/ctt_pretty_print_json.py  |    2 +-\n>  utils/raspberrypi/ctt/ctt_ransac.py           |    2 +-\n>  utils/raspberrypi/ctt/ctt_tools.py            |    2 +-\n>  125 files changed, 3817 insertions(+), 3752 deletions(-)\n>  create mode 100644 src/ipa/raspberrypi/cam_helper.h\n>  delete mode 100644 src/ipa/raspberrypi/cam_helper.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/algorithm.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/algorithm.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/controller.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/controller.hpp\n>  rename src/ipa/raspberrypi/controller/{denoise_algorithm.hpp => denoise_algorithm.h} (53%)\n>  create mode 100644 src/ipa/raspberrypi/controller/histogram.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/histogram.hpp\n>  rename src/ipa/raspberrypi/controller/{metadata.hpp => metadata.h} (61%)\n>  create mode 100644 src/ipa/raspberrypi/controller/pwl.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/pwl.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/agc.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/agc.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/awb.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/awb.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.hpp\n>  rename src/ipa/raspberrypi/controller/rpi/{ccm.hpp => ccm.h} (68%)\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.hpp\n>  rename src/ipa/raspberrypi/controller/rpi/{focus.hpp => focus.h} (59%)\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/geq.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/geq.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/lux.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/lux.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/noise.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/noise.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n>  create mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.h\n>  delete mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n>  rename src/ipa/raspberrypi/{md_parser.hpp => md_parser.h} (80%)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id C08E5BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Jul 2022 15:06:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C3BF363312;\n\tMon, 25 Jul 2022 17:06:50 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 39FCC6330A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 17:06:49 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A3B5D6D1;\n\tMon, 25 Jul 2022 17:06:48 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658761610;\n\tbh=YNaGVMR32V7BBtfX9+/dyVwi3qCLJmJb9filD6IKyEg=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=DujeXFy2GdF6iZnmFjW88hJ2hVtEZ8Lq0mdP5ItEqQadiHxCeqTdZt1nDvxYe86SF\n\tS4jSqKrtVH+rpTTdocOEqsbalICVdQD6z7v5nZGRBm9xcL6rC2tCikzf+jFbR9ssLM\n\tvjk4MG52r8WPKABhZ2JLQDWpQAFW1nWSMg1P41oKSOz+8IZVyMSEFh/1bs7wUFiXap\n\tEtLwmjl1gOWPkpgxAqPNs1JaQ6IW+uKfIS8sE5x23yIMkL0uBPNgaaxXL9+aIG0Oue\n\tEhHkjEmUlJHqMWqjVQgG6Oe9Nfe52UqFbAu/VbUxDQ1dFbkjPhLtdslAu9HcLXWeLv\n\tUYptc98xZD2PQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1658761608;\n\tbh=YNaGVMR32V7BBtfX9+/dyVwi3qCLJmJb9filD6IKyEg=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=N2eM/SVb2B9CEW7qIdeCDLte/clSeQ51fAEnd+Ai/dFZR3zkT8a9sFCnUpYfG2jeg\n\tUCJVBzNTQI4Vh2doWuExMTXwBMIeQ9Zo+kgnLD2zzmg3iRVsFfSOpIO8INaHAREEqD\n\ta3fwPUmmHnpQX7YIA1GRtc+BYqn9WbxjdgNFWsDM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"N2eM/SVb\"; dkim-atps=neutral","Date":"Mon, 25 Jul 2022 18:06:44 +0300","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<Yt6xhMks2XExeGgW@pendragon.ideasonboard.com>","References":"<20220725134639.4572-1-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220725134639.4572-1-naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH 00/15] Raspberry Pi IPA code refactor","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24105,"web_url":"https://patchwork.libcamera.org/comment/24105/","msgid":"<CAEmqJPrYcQ2NMzcJ+Fw+Ln=Y1r9oCG4P0fnREjrZFdjgOJO7=A@mail.gmail.com>","date":"2022-07-25T15:12:24","subject":"Re: [libcamera-devel] [PATCH 00/15] Raspberry Pi IPA code refactor","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"On Mon, 25 Jul 2022 at 16:06, Laurent Pinchart <\nlaurent.pinchart@ideasonboard.com> wrote:\n\n> Hi Naush,\n>\n> Thank you for the series.\n>\n> On Mon, Jul 25, 2022 at 02:46:24PM +0100, Naushir Patuck via\n> libcamera-devel wrote:\n> > Hi,\n> >\n> > This rather large patch series performs a (largely overdue) code\n> refactoring on\n> > all our IPA source files to match the libcamera coding style guidelines.\n> >\n> > Given the size of the first round of changes (switching to CamelCase),\n> I've split\n> > a single large patch into multiple smaller patches (1/15 - 10/15).\n> Please note,\n> > THESE CANNOT BE MERGED AS-IS (hence the DNI tag) as they will cause\n> intermediate\n> > compile breakages.  Once ready for merging, these must be squashed into\n> a single\n> > large patch. It also means that the entire context of the change will\n> not fully\n> > be available in patches 1/15 - 10/15.  Apologies for that, but this\n> seems the\n> > most sensible way to help with the review.\n>\n> That's totally fine.\n>\n> I've noticed the following remainign usages of snake_case:\n>\n> md_parser.h\n>         int bits_per_pixel_;\n>         unsigned int num_lines_;\n>         unsigned int line_length_bytes_;\n> noise_status.h\n>         double noise_constant;\n>         double noise_slope;\n> awb.h\n>         int frameCount_; /* counts up to startup_frames */\n>         double computeDelta2Sum(double gain_r, double gainB);\n> agc_status.h\n>         char constraint_mode[32];\n> denoise_status.h\n>         double noise_constant;\n>         double noise_slope;\n> black_level_status.h\n>         uint16_t black_level_r; /* out of 16 bits */\n>         uint16_t black_level_g;\n>         uint16_t black_level_b;\n>\n\nArgh.... and I went through this over and over...\n\nThanks for spotting those Laurent.  I know not to trust my\nreg-exp'ing skills :-)\n\nOne thing that you have spotted is the missing 'k' prefix in the constant\nvariables.\nTo be honest, I am not a fan of that, so I have left them as starting with\na\ncapital letter.\n\nNaush\n\n\n> > Naushir Patuck (15):\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> >   ipa: raspberrypi: Change to C style code comments\n> >   ipa: raspberrypi: Remove extern \"C\" declarations\n> >   ipa: raspberrypi: Rename header files from *.hpp to *.h\n> >   raspberrypi: Update Copyright statement in all Raspberry Pi source\n> >     files\n> >   ipa: raspberryip: Remove all exception throw statements\n> >\n> >  .reuse/dep5                                   |    2 +-\n> >  include/libcamera/color_space.h               |    2 +-\n> >  include/libcamera/internal/bayer_format.h     |    2 +-\n> >  include/libcamera/internal/delayed_controls.h |    2 +-\n> >  include/libcamera/internal/v4l2_pixelformat.h |    2 +-\n> >  include/libcamera/transform.h                 |    2 +-\n> >  include/linux/bcm2835-isp.h                   |    2 +-\n> >  src/cam/stream_options.cpp                    |    2 +-\n> >  src/cam/stream_options.h                      |    2 +-\n> >  src/ipa/libipa/histogram.cpp                  |    2 +-\n> >  src/ipa/libipa/histogram.h                    |    2 +-\n> >  src/ipa/raspberrypi/cam_helper.cpp            |   94 +-\n> >  src/ipa/raspberrypi/cam_helper.h              |  127 ++\n> >  src/ipa/raspberrypi/cam_helper.hpp            |  123 --\n> >  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   40 +-\n> >  src/ipa/raspberrypi/cam_helper_imx290.cpp     |   36 +-\n> >  src/ipa/raspberrypi/cam_helper_imx296.cpp     |   28 +-\n> >  src/ipa/raspberrypi/cam_helper_imx477.cpp     |   78 +-\n> >  src/ipa/raspberrypi/cam_helper_imx519.cpp     |   76 +-\n> >  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   48 +-\n> >  src/ipa/raspberrypi/cam_helper_ov9281.cpp     |   32 +-\n> >  .../raspberrypi/controller/agc_algorithm.h    |   31 +\n> >  .../raspberrypi/controller/agc_algorithm.hpp  |   32 -\n> >  src/ipa/raspberrypi/controller/agc_status.h   |   46 +-\n> >  src/ipa/raspberrypi/controller/algorithm.cpp  |   26 +-\n> >  src/ipa/raspberrypi/controller/algorithm.h    |   64 +\n> >  src/ipa/raspberrypi/controller/algorithm.hpp  |   60 -\n> >  src/ipa/raspberrypi/controller/alsc_status.h  |   16 +-\n> >  .../raspberrypi/controller/awb_algorithm.h    |   23 +\n> >  .../raspberrypi/controller/awb_algorithm.hpp  |   23 -\n> >  src/ipa/raspberrypi/controller/awb_status.h   |   24 +-\n> >  .../controller/black_level_status.h           |   14 +-\n> >  src/ipa/raspberrypi/controller/camera_mode.h  |   54 +-\n> >  .../raspberrypi/controller/ccm_algorithm.h    |   21 +\n> >  .../raspberrypi/controller/ccm_algorithm.hpp  |   21 -\n> >  src/ipa/raspberrypi/controller/ccm_status.h   |   12 +-\n> >  .../controller/contrast_algorithm.h           |   22 +\n> >  .../controller/contrast_algorithm.hpp         |   22 -\n> >  .../raspberrypi/controller/contrast_status.h  |   16 +-\n> >  src/ipa/raspberrypi/controller/controller.cpp |   86 +-\n> >  src/ipa/raspberrypi/controller/controller.h   |   58 +\n> >  src/ipa/raspberrypi/controller/controller.hpp |   54 -\n> >  ...oise_algorithm.hpp => denoise_algorithm.h} |   12 +-\n> >  .../raspberrypi/controller/denoise_status.h   |   12 +-\n> >  .../raspberrypi/controller/device_status.cpp  |   20 +-\n> >  .../raspberrypi/controller/device_status.h    |   18 +-\n> >  src/ipa/raspberrypi/controller/dpc_status.h   |   14 +-\n> >  src/ipa/raspberrypi/controller/focus_status.h |   20 +-\n> >  src/ipa/raspberrypi/controller/geq_status.h   |   12 +-\n> >  src/ipa/raspberrypi/controller/histogram.cpp  |   46 +-\n> >  src/ipa/raspberrypi/controller/histogram.h    |   48 +\n> >  src/ipa/raspberrypi/controller/histogram.hpp  |   44 -\n> >  src/ipa/raspberrypi/controller/lux_status.h   |   28 +-\n> >  .../controller/{metadata.hpp => metadata.h}   |   40 +-\n> >  src/ipa/raspberrypi/controller/noise_status.h |   12 +-\n> >  src/ipa/raspberrypi/controller/pwl.cpp        |  174 +--\n> >  src/ipa/raspberrypi/controller/pwl.h          |  126 ++\n> >  src/ipa/raspberrypi/controller/pwl.hpp        |  112 --\n> >  src/ipa/raspberrypi/controller/rpi/agc.cpp    | 1031 +++++++++--------\n> >  src/ipa/raspberrypi/controller/rpi/agc.h      |  141 +++\n> >  src/ipa/raspberrypi/controller/rpi/agc.hpp    |  139 ---\n> >  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  854 +++++++-------\n> >  src/ipa/raspberrypi/controller/rpi/alsc.h     |  110 ++\n> >  src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  106 --\n> >  src/ipa/raspberrypi/controller/rpi/awb.cpp    |  762 ++++++------\n> >  src/ipa/raspberrypi/controller/rpi/awb.h      |  193 +++\n> >  src/ipa/raspberrypi/controller/rpi/awb.hpp    |  179 ---\n> >  .../controller/rpi/black_level.cpp            |   46 +-\n> >  .../raspberrypi/controller/rpi/black_level.h  |   30 +\n> >  .../controller/rpi/black_level.hpp            |   30 -\n> >  src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  117 +-\n> >  .../controller/rpi/{ccm.hpp => ccm.h}         |   24 +-\n> >  .../raspberrypi/controller/rpi/contrast.cpp   |  200 ++--\n> >  src/ipa/raspberrypi/controller/rpi/contrast.h |   52 +\n> >  .../raspberrypi/controller/rpi/contrast.hpp   |   50 -\n> >  src/ipa/raspberrypi/controller/rpi/dpc.cpp    |   34 +-\n> >  src/ipa/raspberrypi/controller/rpi/dpc.h      |   32 +\n> >  src/ipa/raspberrypi/controller/rpi/dpc.hpp    |   32 -\n> >  src/ipa/raspberrypi/controller/rpi/focus.cpp  |   18 +-\n> >  .../controller/rpi/{focus.hpp => focus.h}     |   12 +-\n> >  src/ipa/raspberrypi/controller/rpi/geq.cpp    |   64 +-\n> >  src/ipa/raspberrypi/controller/rpi/geq.h      |   34 +\n> >  src/ipa/raspberrypi/controller/rpi/geq.hpp    |   34 -\n> >  src/ipa/raspberrypi/controller/rpi/lux.cpp    |   90 +-\n> >  src/ipa/raspberrypi/controller/rpi/lux.h      |   45 +\n> >  src/ipa/raspberrypi/controller/rpi/lux.hpp    |   43 -\n> >  src/ipa/raspberrypi/controller/rpi/noise.cpp  |   60 +-\n> >  src/ipa/raspberrypi/controller/rpi/noise.h    |   32 +\n> >  src/ipa/raspberrypi/controller/rpi/noise.hpp  |   32 -\n> >  src/ipa/raspberrypi/controller/rpi/sdn.cpp    |   46 +-\n> >  src/ipa/raspberrypi/controller/rpi/sdn.h      |   32 +\n> >  src/ipa/raspberrypi/controller/rpi/sdn.hpp    |   32 -\n> >  .../raspberrypi/controller/rpi/sharpen.cpp    |   72 +-\n> >  src/ipa/raspberrypi/controller/rpi/sharpen.h  |   34 +\n> >  .../raspberrypi/controller/rpi/sharpen.hpp    |   34 -\n> >  .../controller/sharpen_algorithm.h            |   21 +\n> >  .../controller/sharpen_algorithm.hpp          |   21 -\n> >  .../raspberrypi/controller/sharpen_status.h   |   22 +-\n> >  .../{md_parser.hpp => md_parser.h}            |   40 +-\n> >  src/ipa/raspberrypi/md_parser_smia.cpp        |  100 +-\n> >  src/ipa/raspberrypi/raspberrypi.cpp           |  274 ++---\n> >  src/libcamera/bayer_format.cpp                |    2 +-\n> >  src/libcamera/color_space.cpp                 |    2 +-\n> >  src/libcamera/delayed_controls.cpp            |    2 +-\n> >  .../pipeline/raspberrypi/dma_heaps.cpp        |    2 +-\n> >  .../pipeline/raspberrypi/dma_heaps.h          |    2 +-\n> >  .../pipeline/raspberrypi/raspberrypi.cpp      |    2 +-\n> >  .../pipeline/raspberrypi/rpi_stream.cpp       |    2 +-\n> >  .../pipeline/raspberrypi/rpi_stream.h         |    2 +-\n> >  src/libcamera/transform.cpp                   |    2 +-\n> >  src/libcamera/v4l2_pixelformat.cpp            |    2 +-\n> >  src/qcam/dng_writer.cpp                       |    2 +-\n> >  src/qcam/dng_writer.h                         |    2 +-\n> >  utils/raspberrypi/ctt/ctt.py                  |    2 +-\n> >  utils/raspberrypi/ctt/ctt_alsc.py             |    2 +-\n> >  utils/raspberrypi/ctt/ctt_awb.py              |    2 +-\n> >  utils/raspberrypi/ctt/ctt_ccm.py              |    2 +-\n> >  utils/raspberrypi/ctt/ctt_geq.py              |    2 +-\n> >  utils/raspberrypi/ctt/ctt_image_load.py       |    2 +-\n> >  utils/raspberrypi/ctt/ctt_lux.py              |    2 +-\n> >  utils/raspberrypi/ctt/ctt_macbeth_locator.py  |    2 +-\n> >  utils/raspberrypi/ctt/ctt_noise.py            |    2 +-\n> >  .../raspberrypi/ctt/ctt_pretty_print_json.py  |    2 +-\n> >  utils/raspberrypi/ctt/ctt_ransac.py           |    2 +-\n> >  utils/raspberrypi/ctt/ctt_tools.py            |    2 +-\n> >  125 files changed, 3817 insertions(+), 3752 deletions(-)\n> >  create mode 100644 src/ipa/raspberrypi/cam_helper.h\n> >  delete mode 100644 src/ipa/raspberrypi/cam_helper.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/algorithm.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/algorithm.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/controller.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/controller.hpp\n> >  rename src/ipa/raspberrypi/controller/{denoise_algorithm.hpp =>\n> denoise_algorithm.h} (53%)\n> >  create mode 100644 src/ipa/raspberrypi/controller/histogram.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/histogram.hpp\n> >  rename src/ipa/raspberrypi/controller/{metadata.hpp => metadata.h} (61%)\n> >  create mode 100644 src/ipa/raspberrypi/controller/pwl.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/pwl.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/agc.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/agc.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/awb.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/awb.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.hpp\n> >  rename src/ipa/raspberrypi/controller/rpi/{ccm.hpp => ccm.h} (68%)\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.hpp\n> >  rename src/ipa/raspberrypi/controller/rpi/{focus.hpp => focus.h} (59%)\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/geq.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/geq.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/lux.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/lux.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/noise.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/noise.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n> >  create mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.h\n> >  delete mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n> >  rename src/ipa/raspberrypi/{md_parser.hpp => md_parser.h} (80%)\n>\n> --\n> Regards,\n>\n> Laurent Pinchart\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 1B1C0C3275\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Jul 2022 15:12:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7956B63312;\n\tMon, 25 Jul 2022 17:12:43 +0200 (CEST)","from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com\n\t[IPv6:2a00:1450:4864:20::12a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 099226330A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 17:12:42 +0200 (CEST)","by mail-lf1-x12a.google.com with SMTP id b16so6063282lfb.7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 08:12:41 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658761963;\n\tbh=DMaMA44RENZWsjfv0iN5zkIzkSo8IdA5/SpYul567n4=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=Hb2GKihg5hSgf64usZZBoAr6J+b3RzmxK55Jrwb673geSB8JIrFX/9DWeUqCkarTH\n\twukjofB1rfUjEsudiUDcnZY4qpoff+0avpklpTdRw/+5QAiF9DTV+s/ljwVP4obCI0\n\tBAjakRpQbjg217ikKlk67loIBaGzwoNC/D2DhK3O8l1xPZJ7NvhgwPN2l6Z25aY8mb\n\tg/Euv6XkSF8f9CId/flJUKgrUY4p21tCsHKKkc3bqewJql6Z3oGSdMFBeE87hVsVeY\n\tzdgTK1Q2SEtcSdta/yvCy6ef0wOeo5wz3TeGRKot+ef4eUM+E4Oi/jlQpJLe+WZM2Z\n\t+Wv36dEUbnsjQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=qlcP6t7D9zgk0BZny5OuMaQTAn1+vHB7Qj5BILileSA=;\n\tb=hMA8tn2F5w0+80Qvw1F29vxIIDgosMbwjSPzoxCC7nmIetqStri+2i2fDeZQ5Lx5W/\n\tK4SyRnsc+7OVGLP+6oQ8icidrY0/w3GqpsudUeE8HJ3DB0C1LUGzdgvXj4O4D2L9HenH\n\tOjtV4/H17pmVRzZ0TRniNu5RcLBPaHFqDY1ON7m9Uz3Q9Luod562Td197ZZYJZ20zVrW\n\t+VVdz0Z7ddv0ymKFSvpETf5hvdxtYiKF5EDx0mCJpuXpfZ5Nl4DPwVViQQHvyGTznqlM\n\t7cBA86qFMWzoMPm4wSmFM4MGsl/4AFtGpCB0Bh1Ev0g8pHrdLNbmgbDaIlX6vKLhPv/p\n\tajbA=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"hMA8tn2F\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=qlcP6t7D9zgk0BZny5OuMaQTAn1+vHB7Qj5BILileSA=;\n\tb=UY0yxpi8je+djjbt5fCxfXuK/h0pgxrSmQVHw03Ki7ikvrVhfrp7uLttx+frfsW+b9\n\tqYY5dTYsHjZwloh/tlwjZ+FOJIdIL4AnjHWp9z0dz6OopCytgT/ED57z6ty/tzQ+hUow\n\tnUUMFGy80at8hjloxlnQ5ziNUJqA3Swr8jyviXD+1xaA0fezgyiRx51U2k5hD7EL8FP+\n\tlaxex8C/7yOj2lMbXK16SsUAdpQnJR/r+Yg6IcDBU6EmHiHiCXTgPQ27V++n9YYkZ6qv\n\tVSaM8hIKWzfj4IbgsBbQwLZlwrVmVNAPpdEbF/JPZOpAg6OJEq9fjwbij/SB4QfO7I3h\n\tiShA==","X-Gm-Message-State":"AJIora+zCgFpJ0+avfcOcuHwpSQuRFklknnHzrolpaiGxTmOPkZgcgMX\n\tre/zNRteeCKKEnXxNIIutp9ItLUHcLDUVIJNUDHI4eHUEYo=","X-Google-Smtp-Source":"AGRyM1skuN8ynnSPB+pGMhhxfm40a7Kt4eFXUlUHvYFEvWze5GclXQ5xEkD8z89tjnU8eMXYb6oDQQxDqoxR1cKcH4s=","X-Received":"by 2002:ac2:4c52:0:b0:48a:1830:f589 with SMTP id\n\to18-20020ac24c52000000b0048a1830f589mr4374592lfk.245.1658761961284;\n\tMon, 25 Jul 2022 08:12:41 -0700 (PDT)","MIME-Version":"1.0","References":"<20220725134639.4572-1-naush@raspberrypi.com>\n\t<Yt6xhMks2XExeGgW@pendragon.ideasonboard.com>","In-Reply-To":"<Yt6xhMks2XExeGgW@pendragon.ideasonboard.com>","Date":"Mon, 25 Jul 2022 16:12:24 +0100","Message-ID":"<CAEmqJPrYcQ2NMzcJ+Fw+Ln=Y1r9oCG4P0fnREjrZFdjgOJO7=A@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"00000000000078373b05e4a29d46\"","Subject":"Re: [libcamera-devel] [PATCH 00/15] Raspberry Pi IPA code refactor","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24114,"web_url":"https://patchwork.libcamera.org/comment/24114/","msgid":"<Yt7fuOdaShWj9FAo@pendragon.ideasonboard.com>","date":"2022-07-25T18:23:52","subject":"Re: [libcamera-devel] [PATCH 00/15] Raspberry Pi IPA code refactor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nOn Mon, Jul 25, 2022 at 04:12:24PM +0100, Naushir Patuck wrote:\n> On Mon, 25 Jul 2022 at 16:06, Laurent Pinchart wrote:\n> > On Mon, Jul 25, 2022 at 02:46:24PM +0100, Naushir Patuck via\n> > libcamera-devel wrote:\n> > > Hi,\n> > >\n> > > This rather large patch series performs a (largely overdue) code refactoring on\n> > > all our IPA source files to match the libcamera coding style guidelines.\n> > >\n> > > Given the size of the first round of changes (switching to CamelCase), I've split\n> > > a single large patch into multiple smaller patches (1/15 - 10/15). Please note,\n> > > THESE CANNOT BE MERGED AS-IS (hence the DNI tag) as they will cause intermediate\n> > > compile breakages.  Once ready for merging, these must be squashed into a single\n> > > large patch. It also means that the entire context of the change will not fully\n> > > be available in patches 1/15 - 10/15.  Apologies for that, but this seems the\n> > > most sensible way to help with the review.\n> >\n> > That's totally fine.\n> >\n> > I've noticed the following remainign usages of snake_case:\n> >\n> > md_parser.h\n> >         int bits_per_pixel_;\n> >         unsigned int num_lines_;\n> >         unsigned int line_length_bytes_;\n> > noise_status.h\n> >         double noise_constant;\n> >         double noise_slope;\n> > awb.h\n> >         int frameCount_; /* counts up to startup_frames */\n> >         double computeDelta2Sum(double gain_r, double gainB);\n> > agc_status.h\n> >         char constraint_mode[32];\n> > denoise_status.h\n> >         double noise_constant;\n> >         double noise_slope;\n> > black_level_status.h\n> >         uint16_t black_level_r; /* out of 16 bits */\n> >         uint16_t black_level_g;\n> >         uint16_t black_level_b;\n> >\n> \n> Argh.... and I went through this over and over...\n> \n> Thanks for spotting those Laurent.  I know not to trust my reg-exp'ing skills :-)\n\nYour skills did a great job overall :-)\n\n> One thing that you have spotted is the missing 'k' prefix in the constant variables.\n> To be honest, I am not a fan of that, so I have left them as starting with a\n> capital letter.\n\nI wasn't a big fan of it initially, and then the Stockholm syndrome\nkicked in I suppose. I'm fine if you leave the k out of now, maybe the\nsame will happen to you over time :-)\n\n> > > Naushir Patuck (15):\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > >   ipa: raspberrypi: Change to C style code comments\n> > >   ipa: raspberrypi: Remove extern \"C\" declarations\n> > >   ipa: raspberrypi: Rename header files from *.hpp to *.h\n> > >   raspberrypi: Update Copyright statement in all Raspberry Pi source\n> > >     files\n> > >   ipa: raspberryip: Remove all exception throw statements\n> > >\n> > >  .reuse/dep5                                   |    2 +-\n> > >  include/libcamera/color_space.h               |    2 +-\n> > >  include/libcamera/internal/bayer_format.h     |    2 +-\n> > >  include/libcamera/internal/delayed_controls.h |    2 +-\n> > >  include/libcamera/internal/v4l2_pixelformat.h |    2 +-\n> > >  include/libcamera/transform.h                 |    2 +-\n> > >  include/linux/bcm2835-isp.h                   |    2 +-\n> > >  src/cam/stream_options.cpp                    |    2 +-\n> > >  src/cam/stream_options.h                      |    2 +-\n> > >  src/ipa/libipa/histogram.cpp                  |    2 +-\n> > >  src/ipa/libipa/histogram.h                    |    2 +-\n> > >  src/ipa/raspberrypi/cam_helper.cpp            |   94 +-\n> > >  src/ipa/raspberrypi/cam_helper.h              |  127 ++\n> > >  src/ipa/raspberrypi/cam_helper.hpp            |  123 --\n> > >  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   40 +-\n> > >  src/ipa/raspberrypi/cam_helper_imx290.cpp     |   36 +-\n> > >  src/ipa/raspberrypi/cam_helper_imx296.cpp     |   28 +-\n> > >  src/ipa/raspberrypi/cam_helper_imx477.cpp     |   78 +-\n> > >  src/ipa/raspberrypi/cam_helper_imx519.cpp     |   76 +-\n> > >  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   48 +-\n> > >  src/ipa/raspberrypi/cam_helper_ov9281.cpp     |   32 +-\n> > >  .../raspberrypi/controller/agc_algorithm.h    |   31 +\n> > >  .../raspberrypi/controller/agc_algorithm.hpp  |   32 -\n> > >  src/ipa/raspberrypi/controller/agc_status.h   |   46 +-\n> > >  src/ipa/raspberrypi/controller/algorithm.cpp  |   26 +-\n> > >  src/ipa/raspberrypi/controller/algorithm.h    |   64 +\n> > >  src/ipa/raspberrypi/controller/algorithm.hpp  |   60 -\n> > >  src/ipa/raspberrypi/controller/alsc_status.h  |   16 +-\n> > >  .../raspberrypi/controller/awb_algorithm.h    |   23 +\n> > >  .../raspberrypi/controller/awb_algorithm.hpp  |   23 -\n> > >  src/ipa/raspberrypi/controller/awb_status.h   |   24 +-\n> > >  .../controller/black_level_status.h           |   14 +-\n> > >  src/ipa/raspberrypi/controller/camera_mode.h  |   54 +-\n> > >  .../raspberrypi/controller/ccm_algorithm.h    |   21 +\n> > >  .../raspberrypi/controller/ccm_algorithm.hpp  |   21 -\n> > >  src/ipa/raspberrypi/controller/ccm_status.h   |   12 +-\n> > >  .../controller/contrast_algorithm.h           |   22 +\n> > >  .../controller/contrast_algorithm.hpp         |   22 -\n> > >  .../raspberrypi/controller/contrast_status.h  |   16 +-\n> > >  src/ipa/raspberrypi/controller/controller.cpp |   86 +-\n> > >  src/ipa/raspberrypi/controller/controller.h   |   58 +\n> > >  src/ipa/raspberrypi/controller/controller.hpp |   54 -\n> > >  ...oise_algorithm.hpp => denoise_algorithm.h} |   12 +-\n> > >  .../raspberrypi/controller/denoise_status.h   |   12 +-\n> > >  .../raspberrypi/controller/device_status.cpp  |   20 +-\n> > >  .../raspberrypi/controller/device_status.h    |   18 +-\n> > >  src/ipa/raspberrypi/controller/dpc_status.h   |   14 +-\n> > >  src/ipa/raspberrypi/controller/focus_status.h |   20 +-\n> > >  src/ipa/raspberrypi/controller/geq_status.h   |   12 +-\n> > >  src/ipa/raspberrypi/controller/histogram.cpp  |   46 +-\n> > >  src/ipa/raspberrypi/controller/histogram.h    |   48 +\n> > >  src/ipa/raspberrypi/controller/histogram.hpp  |   44 -\n> > >  src/ipa/raspberrypi/controller/lux_status.h   |   28 +-\n> > >  .../controller/{metadata.hpp => metadata.h}   |   40 +-\n> > >  src/ipa/raspberrypi/controller/noise_status.h |   12 +-\n> > >  src/ipa/raspberrypi/controller/pwl.cpp        |  174 +--\n> > >  src/ipa/raspberrypi/controller/pwl.h          |  126 ++\n> > >  src/ipa/raspberrypi/controller/pwl.hpp        |  112 --\n> > >  src/ipa/raspberrypi/controller/rpi/agc.cpp    | 1031 +++++++++--------\n> > >  src/ipa/raspberrypi/controller/rpi/agc.h      |  141 +++\n> > >  src/ipa/raspberrypi/controller/rpi/agc.hpp    |  139 ---\n> > >  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  854 +++++++-------\n> > >  src/ipa/raspberrypi/controller/rpi/alsc.h     |  110 ++\n> > >  src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  106 --\n> > >  src/ipa/raspberrypi/controller/rpi/awb.cpp    |  762 ++++++------\n> > >  src/ipa/raspberrypi/controller/rpi/awb.h      |  193 +++\n> > >  src/ipa/raspberrypi/controller/rpi/awb.hpp    |  179 ---\n> > >  .../controller/rpi/black_level.cpp            |   46 +-\n> > >  .../raspberrypi/controller/rpi/black_level.h  |   30 +\n> > >  .../controller/rpi/black_level.hpp            |   30 -\n> > >  src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  117 +-\n> > >  .../controller/rpi/{ccm.hpp => ccm.h}         |   24 +-\n> > >  .../raspberrypi/controller/rpi/contrast.cpp   |  200 ++--\n> > >  src/ipa/raspberrypi/controller/rpi/contrast.h |   52 +\n> > >  .../raspberrypi/controller/rpi/contrast.hpp   |   50 -\n> > >  src/ipa/raspberrypi/controller/rpi/dpc.cpp    |   34 +-\n> > >  src/ipa/raspberrypi/controller/rpi/dpc.h      |   32 +\n> > >  src/ipa/raspberrypi/controller/rpi/dpc.hpp    |   32 -\n> > >  src/ipa/raspberrypi/controller/rpi/focus.cpp  |   18 +-\n> > >  .../controller/rpi/{focus.hpp => focus.h}     |   12 +-\n> > >  src/ipa/raspberrypi/controller/rpi/geq.cpp    |   64 +-\n> > >  src/ipa/raspberrypi/controller/rpi/geq.h      |   34 +\n> > >  src/ipa/raspberrypi/controller/rpi/geq.hpp    |   34 -\n> > >  src/ipa/raspberrypi/controller/rpi/lux.cpp    |   90 +-\n> > >  src/ipa/raspberrypi/controller/rpi/lux.h      |   45 +\n> > >  src/ipa/raspberrypi/controller/rpi/lux.hpp    |   43 -\n> > >  src/ipa/raspberrypi/controller/rpi/noise.cpp  |   60 +-\n> > >  src/ipa/raspberrypi/controller/rpi/noise.h    |   32 +\n> > >  src/ipa/raspberrypi/controller/rpi/noise.hpp  |   32 -\n> > >  src/ipa/raspberrypi/controller/rpi/sdn.cpp    |   46 +-\n> > >  src/ipa/raspberrypi/controller/rpi/sdn.h      |   32 +\n> > >  src/ipa/raspberrypi/controller/rpi/sdn.hpp    |   32 -\n> > >  .../raspberrypi/controller/rpi/sharpen.cpp    |   72 +-\n> > >  src/ipa/raspberrypi/controller/rpi/sharpen.h  |   34 +\n> > >  .../raspberrypi/controller/rpi/sharpen.hpp    |   34 -\n> > >  .../controller/sharpen_algorithm.h            |   21 +\n> > >  .../controller/sharpen_algorithm.hpp          |   21 -\n> > >  .../raspberrypi/controller/sharpen_status.h   |   22 +-\n> > >  .../{md_parser.hpp => md_parser.h}            |   40 +-\n> > >  src/ipa/raspberrypi/md_parser_smia.cpp        |  100 +-\n> > >  src/ipa/raspberrypi/raspberrypi.cpp           |  274 ++---\n> > >  src/libcamera/bayer_format.cpp                |    2 +-\n> > >  src/libcamera/color_space.cpp                 |    2 +-\n> > >  src/libcamera/delayed_controls.cpp            |    2 +-\n> > >  .../pipeline/raspberrypi/dma_heaps.cpp        |    2 +-\n> > >  .../pipeline/raspberrypi/dma_heaps.h          |    2 +-\n> > >  .../pipeline/raspberrypi/raspberrypi.cpp      |    2 +-\n> > >  .../pipeline/raspberrypi/rpi_stream.cpp       |    2 +-\n> > >  .../pipeline/raspberrypi/rpi_stream.h         |    2 +-\n> > >  src/libcamera/transform.cpp                   |    2 +-\n> > >  src/libcamera/v4l2_pixelformat.cpp            |    2 +-\n> > >  src/qcam/dng_writer.cpp                       |    2 +-\n> > >  src/qcam/dng_writer.h                         |    2 +-\n> > >  utils/raspberrypi/ctt/ctt.py                  |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_alsc.py             |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_awb.py              |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_ccm.py              |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_geq.py              |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_image_load.py       |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_lux.py              |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_macbeth_locator.py  |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_noise.py            |    2 +-\n> > >  .../raspberrypi/ctt/ctt_pretty_print_json.py  |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_ransac.py           |    2 +-\n> > >  utils/raspberrypi/ctt/ctt_tools.py            |    2 +-\n> > >  125 files changed, 3817 insertions(+), 3752 deletions(-)\n> > >  create mode 100644 src/ipa/raspberrypi/cam_helper.h\n> > >  delete mode 100644 src/ipa/raspberrypi/cam_helper.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/algorithm.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/algorithm.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/controller.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/controller.hpp\n> > >  rename src/ipa/raspberrypi/controller/{denoise_algorithm.hpp => denoise_algorithm.h} (53%)\n> > >  create mode 100644 src/ipa/raspberrypi/controller/histogram.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/histogram.hpp\n> > >  rename src/ipa/raspberrypi/controller/{metadata.hpp => metadata.h} (61%)\n> > >  create mode 100644 src/ipa/raspberrypi/controller/pwl.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/pwl.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/agc.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/agc.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/awb.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/awb.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.hpp\n> > >  rename src/ipa/raspberrypi/controller/rpi/{ccm.hpp => ccm.h} (68%)\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.hpp\n> > >  rename src/ipa/raspberrypi/controller/rpi/{focus.hpp => focus.h} (59%)\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/geq.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/geq.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/lux.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/lux.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/noise.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/noise.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n> > >  create mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.h\n> > >  delete mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n> > >  rename src/ipa/raspberrypi/{md_parser.hpp => md_parser.h} (80%)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 60F63C3275\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Jul 2022 18:24:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 915AD63312;\n\tMon, 25 Jul 2022 20:23:59 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A10BF6330A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 20:23:57 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0CFC66D1;\n\tMon, 25 Jul 2022 20:23:56 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658773439;\n\tbh=N7Qm3wkPs2/aec17d2lL59ZtrfO3pNL2umiSl0mlbNE=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=QjztoZfUEEVPrksDK7gxu2nMtmy8aBIV3Q+9BF1ITIc/hL/M+/NCktTuEg1iYJu2x\n\tJF1C13AJsel0M7mElkK/PN8vE0YQ6Xf69n3Bn4q9/0ukjhdCvbTIVPaIW2qaTBe5fu\n\txonI26FLqB2uBgxDJ/ElULT2lWTej+GoZhI+ptwADi9mqvRmUPhJjetk32IaGYKHHH\n\tvHwUxZT18mNQAzY49S6N+u+zt/ovFUVzbWn1VAYuNaYg922YqjEf0EyRuSBye9AaNv\n\tIJanrQI/fYN7DP8GXxENfLl8WOrbjTYiVhmSf4aF/3iFdAS5ekYp0XRo1I2wfOkYR7\n\t+SCGalRwBcRPw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1658773437;\n\tbh=N7Qm3wkPs2/aec17d2lL59ZtrfO3pNL2umiSl0mlbNE=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=LZAWu1CVEoRjB27t1rpU6D9M56+1MVxWBLcL7qq1yNW+2++o/fQoA6XXfFJTZ2Wpp\n\txkMH8939myK1s5EqbpcdpPgszt+3FV8IzVbBKJegyS+f1W2mGEFEsUBjLamZ4a97yV\n\tqTTzZUDs19mwbx03Dgf8EstvdQXiEP+zA9HUVjvc="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"LZAWu1CV\"; dkim-atps=neutral","Date":"Mon, 25 Jul 2022 21:23:52 +0300","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<Yt7fuOdaShWj9FAo@pendragon.ideasonboard.com>","References":"<20220725134639.4572-1-naush@raspberrypi.com>\n\t<Yt6xhMks2XExeGgW@pendragon.ideasonboard.com>\n\t<CAEmqJPrYcQ2NMzcJ+Fw+Ln=Y1r9oCG4P0fnREjrZFdjgOJO7=A@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPrYcQ2NMzcJ+Fw+Ln=Y1r9oCG4P0fnREjrZFdjgOJO7=A@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH 00/15] Raspberry Pi IPA code refactor","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24133,"web_url":"https://patchwork.libcamera.org/comment/24133/","msgid":"<Yt8MTZTACxpE1A2e@pendragon.ideasonboard.com>","date":"2022-07-25T21:34:05","subject":"Re: [libcamera-devel] [PATCH 00/15] Raspberry Pi IPA code refactor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nOn Mon, Jul 25, 2022 at 09:23:52PM +0300, Laurent Pinchart via libcamera-devel wrote:\n> On Mon, Jul 25, 2022 at 04:12:24PM +0100, Naushir Patuck wrote:\n> > On Mon, 25 Jul 2022 at 16:06, Laurent Pinchart wrote:\n> > > On Mon, Jul 25, 2022 at 02:46:24PM +0100, Naushir Patuck via\n> > > libcamera-devel wrote:\n> > > > Hi,\n> > > >\n> > > > This rather large patch series performs a (largely overdue) code refactoring on\n> > > > all our IPA source files to match the libcamera coding style guidelines.\n> > > >\n> > > > Given the size of the first round of changes (switching to CamelCase), I've split\n> > > > a single large patch into multiple smaller patches (1/15 - 10/15). Please note,\n> > > > THESE CANNOT BE MERGED AS-IS (hence the DNI tag) as they will cause intermediate\n> > > > compile breakages.  Once ready for merging, these must be squashed into a single\n> > > > large patch. It also means that the entire context of the change will not fully\n> > > > be available in patches 1/15 - 10/15.  Apologies for that, but this seems the\n> > > > most sensible way to help with the review.\n> > >\n> > > That's totally fine.\n> > >\n> > > I've noticed the following remainign usages of snake_case:\n> > >\n> > > md_parser.h\n> > >         int bits_per_pixel_;\n> > >         unsigned int num_lines_;\n> > >         unsigned int line_length_bytes_;\n> > > noise_status.h\n> > >         double noise_constant;\n> > >         double noise_slope;\n> > > awb.h\n> > >         int frameCount_; /* counts up to startup_frames */\n> > >         double computeDelta2Sum(double gain_r, double gainB);\n> > > agc_status.h\n> > >         char constraint_mode[32];\n> > > denoise_status.h\n> > >         double noise_constant;\n> > >         double noise_slope;\n> > > black_level_status.h\n> > >         uint16_t black_level_r; /* out of 16 bits */\n> > >         uint16_t black_level_g;\n> > >         uint16_t black_level_b;\n> > >\n> > \n> > Argh.... and I went through this over and over...\n> > \n> > Thanks for spotting those Laurent.  I know not to trust my reg-exp'ing skills :-)\n> \n> Your skills did a great job overall :-)\n> \n> > One thing that you have spotted is the missing 'k' prefix in the constant variables.\n> > To be honest, I am not a fan of that, so I have left them as starting with a\n> > capital letter.\n> \n> I wasn't a big fan of it initially, and then the Stockholm syndrome\n> kicked in I suppose. I'm fine if you leave the k out of now, maybe the\n> same will happen to you over time :-)\n\nOn this topic, there are a few constants defined as macros that should\nbe converter to static constexpr:\n\ncontroller/alsc_status.h:#define ALSC_CELLS_X 16\ncontroller/alsc_status.h:#define ALSC_CELLS_Y 12\ncontroller/camera_mode.h:#define CAMERA_MODE_NAME_LEN 32\ncontroller/contrast_status.h:#define CONTRAST_NUM_POINTS 33\ncontroller/rpi/agc.cpp:#define PIPELINE_BITS 13 /* seems to be a 13-bit pipeline */\ncontroller/rpi/agc.cpp:#define EV_GAIN_Y_TARGET_LIMIT 0.9\ncontroller/rpi/agc.h:#define AGC_STATS_SIZE 15\ncontroller/rpi/awb.cpp:#define AWB_STATS_SIZE_X DEFAULT_AWB_REGIONS_X\ncontroller/rpi/awb.cpp:#define AWB_STATS_SIZE_Y DEFAULT_AWB_REGIONS_Y\n\n> > > > Naushir Patuck (15):\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n> > > >   ipa: raspberrypi: Change to C style code comments\n> > > >   ipa: raspberrypi: Remove extern \"C\" declarations\n> > > >   ipa: raspberrypi: Rename header files from *.hpp to *.h\n> > > >   raspberrypi: Update Copyright statement in all Raspberry Pi source\n> > > >     files\n> > > >   ipa: raspberryip: Remove all exception throw statements\n> > > >\n> > > >  .reuse/dep5                                   |    2 +-\n> > > >  include/libcamera/color_space.h               |    2 +-\n> > > >  include/libcamera/internal/bayer_format.h     |    2 +-\n> > > >  include/libcamera/internal/delayed_controls.h |    2 +-\n> > > >  include/libcamera/internal/v4l2_pixelformat.h |    2 +-\n> > > >  include/libcamera/transform.h                 |    2 +-\n> > > >  include/linux/bcm2835-isp.h                   |    2 +-\n> > > >  src/cam/stream_options.cpp                    |    2 +-\n> > > >  src/cam/stream_options.h                      |    2 +-\n> > > >  src/ipa/libipa/histogram.cpp                  |    2 +-\n> > > >  src/ipa/libipa/histogram.h                    |    2 +-\n> > > >  src/ipa/raspberrypi/cam_helper.cpp            |   94 +-\n> > > >  src/ipa/raspberrypi/cam_helper.h              |  127 ++\n> > > >  src/ipa/raspberrypi/cam_helper.hpp            |  123 --\n> > > >  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   40 +-\n> > > >  src/ipa/raspberrypi/cam_helper_imx290.cpp     |   36 +-\n> > > >  src/ipa/raspberrypi/cam_helper_imx296.cpp     |   28 +-\n> > > >  src/ipa/raspberrypi/cam_helper_imx477.cpp     |   78 +-\n> > > >  src/ipa/raspberrypi/cam_helper_imx519.cpp     |   76 +-\n> > > >  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   48 +-\n> > > >  src/ipa/raspberrypi/cam_helper_ov9281.cpp     |   32 +-\n> > > >  .../raspberrypi/controller/agc_algorithm.h    |   31 +\n> > > >  .../raspberrypi/controller/agc_algorithm.hpp  |   32 -\n> > > >  src/ipa/raspberrypi/controller/agc_status.h   |   46 +-\n> > > >  src/ipa/raspberrypi/controller/algorithm.cpp  |   26 +-\n> > > >  src/ipa/raspberrypi/controller/algorithm.h    |   64 +\n> > > >  src/ipa/raspberrypi/controller/algorithm.hpp  |   60 -\n> > > >  src/ipa/raspberrypi/controller/alsc_status.h  |   16 +-\n> > > >  .../raspberrypi/controller/awb_algorithm.h    |   23 +\n> > > >  .../raspberrypi/controller/awb_algorithm.hpp  |   23 -\n> > > >  src/ipa/raspberrypi/controller/awb_status.h   |   24 +-\n> > > >  .../controller/black_level_status.h           |   14 +-\n> > > >  src/ipa/raspberrypi/controller/camera_mode.h  |   54 +-\n> > > >  .../raspberrypi/controller/ccm_algorithm.h    |   21 +\n> > > >  .../raspberrypi/controller/ccm_algorithm.hpp  |   21 -\n> > > >  src/ipa/raspberrypi/controller/ccm_status.h   |   12 +-\n> > > >  .../controller/contrast_algorithm.h           |   22 +\n> > > >  .../controller/contrast_algorithm.hpp         |   22 -\n> > > >  .../raspberrypi/controller/contrast_status.h  |   16 +-\n> > > >  src/ipa/raspberrypi/controller/controller.cpp |   86 +-\n> > > >  src/ipa/raspberrypi/controller/controller.h   |   58 +\n> > > >  src/ipa/raspberrypi/controller/controller.hpp |   54 -\n> > > >  ...oise_algorithm.hpp => denoise_algorithm.h} |   12 +-\n> > > >  .../raspberrypi/controller/denoise_status.h   |   12 +-\n> > > >  .../raspberrypi/controller/device_status.cpp  |   20 +-\n> > > >  .../raspberrypi/controller/device_status.h    |   18 +-\n> > > >  src/ipa/raspberrypi/controller/dpc_status.h   |   14 +-\n> > > >  src/ipa/raspberrypi/controller/focus_status.h |   20 +-\n> > > >  src/ipa/raspberrypi/controller/geq_status.h   |   12 +-\n> > > >  src/ipa/raspberrypi/controller/histogram.cpp  |   46 +-\n> > > >  src/ipa/raspberrypi/controller/histogram.h    |   48 +\n> > > >  src/ipa/raspberrypi/controller/histogram.hpp  |   44 -\n> > > >  src/ipa/raspberrypi/controller/lux_status.h   |   28 +-\n> > > >  .../controller/{metadata.hpp => metadata.h}   |   40 +-\n> > > >  src/ipa/raspberrypi/controller/noise_status.h |   12 +-\n> > > >  src/ipa/raspberrypi/controller/pwl.cpp        |  174 +--\n> > > >  src/ipa/raspberrypi/controller/pwl.h          |  126 ++\n> > > >  src/ipa/raspberrypi/controller/pwl.hpp        |  112 --\n> > > >  src/ipa/raspberrypi/controller/rpi/agc.cpp    | 1031 +++++++++--------\n> > > >  src/ipa/raspberrypi/controller/rpi/agc.h      |  141 +++\n> > > >  src/ipa/raspberrypi/controller/rpi/agc.hpp    |  139 ---\n> > > >  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  854 +++++++-------\n> > > >  src/ipa/raspberrypi/controller/rpi/alsc.h     |  110 ++\n> > > >  src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  106 --\n> > > >  src/ipa/raspberrypi/controller/rpi/awb.cpp    |  762 ++++++------\n> > > >  src/ipa/raspberrypi/controller/rpi/awb.h      |  193 +++\n> > > >  src/ipa/raspberrypi/controller/rpi/awb.hpp    |  179 ---\n> > > >  .../controller/rpi/black_level.cpp            |   46 +-\n> > > >  .../raspberrypi/controller/rpi/black_level.h  |   30 +\n> > > >  .../controller/rpi/black_level.hpp            |   30 -\n> > > >  src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  117 +-\n> > > >  .../controller/rpi/{ccm.hpp => ccm.h}         |   24 +-\n> > > >  .../raspberrypi/controller/rpi/contrast.cpp   |  200 ++--\n> > > >  src/ipa/raspberrypi/controller/rpi/contrast.h |   52 +\n> > > >  .../raspberrypi/controller/rpi/contrast.hpp   |   50 -\n> > > >  src/ipa/raspberrypi/controller/rpi/dpc.cpp    |   34 +-\n> > > >  src/ipa/raspberrypi/controller/rpi/dpc.h      |   32 +\n> > > >  src/ipa/raspberrypi/controller/rpi/dpc.hpp    |   32 -\n> > > >  src/ipa/raspberrypi/controller/rpi/focus.cpp  |   18 +-\n> > > >  .../controller/rpi/{focus.hpp => focus.h}     |   12 +-\n> > > >  src/ipa/raspberrypi/controller/rpi/geq.cpp    |   64 +-\n> > > >  src/ipa/raspberrypi/controller/rpi/geq.h      |   34 +\n> > > >  src/ipa/raspberrypi/controller/rpi/geq.hpp    |   34 -\n> > > >  src/ipa/raspberrypi/controller/rpi/lux.cpp    |   90 +-\n> > > >  src/ipa/raspberrypi/controller/rpi/lux.h      |   45 +\n> > > >  src/ipa/raspberrypi/controller/rpi/lux.hpp    |   43 -\n> > > >  src/ipa/raspberrypi/controller/rpi/noise.cpp  |   60 +-\n> > > >  src/ipa/raspberrypi/controller/rpi/noise.h    |   32 +\n> > > >  src/ipa/raspberrypi/controller/rpi/noise.hpp  |   32 -\n> > > >  src/ipa/raspberrypi/controller/rpi/sdn.cpp    |   46 +-\n> > > >  src/ipa/raspberrypi/controller/rpi/sdn.h      |   32 +\n> > > >  src/ipa/raspberrypi/controller/rpi/sdn.hpp    |   32 -\n> > > >  .../raspberrypi/controller/rpi/sharpen.cpp    |   72 +-\n> > > >  src/ipa/raspberrypi/controller/rpi/sharpen.h  |   34 +\n> > > >  .../raspberrypi/controller/rpi/sharpen.hpp    |   34 -\n> > > >  .../controller/sharpen_algorithm.h            |   21 +\n> > > >  .../controller/sharpen_algorithm.hpp          |   21 -\n> > > >  .../raspberrypi/controller/sharpen_status.h   |   22 +-\n> > > >  .../{md_parser.hpp => md_parser.h}            |   40 +-\n> > > >  src/ipa/raspberrypi/md_parser_smia.cpp        |  100 +-\n> > > >  src/ipa/raspberrypi/raspberrypi.cpp           |  274 ++---\n> > > >  src/libcamera/bayer_format.cpp                |    2 +-\n> > > >  src/libcamera/color_space.cpp                 |    2 +-\n> > > >  src/libcamera/delayed_controls.cpp            |    2 +-\n> > > >  .../pipeline/raspberrypi/dma_heaps.cpp        |    2 +-\n> > > >  .../pipeline/raspberrypi/dma_heaps.h          |    2 +-\n> > > >  .../pipeline/raspberrypi/raspberrypi.cpp      |    2 +-\n> > > >  .../pipeline/raspberrypi/rpi_stream.cpp       |    2 +-\n> > > >  .../pipeline/raspberrypi/rpi_stream.h         |    2 +-\n> > > >  src/libcamera/transform.cpp                   |    2 +-\n> > > >  src/libcamera/v4l2_pixelformat.cpp            |    2 +-\n> > > >  src/qcam/dng_writer.cpp                       |    2 +-\n> > > >  src/qcam/dng_writer.h                         |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt.py                  |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_alsc.py             |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_awb.py              |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_ccm.py              |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_geq.py              |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_image_load.py       |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_lux.py              |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_macbeth_locator.py  |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_noise.py            |    2 +-\n> > > >  .../raspberrypi/ctt/ctt_pretty_print_json.py  |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_ransac.py           |    2 +-\n> > > >  utils/raspberrypi/ctt/ctt_tools.py            |    2 +-\n> > > >  125 files changed, 3817 insertions(+), 3752 deletions(-)\n> > > >  create mode 100644 src/ipa/raspberrypi/cam_helper.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/cam_helper.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/algorithm.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/algorithm.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/controller.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/controller.hpp\n> > > >  rename src/ipa/raspberrypi/controller/{denoise_algorithm.hpp => denoise_algorithm.h} (53%)\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/histogram.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/histogram.hpp\n> > > >  rename src/ipa/raspberrypi/controller/{metadata.hpp => metadata.h} (61%)\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/pwl.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/pwl.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/agc.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/agc.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/awb.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/awb.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.hpp\n> > > >  rename src/ipa/raspberrypi/controller/rpi/{ccm.hpp => ccm.h} (68%)\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.hpp\n> > > >  rename src/ipa/raspberrypi/controller/rpi/{focus.hpp => focus.h} (59%)\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/geq.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/geq.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/lux.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/lux.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/noise.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/noise.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n> > > >  create mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.h\n> > > >  delete mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n> > > >  rename src/ipa/raspberrypi/{md_parser.hpp => md_parser.h} (80%)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id D0C91C3275\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Jul 2022 21:34:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9D4D563312;\n\tMon, 25 Jul 2022 23:34:11 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 403306330A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 23:34:10 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CE7106D1;\n\tMon, 25 Jul 2022 23:34:09 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658784851;\n\tbh=+ZVPN2r1eIMRFWQUdI/JN+9ontEd0jq8FLbq5c2DkKA=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=gTaUanBd2tpgmHir74bAWVz470xf881BRMcSJOkbqW1PePp7n1smocXpn2QvszCU5\n\tdwjaQNtXWREXXcfOhPS9t/MmTFZ7qvU6vZzOWKK/FahmFA5kC6/O+kY8uFkYyhOaCw\n\t+3clisTtgoW0o+cp5VeEQi9WAH4HFHpHqhibT5yy84ZpiAXbeTrQeNQlj5KHlNB9s4\n\tsjLXXNvhe9kCVMYw/IC0QQi5pCFdELGmllnkDlIW9cORTNWVBD2xkBjEeMKWcf5Wry\n\tDfXdzrmgy9i/dILqwiQV5P9dg+uTSMksk4VsJaqjScK9MI1u/TWVsBdODfqH0fUozq\n\tNNqEsDPwFULaA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1658784850;\n\tbh=+ZVPN2r1eIMRFWQUdI/JN+9ontEd0jq8FLbq5c2DkKA=;\n\th=Date:From:To:Subject:References:In-Reply-To:From;\n\tb=ny9cU7zWGdhrp25fNGlXzNeWahts3foyhTY9TDVTMpMr1hDQuyINSoM9mp7SrqyKX\n\tOVD35drOriigtry9i6u5o99VDIrkchd8Ks0oARiXM2PtaaQUQey1etqBB5MfT4BrBs\n\thXwYgt6GY10eapPqgg18KUIU1Pw+UeiDgXu+wXNA="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"ny9cU7zW\"; dkim-atps=neutral","Date":"Tue, 26 Jul 2022 00:34:05 +0300","To":"Naushir Patuck <naush@raspberrypi.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","Message-ID":"<Yt8MTZTACxpE1A2e@pendragon.ideasonboard.com>","References":"<20220725134639.4572-1-naush@raspberrypi.com>\n\t<Yt6xhMks2XExeGgW@pendragon.ideasonboard.com>\n\t<CAEmqJPrYcQ2NMzcJ+Fw+Ln=Y1r9oCG4P0fnREjrZFdjgOJO7=A@mail.gmail.com>\n\t<Yt7fuOdaShWj9FAo@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<Yt7fuOdaShWj9FAo@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 00/15] Raspberry Pi IPA code refactor","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]