[{"id":24171,"web_url":"https://patchwork.libcamera.org/comment/24171/","msgid":"<YuCdOUsqjQunrrM8@pendragon.ideasonboard.com>","date":"2022-07-27T02:04:41","subject":"Re: [libcamera-devel] [PATCH 00/17] 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 Tue, Jul 26, 2022 at 01:45:32PM +0100, Naushir Patuck via libcamera-devel wrote:\n> Hi,\n> \n> Here is the next version of the large scale refactoring of the Raspberry Pi IPA\n> source files.\n> \n> This revision fixes all the points rased by Laurent - BTWthanks for the review,\n> I know how tedious it would have been.  I've also added 2 additional patches:\n> \n> 16/17 - Removing #define constants and replacing with constexpr.\n> 17/17 - Fixed log prefix for AGC logging.\n> \n> I did come across one tiny typo in the AGC refactoring that is fixed.\n\nWe're nearly there. I've reviewed the series and only have a handful of\ncomments. Feel free to post them as additional fixups (using git commit\n--fixup) in reply to the cover letter, and I'll squash them when\napplying.\n\nI will also squash all the \"DNI\" patches together. Could you provide me\nwith the commit message I should use for the result ?\n\n> Naushir Patuck (17):\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>   ipa: raspberrypi: Remove #define constants\n>   ipa: raspberrypi: agc: Fix log message prefixes\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   |   48 +-\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  |   26 +-\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           |   18 +-\n>  src/ipa/raspberrypi/controller/camera_mode.h  |   56 +-\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  |   20 +-\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   |   16 +-\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 |   16 +-\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    | 1047 +++++++++--------\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   |  860 +++++++-------\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    |  770 ++++++------\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   |  206 ++--\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  |   64 +-\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    |   50 +-\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}            |   50 +-\n>  src/ipa/raspberrypi/md_parser_smia.cpp        |  112 +-\n>  src/ipa/raspberrypi/raspberrypi.cpp           |  294 ++---\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, 3874 insertions(+), 3811 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} (75%)","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 B2646BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Jul 2022 02:04:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 28D7F6330E;\n\tWed, 27 Jul 2022 04:04:45 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 40C4E603E8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Jul 2022 04:04:43 +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 B2B6E56D;\n\tWed, 27 Jul 2022 04:04:42 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658887485;\n\tbh=i2X63UcOfq/i4tWJGTUSKBAcp7rK7otEqDpdF7NhtdM=;\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=oTh16G20wSDGa5vJhOrZPZzO4Nmq4b6LOAtB8rTPqOgLgzU7+HpJwOUhe5pOplibA\n\tdGRyX60O6encNPE98Ul2CSaExsSgSN17SjHiAVCySB2+1E6VYgEY/wbxpnW/O8fKlw\n\t1lioY0fRSbLgufSFXhm2sAo/c8LSQW7DEgtpVwZMK/5MVqwQVFybg5U2YGt58aIIAh\n\tO9XA1oN2Q8XHwsjZbpqHLdlKOkCH/zm0c8Yme6s61xVVM0JRMb5P7nFejtZETTJVaH\n\tvaQ/wW8YSBbYzgh2Pya2YNh9tc+97lglZH6KXcU/WU1qWm1FpaXrENcv9GZBOJiK6d\n\tkza1H9j14JCOw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1658887482;\n\tbh=i2X63UcOfq/i4tWJGTUSKBAcp7rK7otEqDpdF7NhtdM=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=i2RxHgo7Uu+S5hC5Qya/3QtPj6Rw0MWvICdBry0hIJfDnpHfqnWmkFpByO6BtbG3G\n\tvEBCn2wJRdGxCFNpD4fFusa6vpyx54NFubl5XIeAcB9lklOwLmhFrX1tCCC+KYUQqb\n\tZ1/oApPCDFO3U7jFUHEoKOtdSsD5ltWuTgLG+c1E="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"i2RxHgo7\"; dkim-atps=neutral","Date":"Wed, 27 Jul 2022 05:04:41 +0300","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<YuCdOUsqjQunrrM8@pendragon.ideasonboard.com>","References":"<20220726124549.1646-1-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220726124549.1646-1-naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH 00/17] 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":24178,"web_url":"https://patchwork.libcamera.org/comment/24178/","msgid":"<CAEmqJPqgynk39WBxcweEqbaXgC0t4fxMWeAeFqChd_YCqy6Vag@mail.gmail.com>","date":"2022-07-27T07:38:45","subject":"Re: [libcamera-devel] [PATCH 00/17] Raspberry Pi IPA code refactor","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nOn Wed, 27 Jul 2022 at 03:04, Laurent Pinchart <\nlaurent.pinchart@ideasonboard.com> wrote:\n\n> Hi Naush,\n>\n> Thank you for the series.\n>\n> On Tue, Jul 26, 2022 at 01:45:32PM +0100, Naushir Patuck via\n> libcamera-devel wrote:\n> > Hi,\n> >\n> > Here is the next version of the large scale refactoring of the Raspberry\n> Pi IPA\n> > source files.\n> >\n> > This revision fixes all the points rased by Laurent - BTWthanks for the\n> review,\n> > I know how tedious it would have been.  I've also added 2 additional\n> patches:\n> >\n> > 16/17 - Removing #define constants and replacing with constexpr.\n> > 17/17 - Fixed log prefix for AGC logging.\n> >\n> > I did come across one tiny typo in the AGC refactoring that is fixed.\n>\n> We're nearly there. I've reviewed the series and only have a handful of\n> comments. Feel free to post them as additional fixups (using git commit\n> --fixup) in reply to the cover letter, and I'll squash them when\n> applying.\n>\n> I will also squash all the \"DNI\" patches together. Could you provide me\n> with the commit message I should use for the result ?\n>\n\nThank you!\n\nI'll submit two fixup commits for the changes shortly!\nFor the squashed commit message you can use:\n\nipa: raspberrypi: Code refactoring to match libcamera style guidelines\n\nRefactor all the source files in src/ipa/raspberrypi/ to match the\nrecommended\nformatting guidelines for the libcamera project. The vast majority of\nchanges\nin this commit comprise of switching from snake_case to CamelCase, and\nstarting\nclass member functions with a lower case character.\n\nSigned-off-by: Naushir Patuck <naush@raspberrypi.com>\n\nRegards,\nNaush\n\n\n>\n> > Naushir Patuck (17):\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> >   ipa: raspberrypi: Remove #define constants\n> >   ipa: raspberrypi: agc: Fix log message prefixes\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   |   48 +-\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  |   26 +-\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           |   18 +-\n> >  src/ipa/raspberrypi/controller/camera_mode.h  |   56 +-\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  |   20 +-\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   |   16 +-\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 |   16 +-\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    | 1047 +++++++++--------\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   |  860 +++++++-------\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    |  770 ++++++------\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   |  206 ++--\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  |   64 +-\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    |   50 +-\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}            |   50 +-\n> >  src/ipa/raspberrypi/md_parser_smia.cpp        |  112 +-\n> >  src/ipa/raspberrypi/raspberrypi.cpp           |  294 ++---\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, 3874 insertions(+), 3811 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} (75%)\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 C1AFBBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Jul 2022 07:39:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 79A7D603EC;\n\tWed, 27 Jul 2022 09:39:04 +0200 (CEST)","from mail-lf1-x131.google.com (mail-lf1-x131.google.com\n\t[IPv6:2a00:1450:4864:20::131])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 724FE603EC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Jul 2022 09:39:02 +0200 (CEST)","by mail-lf1-x131.google.com with SMTP id t22so19522512lfg.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Jul 2022 00:39:02 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658907544;\n\tbh=z8TEMjSIsvaXPCCE5m6ZGnLYxCobRXyBYNeqwTTtp+o=;\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=bIYRCMLqvHbVQKxKUk17ej3vh3YhSY3IF0fM9ZCzji5YVVconXlLN5zOV5MW2ETXW\n\tvctfMWD/+Pzzk8FI6YSPrJ3sQT+qEmrzgXUr6zTuguBEqvcnQu6hUKf8WOYfJrwN7f\n\tggq3C6WayujHDSWc8EMaGP6W4FaVQzs3bJXzCrMGOPmpM0uH3YZHysY/KKvTR/C7je\n\tsIA23I/Avh2fP3tydT14gpPXG47/abQ0RJSQF5btLVlOK1h9GY1jQOLnAD3d2m6GkN\n\t0GkjxdmZSaFZQWxtM9gIZElSZ7KaMY2DWbI1u3/feX7TQYnRObKWbWa0VBueOgtmrM\n\t+Og3tIw2h57yw==","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=89G8KZmVyMeTYzJn1fyGgTpkPpErwWlvI4CR+nOLip8=;\n\tb=qqmnojYyY5seWk07sqNh4tx22u8DyLX7A1uGR+v/yUAxloW8pyMJ3nm+jxbduEhXpj\n\tjwwjqcoo36VlGEQ/e8Z4iQJGg8ipaL9W3ivhHZ9k9v6blICN7iVbPGTQSzu/godZCj43\n\tOdj44dI7pgtyHaqgo5AafCxcpHK0jDa0uZvqQj4FlvNHeJ+uetxkHgEu7kLVCg6BCioO\n\tW7Hwl7qSmHlsYUl/CRbYcRFg07gHVqFXLGOnKEtrSFbD5lJGIB6DaRh8524U5G9DXWya\n\tNXl9lfnOhnUyl/GF/3fuWWAOPFD6TrMwLfXGkKL5m68WcSt4wBp1EjXEcrkVAOatihWr\n\tsYAA=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"qqmnojYy\"; 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=89G8KZmVyMeTYzJn1fyGgTpkPpErwWlvI4CR+nOLip8=;\n\tb=iQkHmt42KKCFl0jyRXOLgKrOwuhlDFbyyiM75f4EekvHaKvE/WvkH+Ibnx4NekXDTU\n\tsa1uR2+49zvWEuoPwcduClVLL8EkG3nWVyVoF6Csq/QhHBLeFgfd117XMPbIzK+1TGKA\n\tATieA+hBG0Nw5siQsfG937gB6Hrw6G2PkYBtYLvWumqlmzZnvhCCYUDfXVwqda4uckhn\n\thNuzeDEu8HI3uzDpZrD/AjuVBDNQvpVxn8mi61ntlGEdCxrMqTgstJ5a+QznRHNo/VPN\n\tWIrYG8ktzUv1HT+Aj6RBHEbAtNm3aYWeZi26ofi1M4IJmZ/4XvvSrb698kZXEdomycst\n\t/4tg==","X-Gm-Message-State":"AJIora9KTGkW6lPCXwcbLv49ZXi53k2Wn9CE5HD5Gzwki7G/o+fJ9cbO\n\tMDCft260KvSuk5hyTG/I8h32YwAUtxEOqJYXHt0ymvf3ZoNA/w==","X-Google-Smtp-Source":"AGRyM1tb9/jHfujjkV3v+Li72RgzNPp8F7ABAl9U2oLG6orohED2UFr66GnVYkda7+ybthDXPn3AjuFa6zvjHVYst3c=","X-Received":"by 2002:a05:6512:3da8:b0:489:e6df:3dd0 with SMTP id\n\tk40-20020a0565123da800b00489e6df3dd0mr7679206lfv.224.1658907541525;\n\tWed, 27 Jul 2022 00:39:01 -0700 (PDT)","MIME-Version":"1.0","References":"<20220726124549.1646-1-naush@raspberrypi.com>\n\t<YuCdOUsqjQunrrM8@pendragon.ideasonboard.com>","In-Reply-To":"<YuCdOUsqjQunrrM8@pendragon.ideasonboard.com>","Date":"Wed, 27 Jul 2022 08:38:45 +0100","Message-ID":"<CAEmqJPqgynk39WBxcweEqbaXgC0t4fxMWeAeFqChd_YCqy6Vag@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"000000000000ba6b7305e4c482c0\"","Subject":"Re: [libcamera-devel] [PATCH 00/17] 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>"}}]