Show a cover letter.

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

{
    "id": 25465,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/25465/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/25465/",
    "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": "<20251210164055.17856-1-david.plowman@raspberrypi.com>",
    "date": "2025-12-10T16:15:15",
    "name": "[00/11] Bayer re-processing",
    "submitter": {
        "id": 42,
        "url": "https://patchwork.libcamera.org/api/1.1/people/42/?format=api",
        "name": "David Plowman",
        "email": "david.plowman@raspberrypi.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/25465/mbox/",
    "series": [
        {
            "id": 5650,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5650/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5650",
            "date": "2025-12-10T16:15:15",
            "name": "Bayer re-processing",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5650/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/25465/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 2EF4BC3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 10 Dec 2025 16:41:01 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D2EDE614AE;\n\tWed, 10 Dec 2025 17:41:00 +0100 (CET)",
            "from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com\n\t[IPv6:2a00:1450:4864:20::32a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 853E861499\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 10 Dec 2025 17:40:58 +0100 (CET)",
            "by mail-wm1-x32a.google.com with SMTP id\n\t5b1f17b1804b1-47774d3536dso305985e9.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 10 Dec 2025 08:40:58 -0800 (PST)",
            "from davidp-pi5.pitowers.org\n\t([2a00:1098:3142:1f:88ea:c658:5b20:5e46])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-47a88371e13sm1270415e9.11.2025.12.10.08.40.57\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 10 Dec 2025 08:40:57 -0800 (PST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"VRXWqLaj\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1765384858; x=1765989658;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=f3HOiwIt2OHTsUbF9Zbu4yyPAVqXezMP7iZdr11Hqd8=;\n\tb=VRXWqLajf93zgFeCKZWVE9PF+/GSr07O3ulsGmf7hY7TLGwdj+w8MhUQaNLJ7u/Ucf\n\tVoOjW7ZlPodj6RbHuJCIPwi9r25pqmyPD0gpfsAGvVe0ufpJLvCg1PK5kjtoYPDfxJJs\n\tNcnY+fvd+GrgcGsJnAOBVcgWVVDMLUskKphhGPuULZhUOu5pKC6S4Hc8Q6YIZUHvJxsL\n\t2QuQVUoSXhrMrAFNk1FCUlLeFQXnozevytVrdcykYAzs2VnhkNhedoilQbFVSk9qW2Mj\n\t8RwR3Loe4nboj5vtFhYWSqpmc4OR/WfBgU+YLpDO4LGUO7eFjqp1rjQ/5xJTOYrmv5oE\n\tNTJw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1765384858; x=1765989658;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=f3HOiwIt2OHTsUbF9Zbu4yyPAVqXezMP7iZdr11Hqd8=;\n\tb=BAAQ4mHYohiPmSq0sP29z6PoUjNHJh5Zb10Pb+41/6RNlYg14xFoPwuoDBxSN2XaWf\n\t1BBiVj71FZbzwIwh8PdLVlQOElQWJtLv2WPVcuZTY5lLgaz7O8bcbHTz7xQGA7+t/2fD\n\tFk71SetcpWj7yfXYYPs3JVDokt95gucKBnx5m2IcLDtVzyk7bHVnwYNoJTZVVXAENXXA\n\toYEpbxPT4YiAY/0/XRYNbIFU4v7ulPBkWSBiM1xeLtH12WSLs5/C3iPzeEGhlLTmczTH\n\tgUHZz+rdxKVXTvVhQTTLM10EXNpsuxsQvdBdJu1Xjsf7jRWyBn6qs1GMdKCq86WJYvmD\n\tRXEw==",
        "X-Gm-Message-State": "AOJu0YyWsLIk5SH8YursqTn/YXnqn5XmGwjFKBRqu43z14+hJQhaxPW6\n\t51LuaIhDrbRwKY82A6WSfrvVBolmRgtsLRObab8iW3fxSLL8V1rRiihHLIMQzUQ4itMMBae5kE3\n\tMZxc0",
        "X-Gm-Gg": "ASbGnctplYdrhIHT0fn1eaGTaPCFkL79H9uT4RBGcllsiLTFgXbTT7CE5CXnoX67omh\n\tY8x0bjVLG9w7tRhPxrwcemwTV0rOIqmhIQ5y/NZtahG4evFCDlG35JZKccrI+YphYsivGdh5u92\n\tRomSzV1gt1pKUjarUZyFB9PHX2dxeOCp8Y7K7aN4eI2f+tlwKZ+lClqAnR+FazghgMs4s1cwvNv\n\tnpIDfHNN4Rde/3Nw9KV/IUeS4Rr0cjukaQcDrsXhtR5TYpurSQuFO5qPO214CsJb6L/ZaVWdZMS\n\tj9iZxmdWXNW8cRoSQvThtAH+BfnzoG6YWN5bFILsIvzUn31UxjFDjsE7BKCdwnTo1O8U0ZLlcUt\n\tFvLi8xqYYUWmdM1uc2iuoR2ju3KleJSvcnLLAXXbFW6wCni/FDvefyz92MqcASp2Dfacph1i08R\n\t7Cf6tYSwoyyRaXJ5eS9e3JlcX6CplBPN0lNKEGrE7QjNfBlBkpACCxoXaHVwf6s4O6marZbnEye\n\tdOGv5nO81Lhv2+YzVMSpRNQ+nsDtzc/n6GTpry0",
        "X-Google-Smtp-Source": "AGHT+IFIYIINvjgXZ37FvpOTz7H940OcOPXVLhiQOg5nrWUqH87p3Vu/ClzW/vRM2gcLKeFPBPPHAw==",
        "X-Received": "by 2002:a05:600c:4f53:b0:471:5c0:94fc with SMTP id\n\t5b1f17b1804b1-47a886c6169mr443475e9.6.1765384857755; \n\tWed, 10 Dec 2025 08:40:57 -0800 (PST)",
        "From": "David Plowman <david.plowman@raspberrypi.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "David Plowman <david.plowman@raspberrypi.com>",
        "Subject": "[PATCH 00/11] Bayer re-processing",
        "Date": "Wed, 10 Dec 2025 16:15:15 +0000",
        "Message-ID": "<20251210164055.17856-1-david.plowman@raspberrypi.com>",
        "X-Mailer": "git-send-email 2.47.3",
        "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": "Hi everyone\n\nAs I mentioned to some of you last week, I'm keen actually to make\nsome more progress with Bayer re-processing, with a view to it\nbecoming a bona fide feature. So here it is again, this time as a\nregular \"PATCH\" rather than an \"RFC\".\n\nThe changes over the RFC version are only minor. Apart from a rebase,\na couple of things have been fixed, and a couple of things slightly\nadjusted in relatively minor ways. But the gist of it is the\nsame. Therefore we have:\n\n* A \"memory camera\" that is the gateway to Bayer re-processing. These\n  are made on demand rather than at startup. It's possible that a\n  pipeline handler could supprt any number of \"memory cameras\" (or\n  none). A memory camera has to be passed something that tells it\n  how to reprocess the image.\n\n* There are now \"input streams\", and a camera configuration can have a\n  \"raw input stream\" which supplies the buffer to be re-processed.\n\n* The Raspberry Pi pipeline handler handles these configurations\n  correctly.\n\nAs before, if anyone wants to try it out, there's a working branch\nhere:\n\nhttps://github.com/davidplowman/libcamera/tree/reprocessing\n\nand a demo program that converts a DNG to a JPEG, in the most\nlightningest speed you have ever witnessed, here:\n\nhttps:://github.com/davidplowman/libcamera-apps/blob/reprocessing/apps/rpicam_convert.cpp\n\nLooking foward to everyone's feedback.\n\nThanks!\nDavid\n\nDavid Plowman (11):\n  libcamera: Infrastructure to ask for \"memory\" cameras\n  libcamera: Add a direction (input or output) to the stream\n    configuration\n  libcamera: sensor: Add CameraSensorMemory class\n  pipeline: rpi: Add PipelineHandlerBase::bayerToMbusCode\n  ipa: rpi: cam_helper: Add CamHelperDefault class\n  libcamera: pipeline: rpi: Allow creation of the first \"memory\" camera\n  pipeline: rpi: Allow generation of raw input configurations\n  libcamera: Don't wait for input streams to complete\n  ipa: rpi: Support memory cameras\n  pipeline: rpi: Support memory cameras\n  pipline: rpi: Support memory cameras processing requests\n\n include/libcamera/camera_manager.h            |   4 +\n include/libcamera/internal/camera_manager.h   |   5 +\n include/libcamera/internal/camera_sensor.h    |   2 +\n .../libcamera/internal/camera_sensor_memory.h | 110 ++++\n include/libcamera/internal/meson.build        |   1 +\n include/libcamera/internal/pipeline_handler.h |   8 +\n include/libcamera/stream.h                    |  10 +\n src/ipa/rpi/cam_helper/cam_helper_default.cpp |  45 ++\n src/ipa/rpi/cam_helper/meson.build            |   1 +\n src/ipa/rpi/common/ipa_base.cpp               | 135 +++--\n src/ipa/rpi/common/ipa_base.h                 |   5 +\n src/libcamera/camera_manager.cpp              |  64 +++\n .../pipeline/rpi/common/pipeline_base.cpp     | 144 +++++-\n .../pipeline/rpi/common/pipeline_base.h       |   6 +-\n src/libcamera/pipeline/rpi/pisp/pisp.cpp      | 471 ++++++++++++------\n src/libcamera/pipeline_handler.cpp            |  23 +\n src/libcamera/request.cpp                     |   4 +-\n src/libcamera/sensor/camera_sensor_memory.cpp | 241 +++++++++\n src/libcamera/sensor/meson.build              |   1 +\n src/libcamera/stream.cpp                      |   6 +-\n 20 files changed, 1084 insertions(+), 202 deletions(-)\n create mode 100644 include/libcamera/internal/camera_sensor_memory.h\n create mode 100644 src/ipa/rpi/cam_helper/cam_helper_default.cpp\n create mode 100644 src/libcamera/sensor/camera_sensor_memory.cpp"
}