[{"id":12081,"web_url":"https://patchwork.libcamera.org/comment/12081/","msgid":"<20200820153517.GQ6593@pendragon.ideasonboard.com>","date":"2020-08-20T15:35:17","subject":"Re: [libcamera-devel] [PATCH v4 0/3] Developer Guides","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nThank you for these long awaited patches :-)\n\nOn Thu, Aug 20, 2020 at 02:47:48PM +0100, Kieran Bingham wrote:\n> Hi All,\n> \n> Here is the culmination of work from Chris, Jacopo and Myself preparing\n> some developer guides for libcamera. This is marked as v4, as they are\n> based upon earlier versions of work previously posted by Chris.\n> \n> These three guides aim to cover detail across the areas that a developer\n> wanting to make use of libcamera would look at, including a dedicated\n> walkthrough of the steps of creating a new pipeline handler, or a user\n> application which will make use of libcamera to capture frames.\n> \n> The guides start with an introduction and overview, which replicates\n> quite a bit from the existing \"Docs\" page, but forms part of refactoring\n> that documentation.\n> \n> The Pipeline handler guide walks through the creation of a new pipeline\n> handler from scratch, implementing a PipelineHandlerVivid for the\n> virtual video test driver provided by the kernel. The aim of this guide\n> is to provide readers with a full walkthrough of the various functions\n> which must be impelmented when writing a new pipeline handler, and can\n> be followed without having a real device available (however the 'vivid'\n> module must be provided by your kernel or distribution).\n> \n> The Application writers guide discusses key aspects as the reader\n> implements a basic application to use the CameraManager to obtain a\n> camera, configure it, and capture frames.\n> \n> An IPA writers guide is expected in the near future, but due to the\n> current activity and changes ongoing with the IPA API, that will be\n> provided after the current work activity with IPC has settled.\n> \n> These guides are not yet built by the libcamera.org website (further\n> refactoring and organising will happen first), but are integrated into\n> any local build which can be generated with Sphinx during the normal\n> libcamera build process.\n> \n> Further expansion to all of these documents is also likely, but I hope\n> to integrate these in their current form and build on top.\n\nThis all looks good to me. I'll go through the individual patches, with\nthe mindset of fixing issues on top whenever possible to minimize the\nbikeshedding delay.\n\n> Chris Chinchilla (3):\n>   Documentation: Guides: Developers Guide to Libcamera\n>   Documentation: Guides: Pipeline Handler Writers Guide\n>   Documentation: Guides: Application Writers Guide\n> \n>  .../guides/application-developer.rst          |  644 +++++++\n>  Documentation/guides/introduction.rst         |  319 ++++\n>  Documentation/guides/pipeline-handler.rst     | 1473 +++++++++++++++++\n>  Documentation/index.rst                       |    4 +\n>  Documentation/meson.build                     |    3 +\n>  5 files changed, 2443 insertions(+)\n>  create mode 100644 Documentation/guides/application-developer.rst\n>  create mode 100644 Documentation/guides/introduction.rst\n>  create mode 100644 Documentation/guides/pipeline-handler.rst","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 B103BBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 20 Aug 2020 15:35:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4D12561F7B;\n\tThu, 20 Aug 2020 17:35:37 +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 66F8D60381\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Aug 2020 17:35:36 +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 50E5323D;\n\tThu, 20 Aug 2020 17:35:35 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Y5rzgwo3\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1597937735;\n\tbh=+jRI9XjFATOt62gNIp60jI+Nv1jg5Rk5B6ukGUc7v1U=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Y5rzgwo3rEOlJL967uocx6Bha4LKnduqRrSgkSvlvsIoutvyvASvt7rl6b5AN54aB\n\tNXeWy/mYg5pz9tujbnp7qO+gc1zS+VIBoz2MBiwGSbesjHbYxLCo9u0An7fgfjiY1x\n\thoAbiJq49BVitigSDuuLevZyU3dyY1NQulKEls/Q=","Date":"Thu, 20 Aug 2020 18:35:17 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20200820153517.GQ6593@pendragon.ideasonboard.com>","References":"<20200820134751.278033-1-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200820134751.278033-1-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v4 0/3] Developer Guides","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>","Cc":"Chris Ward <chris@gregariousmammal.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":12082,"web_url":"https://patchwork.libcamera.org/comment/12082/","msgid":"<4aa254f4-1f58-0754-375b-ddcd67c63dc4@ideasonboard.com>","date":"2020-08-20T15:39:02","subject":"Re: [libcamera-devel] [PATCH v4 0/3] Developer Guides","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 20/08/2020 16:35, Laurent Pinchart wrote:\n> Hi Kieran,\n> \n> Thank you for these long awaited patches :-)\n\nDocumentation is hard and slow ;-)\n\n> \n> On Thu, Aug 20, 2020 at 02:47:48PM +0100, Kieran Bingham wrote:\n>> Hi All,\n>>\n>> Here is the culmination of work from Chris, Jacopo and Myself preparing\n>> some developer guides for libcamera. This is marked as v4, as they are\n>> based upon earlier versions of work previously posted by Chris.\n>>\n>> These three guides aim to cover detail across the areas that a developer\n>> wanting to make use of libcamera would look at, including a dedicated\n>> walkthrough of the steps of creating a new pipeline handler, or a user\n>> application which will make use of libcamera to capture frames.\n>>\n>> The guides start with an introduction and overview, which replicates\n>> quite a bit from the existing \"Docs\" page, but forms part of refactoring\n>> that documentation.\n>>\n>> The Pipeline handler guide walks through the creation of a new pipeline\n>> handler from scratch, implementing a PipelineHandlerVivid for the\n>> virtual video test driver provided by the kernel. The aim of this guide\n>> is to provide readers with a full walkthrough of the various functions\n>> which must be impelmented when writing a new pipeline handler, and can\n>> be followed without having a real device available (however the 'vivid'\n>> module must be provided by your kernel or distribution).\n>>\n>> The Application writers guide discusses key aspects as the reader\n>> implements a basic application to use the CameraManager to obtain a\n>> camera, configure it, and capture frames.\n>>\n>> An IPA writers guide is expected in the near future, but due to the\n>> current activity and changes ongoing with the IPA API, that will be\n>> provided after the current work activity with IPC has settled.\n>>\n>> These guides are not yet built by the libcamera.org website (further\n>> refactoring and organising will happen first), but are integrated into\n>> any local build which can be generated with Sphinx during the normal\n>> libcamera build process.\n>>\n>> Further expansion to all of these documents is also likely, but I hope\n>> to integrate these in their current form and build on top.\n> \n> This all looks good to me. I'll go through the individual patches, with\n> the mindset of fixing issues on top whenever possible to minimize the\n> bikeshedding delay.\n\nFeel free to also submit a patch on top if you make changes locally as\nyou are going through it ;-)\n\n--\nKieran\n\n\n> \n>> Chris Chinchilla (3):\n>>   Documentation: Guides: Developers Guide to Libcamera\n>>   Documentation: Guides: Pipeline Handler Writers Guide\n>>   Documentation: Guides: Application Writers Guide\n>>\n>>  .../guides/application-developer.rst          |  644 +++++++\n>>  Documentation/guides/introduction.rst         |  319 ++++\n>>  Documentation/guides/pipeline-handler.rst     | 1473 +++++++++++++++++\n>>  Documentation/index.rst                       |    4 +\n>>  Documentation/meson.build                     |    3 +\n>>  5 files changed, 2443 insertions(+)\n>>  create mode 100644 Documentation/guides/application-developer.rst\n>>  create mode 100644 Documentation/guides/introduction.rst\n>>  create mode 100644 Documentation/guides/pipeline-handler.rst\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 541BCBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 20 Aug 2020 15:39:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E0B8B61B4F;\n\tThu, 20 Aug 2020 17:39:07 +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 61E7560381\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Aug 2020 17:39:06 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B2B4023D;\n\tThu, 20 Aug 2020 17:39:05 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"DMQmY1sT\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1597937945;\n\tbh=tkH+WbgZ7xx6Bf7BCvvIUUCXeKkcv/JFeGXeDyeyAEA=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=DMQmY1sTQf78BrVyunLFzMiQ0+duwmrMSKPQ0rmAu9XBrb0N2JxNxVwoYVLA8lO7e\n\tLjwNUKUzCE788xI+t21ie8brMyvSZOl3gjZlyVtUtwroSD2lYlI56HWo7HcUZvBTWO\n\tCW8/5oTqBtfaBfEFqJCt17e6J54TWiyTUncKUe0Q=","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20200820134751.278033-1-kieran.bingham@ideasonboard.com>\n\t<20200820153517.GQ6593@pendragon.ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<4aa254f4-1f58-0754-375b-ddcd67c63dc4@ideasonboard.com>","Date":"Thu, 20 Aug 2020 16:39:02 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<20200820153517.GQ6593@pendragon.ideasonboard.com>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH v4 0/3] Developer Guides","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>","Reply-To":"kieran.bingham@ideasonboard.com","Cc":"Chris Ward <chris@gregariousmammal.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]