Show a cover letter.

GET /api/covers/9798/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 9798,
    "url": "https://patchwork.libcamera.org/api/covers/9798/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/9798/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/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": "<20200925014207.1455796-1-niklas.soderlund@ragnatech.se>",
    "date": "2020-09-25T01:41:45",
    "name": "[libcamera-devel,v3,00/22] libcamera: pipeline: rkisp1: Extend to support two streams",
    "submitter": {
        "id": 5,
        "url": "https://patchwork.libcamera.org/api/people/5/?format=api",
        "name": "Niklas Söderlund",
        "email": "niklas.soderlund@ragnatech.se"
    },
    "mbox": "https://patchwork.libcamera.org/cover/9798/mbox/",
    "series": [
        {
            "id": 1325,
            "url": "https://patchwork.libcamera.org/api/series/1325/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1325",
            "date": "2020-09-25T01:41:45",
            "name": "libcamera: pipeline: rkisp1: Extend to support two streams",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/1325/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/9798/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 9B8BDC3B5C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Sep 2020 01:42:42 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0321962FF8;\n\tFri, 25 Sep 2020 03:42:42 +0200 (CEST)",
            "from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net\n\t[195.74.38.228])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4A55960576\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Sep 2020 03:42:41 +0200 (CEST)",
            "from bismarck.berto.se (p54ac52a8.dip0.t-ipconnect.de\n\t[84.172.82.168]) by bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA\n\tid 599d7282-fed0-11ea-92dc-005056917a89;\n\tFri, 25 Sep 2020 03:42:39 +0200 (CEST)"
        ],
        "X-Halon-ID": "599d7282-fed0-11ea-92dc-005056917a89",
        "Authorized-sender": "niklas.soderlund@fsdn.se",
        "From": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Fri, 25 Sep 2020 03:41:45 +0200",
        "Message-Id": "<20200925014207.1455796-1-niklas.soderlund@ragnatech.se>",
        "X-Mailer": "git-send-email 2.28.0",
        "MIME-Version": "1.0",
        "Subject": "[libcamera-devel] [PATCH v3 00/22] libcamera: pipeline: rkisp1:\n\tExtend to support two streams",
        "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>",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Hi,\n\nThis series extends the RkISP1 pipeline handler to work with 2 streams.\nIt allows cameras backed by this pipeline to expose a main path stream,\nsame as the one before this series. And a new self path stream that can\noperate in addition or independently from the main path.\n\nIn previous versions of this series RGB formats where added to the self \npath (new formats not supported by the main path) but further \nexamination of those formats resulted in that the captured frames looks \nweird. Pending future investigation drop that work from this series.\n\nFurthermore this series does not extend support for RAW formats as this\nis such a special case for this pipeline. Only the main path may be\nactive and no ISP parameters can be processed. This may be added on top\nbut functionality have been proven as a prototype.\n\nNew in this version are patches 15/22 to 21/22 that adds a new \nRkISP1Path class which abstracts the two paths into a single helper \nclass with shared logic. The shared logic can then be leveraged to \nsimplify the pipeline handler.\n\nPatch 22/22 is an attempt to use a lambda function to further simplify \nerror logic in start(). It is primary provided as a proof-of-concept \nand should be regarded as RFC.\n\nTo be able to use both main and self path simultaneously must run a\nkernel that includes [1]. The development of the series is tested on the\nmedia-tree [2] with out-of-tree DTS patches for the test Scarlet\nplatform to enable the camera sensors.\n\n1. 60e915354c270357 (\"media: staging: rkisp1: cap: fix return values from pm functions\")\n2. f45882cfb152f5d3 (\"media: camss: fix memory leaks on error handling paths in probe\")\n\nNiklas Söderlund (22):\n  libcamera: pipeline: rkisp1: Set number of planes based on format\n  libcamera: pipeline: rkisp1: Remove redundant check of buffer in\n    Request\n  libcamera: pipeline: rkisp1: Breakout mainpath size and format\n    constraints\n  libcamera: pipeline: rkisp1: Setup links as part of configuration\n  libcamera: pipeline: rkisp1: Prepare buffer ready handlers for\n    multiple streams\n  libcamera: pipeline: rkisp1: Create RkISP1Frames from camera data\n  libcamera: pipeline: rkisp1: Export stream formats to applications\n  libcamera: pipeline: rkisp1: Set the crop rectangle\n  libcamera: pipeline: rkisp1: Prefix main path video and resizer\n  libcamera: pipeline: rkisp1: Add self path devices\n  libcamera: pipeline: rkisp1: Configure self path\n  libcamera: pipeline: rkisp1: Track buffers for self path\n  libcamera: pipeline: rkisp1: Add format validation for self path\n  libcamera: pipeline: rkisp1: Expose self path stream\n  libcamera: pipeline: rkisp1: Breakout basic path handling to own class\n  libcamera: pipeline: rkisp1: Move path configuration to RkISP1Path\n  libcamera: pipeline: rkisp1: Move path configuration generation and\n    validation to RkISP1Path\n  libcamera: pipeline: rkisp1: Add wrappers for accessing the path video\n    device\n  libcamera: pipeline: rkisp1: Move start and stop of path to RkISP1Path\n  libcamera: pipeline: rkisp1: Move path link handling to RkISP1Path\n  libcamera: pipeline: rkisp1: Use the media link to track if a path is\n    enabled\n  libcamera: pipeline: rkisp1: Use cleanup error paths for start()\n\n src/libcamera/pipeline/rkisp1/meson.build    |   1 +\n src/libcamera/pipeline/rkisp1/rkisp1.cpp     | 555 +++++++++++--------\n src/libcamera/pipeline/rkisp1/rkisp1path.cpp | 237 ++++++++\n src/libcamera/pipeline/rkisp1/rkisp1path.h   |  83 +++\n 4 files changed, 633 insertions(+), 243 deletions(-)\n create mode 100644 src/libcamera/pipeline/rkisp1/rkisp1path.cpp\n create mode 100644 src/libcamera/pipeline/rkisp1/rkisp1path.h"
}