Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/17663/?format=api
{ "id": 17663, "url": "https://patchwork.libcamera.org/api/1.1/covers/17663/?format=api", "web_url": "https://patchwork.libcamera.org/cover/17663/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20221024000356.29521-1-laurent.pinchart@ideasonboard.com>", "date": "2022-10-24T00:03:43", "name": "[libcamera-devel,v3,00/13] Add Bayer format support for RkISP1", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/1.1/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/17663/mbox/", "series": [ { "id": 3574, "url": "https://patchwork.libcamera.org/api/1.1/series/3574/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3574", "date": "2022-10-24T00:03:43", "name": "Add Bayer format support for RkISP1", "version": 3, "mbox": "https://patchwork.libcamera.org/series/3574/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/17663/comments/", "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 A9537BDB16\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 24 Oct 2022 00:04:24 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B55A762ED7;\n\tMon, 24 Oct 2022 02:04:23 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 383D462EA6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 24 Oct 2022 02:04:22 +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 48B14471;\n\tMon, 24 Oct 2022 02:04:21 +0200 (CEST)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1666569863;\n\tbh=syxSYGPu4oGXI77zNPgI3E9nNA/ccBIRdNQUr3uMZ1M=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=Oq8pyGwAkpvn6AD93F5HTovVFVJRTewXjtFqxE/T+OisUQi0mEvSL5B/Tg1i7IJJL\n\t4qz1Utqcy67f5AOFmfZ1gSlf4sz1jOZhqSJHczw59OlxvtNOKElRx+6FoAW5X8aw0f\n\ttZIPB9CSiYg4nTAeFGOYG+ZHOk+PTcQrUXpmXSw9Ia+hkSG7jq/JyesvmY+hom02Sj\n\tZ2onKyINJPiJJcdapQxlxGpfBWGTHpkJhACyFDDuzGTeBPa+E4eK+FiLWV2izgGL8H\n\t4A9SpeDFU24rIwi9q9van176trE6Hmye1DnMjVnjySXMzI6EuKPlhS50QsPjT9EY53\n\tlsLNqfteZbJsg==", "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1666569861;\n\tbh=syxSYGPu4oGXI77zNPgI3E9nNA/ccBIRdNQUr3uMZ1M=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=oTVKNWYwHABFtFCldv0agEj6dFCH6nSnKGxKGivfhx5l5/1aMEs08kmmrKTng8abl\n\tUgMwU920Y18PXvWGlqeR/Jcxhbj4U+N9iVk1KyqJdUeacB2JKy4bBCXFfCEEohCwK/\n\ttCJsT2A4QhDSu2SozMOXcNDybXIP3eUsmwgmBNo0=" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"oTVKNWYw\"; dkim-atps=neutral", "To": "libcamera-devel@lists.libcamera.org", "Date": "Mon, 24 Oct 2022 03:03:43 +0300", "Message-Id": "<20221024000356.29521-1-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.37.4", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v3 00/13] Add Bayer format support for\n\tRkISP1", "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>" }, "content": "Hello,\n\nThis patch series implements support for raw Bayer capture in the RkISP1\npipeline handler and IPA module. I have taken over Florian's v2,\naddressed my review comments, and added further fixes and improvements.\n\nThe RkISP1 can capture raw frames by bypassing the ISP, feeding the\ninput data directly to the resizer (which has to be bypassed as well,\nwith a 1:1 scaling ratio). In this mode, the ISP doesn't consume\nparameters or produce statistics, which prevents most algorithms from\nrunning. The notable exception is the AGC algorithm which still needs to\nrun in order to set manual exposure time and analogue gain (automatic\nmode is not available).\n\nThe series contains a few drive-by fixes and cleanups. Patch 01/13 is\none of those, it reorders the algorithm operations in the .h and .cpp\nfiles. If it gets accepted, I will likely merge it sooner than later and\nseparately from the rest of the series as it has a high risk of causing\nconflicts. Patch 02/13 is another small cleanup in the RkISP1 AGC.\n\nPatch 03/13 starts adding support for raw capture by addressing the IPA\nside first, allowing algorithms to report if they support raw capture,\nand skipping the ones that don't at runtime when capturing raw frames.\nThe next patch, 04/13, adds support for manual gain and exposure time in\nthe AGC algorithm. I have picked it up from the list (posted as \"[PATCH\nv3] ipa: rkisp1: Add support for manual gain and exposure\"), in order to\nimplement raw support in AGC on top in patch 05/13.\n\nWith patches 06/13 to 08/13 we get back on the libcamera side, with\nmore drive-by improvements that turn StreamRole into a scoped enum and\nreturn a unique pointer from PipelineHandler::generateConfiguration().\nThese could also be merged independently from the rest of the series.\n\nPatches 09/13 to 11/13 then prepare the RkISP1 pipeline handler. Patch\n09/13 is a small refactoring to prepare for the larger changes, patch\n10/13 an improvement previously posted to the list (as \"[RFC PATCH v2]\npipeline: rkisp1: Query the driver for formats\") that I found useful,\nand patch 11/13 a bug fix.\n\nFinally, patches 12/13 and 13/13 implement raw capture support in the\npipeline handler. I have split this into runtime support (12/13) and\nconfiguration support (13/13) to ease review. Patch 13/13 could possibly\nbe further split into three patches for configure(), validate() and\ngenerateConfiguration(), but that's more complicated and I think that,\nwhile relatively big, 13/13 is still reviewable.\n\nThe result has been tested on an NXP i.MX8MP with an IMX219 camera\nsensor. I haven't noticed any regression with non-raw capture, and have\nsuccessfully captured raw frames in different resolutions by specifying\neither a raw role or a raw pixel format on the cam command line.\n\nFlorian Sylvestre (2):\n pipeline: rkisp1: Support raw Bayer capture at runtime\n pipeline: rkisp1: Support raw Bayer capture configuration\n\nLaurent Pinchart (9):\n ipa: Sort algorithm operations based on calling order\n ipa: rkisp1: Move shutter speed and analogue gain limits from agc to\n sensor\n ipa: rkisp1: Support raw capture in IPA operations\n ipa: rkisp1: agc: Support raw capture\n libcamera: stream: Add operator<<() to print StreamRole as a string\n libcamera: stream: Turn StreamRole into scoped enumeration\n libcamera: pipeline_handler: Return unique_ptr from\n generateConfiguration()\n pipeline: rkisp1: Pass info pointer to tryCompleteRequest()\n pipeline: rkisp1: Fix stream size validation\n\nPaul Elder (2):\n ipa: rkisp1: Add support for manual gain and exposure\n pipeline: rkisp1: Query the driver for formats\n\n include/libcamera/internal/pipeline_handler.h | 2 +-\n include/libcamera/ipa/rkisp1.mojom | 2 +-\n include/libcamera/stream.h | 5 +-\n src/apps/lc-compliance/capture_test.cpp | 17 +-\n src/gstreamer/gstlibcamerapad.cpp | 20 +-\n src/ipa/ipu3/algorithms/af.cpp | 32 +-\n src/ipa/ipu3/algorithms/awb.cpp | 166 +++++-----\n src/ipa/libipa/algorithm.cpp | 34 +-\n src/ipa/libipa/algorithm.h | 14 +-\n src/ipa/rkisp1/algorithms/agc.cpp | 184 +++++++----\n src/ipa/rkisp1/algorithms/agc.h | 6 +\n src/ipa/rkisp1/algorithms/algorithm.h | 12 +-\n src/ipa/rkisp1/algorithms/awb.cpp | 94 +++---\n src/ipa/rkisp1/algorithms/awb.h | 6 +-\n src/ipa/rkisp1/ipa_context.cpp | 33 +-\n src/ipa/rkisp1/ipa_context.h | 40 ++-\n src/ipa/rkisp1/rkisp1.cpp | 69 +++-\n src/libcamera/camera.cpp | 8 +-\n src/libcamera/pipeline/ipu3/ipu3.cpp | 10 +-\n .../pipeline/raspberrypi/raspberrypi.cpp | 12 +-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 309 ++++++++++++------\n src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 254 ++++++++++++--\n src/libcamera/pipeline/rkisp1/rkisp1_path.h | 15 +-\n src/libcamera/pipeline/simple/simple.cpp | 12 +-\n src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 8 +-\n src/libcamera/pipeline/vimc/vimc.cpp | 8 +-\n src/libcamera/pipeline_handler.cpp | 3 +-\n src/libcamera/stream.cpp | 19 ++\n 28 files changed, 957 insertions(+), 437 deletions(-)\n\n\nbase-commit: f9c859343936db876f13d550ff9adca96a9ef528" }