Show a cover letter.

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

{
    "id": 22146,
    "url": "https://patchwork.libcamera.org/api/covers/22146/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/22146/",
    "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": "<20241202133404.41431-1-jacopo.mondi@ideasonboard.com>",
    "date": "2024-12-02T13:33:59",
    "name": "[v2,0/4] libcamera: Add support for dumping capture script in YAML",
    "submitter": {
        "id": 143,
        "url": "https://patchwork.libcamera.org/api/people/143/?format=api",
        "name": "Jacopo Mondi",
        "email": "jacopo.mondi@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/22146/mbox/",
    "series": [
        {
            "id": 4837,
            "url": "https://patchwork.libcamera.org/api/series/4837/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4837",
            "date": "2024-12-02T13:33:59",
            "name": "libcamera: Add support for dumping capture script in YAML",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/4837/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/22146/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 BB244BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  2 Dec 2024 13:34:13 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CFC186605F;\n\tMon,  2 Dec 2024 14:34:12 +0100 (CET)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0D95465F8F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  2 Dec 2024 14:34:10 +0100 (CET)",
            "from ideasonboard.com (mob-5-90-236-68.net.vodafone.it\n\t[5.90.236.68])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 192CA514;\n\tMon,  2 Dec 2024 14:33:43 +0100 (CET)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"fOLt2zpt\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1733146423;\n\tbh=beJW3lYsxfsFJN5WXcsjQd8fC4Egc8OQK5nAq1Ya+uI=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=fOLt2zptn1Noz42FbgqWpIe300NDzhWpCsv+Lk7P6stGlZVOSaHXZZiwjgo8eGgsj\n\t2c3rNZOGeAOPogOnjz+2E3ask1U+dMXCvIIqDw4h7/CyA5E+NLThUCL5aUVYFP9v0E\n\tgHhiO80axUQQrBEjrVcbsT863OQK1FAmLM5uIk+E=",
        "From": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>",
        "Subject": "[PATCH v2 0/4] libcamera: Add support for dumping capture script in\n\tYAML",
        "Date": "Mon,  2 Dec 2024 14:33:59 +0100",
        "Message-ID": "<20241202133404.41431-1-jacopo.mondi@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.47.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Following the RFCs that introduced the YAML emitter and adapted Paul's patches\non top of it, this proper series introduces the YamlEmitter classes first\nand piles on top patches from Paul ported to use the YamlEmitter.\n\nv1->v2:\n- Address Laurent's comments on v1 on documentation\n- Replace YamlDict::operator[] with YamlDict::scalar()\n- Implement run-time API correctness check. As suggested by Laurent maintain\n  references to each node parent and child to implement run-time\n  validation of API usage correctness.\n- Implement in patch 4/4 (not for inclusion) and example of bad API usage\n  with associated correctness checks (ASSERT() only for testing, but I wouldn't\n  mind asserting for real to catch development issues earlier)\n\nJacopo Mondi (2):\n  libcamera: Implement YamlEmitter\n  [DNI] libcamera: pipeline_handler: Break the Yaml Emitter\n\nPaul Elder (2):\n  pipeline: Add support for dumping capture script and metadata\n  apps: cam: Add support for loading configuration from capture script\n\n include/libcamera/internal/camera.h           |   3 +\n include/libcamera/internal/meson.build        |   1 +\n include/libcamera/internal/pipeline_handler.h |  23 +\n include/libcamera/internal/yaml_emitter.h     | 149 ++++\n src/apps/cam/camera_session.cpp               |  22 +-\n src/apps/cam/capture_script.cpp               | 164 +++++\n src/apps/cam/capture_script.h                 |   8 +\n src/libcamera/camera.cpp                      |  13 +\n src/libcamera/meson.build                     |   1 +\n src/libcamera/pipeline_handler.cpp            |  94 +++\n src/libcamera/yaml_emitter.cpp                | 689 ++++++++++++++++++\n 11 files changed, 1157 insertions(+), 10 deletions(-)\n create mode 100644 include/libcamera/internal/yaml_emitter.h\n create mode 100644 src/libcamera/yaml_emitter.cpp\n\n--\n2.47.0"
}