Show a cover letter.

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

{
    "id": 18034,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/18034/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/18034/",
    "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": "<20221216143344.8177-1-david.plowman@raspberrypi.com>",
    "date": "2022-12-16T14:33:41",
    "name": "[libcamera-devel,0/3] Fix colour spaces on Raspberry Pi",
    "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/18034/mbox/",
    "series": [
        {
            "id": 3677,
            "url": "https://patchwork.libcamera.org/api/1.1/series/3677/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3677",
            "date": "2022-12-16T14:33:41",
            "name": "Fix colour spaces on Raspberry Pi",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/3677/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/18034/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 263D3C3200\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 16 Dec 2022 14:33:50 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 76A836339F;\n\tFri, 16 Dec 2022 15:33:49 +0100 (CET)",
            "from mail-ej1-x629.google.com (mail-ej1-x629.google.com\n\t[IPv6:2a00:1450:4864:20::629])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E64AB603D0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Dec 2022 15:33:47 +0100 (CET)",
            "by mail-ej1-x629.google.com with SMTP id u19so6558484ejm.8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Dec 2022 06:33:47 -0800 (PST)",
            "from pi4-davidp.lan (plowpeople3.plus.com. [80.229.223.72])\n\tby smtp.gmail.com with ESMTPSA id\n\tmb4-20020a170906eb0400b0073dd8e5a39fsm907903ejb.156.2022.12.16.06.33.46\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 16 Dec 2022 06:33:46 -0800 (PST)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671201229;\n\tbh=RD/JCYKdDNObt8lsyWujFgzMlrmQ4csJkCVMfg7OSdE=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=eJZeQ0WSn7Smm7eLxnQFNN8FdCdaM4yhGpBhLlM+6oPbBvpODrUjOK0WtOK44h6Zt\n\tPnIdsWcPwJjO74emvFniDtHvjmuQGYolPQGkIJattwrOqQwOhETH+xPxF+0fFA8l+C\n\tgLtAuuIU1riFQ81VgJNBD5sA02vLUhGUrscccnBXjMjmVRmvCO+Dgv0o+AxN9f41xa\n\tUaMa2vNMUs8NX/t6THiPCmQWfN3kxRZlK3mPwX/euC70XLiR/mtbNdzq+eqxKCvg3H\n\te9i3wwvhu4YqcpMxupYXDSCNtaiSiTth45Ty/JySjqcg5Cp7Odv7Yfeb3Xc+vgCeAz\n\tF7eVTtuJa49kQ==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\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=G+ShPsgGPFpoqHj49ZDpjHnLa154NYtk9A6g8Rb5UWY=;\n\tb=U/x+HdffQqabf4xuHe/xfKB0XUcfv627v7Ua8GSqbkYfRmDUvSPUphlag4tu00DhHI\n\tk0OqhJ3YNeNeUCNVg3Rgk/YoJk7sTyUKdI8VygX279OyTnhdk+toWwqA31GCeE2zdNS/\n\t5PRS/r9EogKiROs2avddrkJ3bl2qxt4FFj43FILTDw5iT88/WUIVrFwPyJKBrZBIJy99\n\tA6Tt5ks4Zu7sinXiORp1ZmF1jeeEmUOE+eqw9Ks+rxuNnIe0rg6AAE5CsbUWxdJpysw5\n\txjDsLR4Dp8QArPPrc5gcXqcLltZ4QRnzYIYkdANSI/9HgozIUojlugrbZfR8s/VJ3f6Z\n\tvGfg=="
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"U/x+Hdff\"; dkim-atps=neutral",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=G+ShPsgGPFpoqHj49ZDpjHnLa154NYtk9A6g8Rb5UWY=;\n\tb=s+tPw7sm1/XLpStKtnj65aJ0po22ABBrszJD/nRMzHw2nFsMmqcyFJkir0Vfv17Rf6\n\tFCb4Qsly5czDv8TBEvnFtKWEE1W80015MSOVJDi45/Df7kaQnu44Q4PA4PGFRs2Q7Mcu\n\tr+Yo6MAy2pwH/DPSp9I2Ovow7Rx5f8mJmXQivs//5sdgySUq73Wj0OYu9bWBY2HjWqPd\n\t3nXvoNsmMAjKepyB7z2Hzxb/EPr/2jzJaW9v2hdhYk3qrb3qvN6DHsw0p+rXgSR3V1PN\n\tz75oLcFBKOsUI1v8XN/ZOvRYoVVa5pIPFwJnK+dSaD+wKMeKnuZvFTXGPuBgQCdiS8wm\n\tJLkA==",
        "X-Gm-Message-State": "ANoB5pkvwC4dSBDeKZwJT/XywiigdJ0JFVtINAWa/Tpt1xGko+utsqnW\n\tDIVUdLe26UA4HJsT0dpsZhrxjtB2XwtwTeBt",
        "X-Google-Smtp-Source": "AA0mqf7MKY4r+F2XgUfwfzZwCWXUwzNBVGYROcPrh+YC78kNtfPbR25tIt869VmE+89LgaPtS2Di1w==",
        "X-Received": "by 2002:a17:906:8241:b0:7be:1ce1:ce3d with SMTP id\n\tf1-20020a170906824100b007be1ce1ce3dmr24222291ejx.66.1671201227231; \n\tFri, 16 Dec 2022 06:33:47 -0800 (PST)",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Fri, 16 Dec 2022 14:33:41 +0000",
        "Message-Id": "<20221216143344.8177-1-david.plowman@raspberrypi.com>",
        "X-Mailer": "git-send-email 2.30.2",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH 0/3] Fix colour spaces on Raspberry Pi",
        "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": "David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>",
        "Reply-To": "David Plowman <david.plowman@raspberrypi.com>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Hi everyone\n\nI'm guessing that not too many of you are aware that mainline\nlibcamera has been broken on the Raspberry Pi since the\nsummer. Specifically, changes to the way colour spaces work were\nresponsible, and since then we've been living off our own fork of the\ntree with enough of those changes reverted.\n\nBut clearly this is not a good situation so this patch set makes\nlibcamera work on the Raspberry Pi again.\n\nThere are 3 patches. I sense some of them may provoke a fair bit of\ndiscussion.\n\n1. I think the first patch will be uncontroversial, it merely fixes a\nbug in validateColorSpaces that has been there since the dawn of time,\nbut no one ever noticed!\n\n2. Again in validateColorSpaces, we note that \"streams sharing a\ncolour space\" is quite broken because RGB streams have no YCbCr\ninformation in them, and would therefore destroy any YUV streams they\nget \"shared\" on top of! We fix that by choosing not only a \"principal\"\nstream, but also a \"principal\" YUV stream.\n\nThis has all become annoyingly complicated and I wonder whether we\nshould just remove this whole \"colour space sharing\" thing. I thought\nI was doing the world a favour but honestly, it might be easier to\ndeal with in the Raspberry Pi PH where the options are considerably\nmore constrained. Opinions sought on that, please!\n\n3. The last patch is the worst. It does some massaging on colour\nspaces so that the \"right\" conversions happen downstream, the \"right\"\nthings get passed to the Raspberry Pi hardware drivers (that only care\nabout the V4L2_COLORSPACE) and it also knows how to check more\ncarefully whether what gets returned is really what it expected.\n\nThere is obviously a degree of trade-off between what is happening\nhere and the behaviour of the underlying layers of software, which is\nsomething one might want to look at. Though I wouldn't want people to\nforget that things are broken for us right now!\n\nHaving said all that, and in spite of the general angst, these patches\ndo actually work.\n\nThanks!\nDavid\n\nDavid Plowman (3):\n  libcamera: camera: fix validateColorSpaces to choose the correct\n    \"main\" colour space\n  libcamera: camera: Fix validateColorSpaces not to loose YCbCr\n    encodings\n  pipeline: raspberrypi: Fix colour spaces by handling missing YCbCr\n    information\n\n src/libcamera/camera.cpp                      | 51 +++++++++++++++--\n .../pipeline/raspberrypi/raspberrypi.cpp      | 56 ++++++++++++++++++-\n 2 files changed, 99 insertions(+), 8 deletions(-)"
}