Show a cover letter.

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

{
    "id": 14193,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/14193/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/14193/",
    "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": "<20211020110825.12902-1-david.plowman@raspberrypi.com>",
    "date": "2021-10-20T11:08:18",
    "name": "[libcamera-devel,v3,0/7] Colour spaces",
    "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/14193/mbox/",
    "series": [
        {
            "id": 2641,
            "url": "https://patchwork.libcamera.org/api/1.1/series/2641/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2641",
            "date": "2021-10-20T11:08:18",
            "name": "Colour spaces",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/2641/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/14193/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 717DABDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Oct 2021 11:08:31 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 656B868F58;\n\tWed, 20 Oct 2021 13:08:30 +0200 (CEST)",
            "from mail-wm1-x335.google.com (mail-wm1-x335.google.com\n\t[IPv6:2a00:1450:4864:20::335])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 376736023A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Oct 2021 13:08:28 +0200 (CEST)",
            "by mail-wm1-x335.google.com with SMTP id\n\tl38-20020a05600c1d2600b0030d80c3667aso9245599wms.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Oct 2021 04:08:28 -0700 (PDT)",
            "from pi4-davidp.pitowers.org\n\t([2a00:1098:3142:14:1ce1:9965:4328:89c4])\n\tby smtp.gmail.com with ESMTPSA id\n\tf20sm1929654wmq.38.2021.10.20.04.08.27\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 20 Oct 2021 04:08:27 -0700 (PDT)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"lJTD/NyP\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=emmcpZg7Njg8rzrrkpXyEiAramO3Xg6ynLaZpz9Y4g4=;\n\tb=lJTD/NyPN2B9xEIH/O0VBL4GH0EelVKiswZaCHSEkRHm+gFzqHeQnHrXftzYR4kfEQ\n\t15fHWxTpH+8Q99+qgHgMFzEIQXNADCaRnqaC2XX8qsxLjQLmoY4JTevuxKxHp4WPcnNs\n\tFZvyCbZK87JBq6RctaWwfvAdK7LC18P6G1Gn/v/QxUQqJEW5nGPzVgbbAKrl+EEueB3+\n\tKo2nlFHURuFeH5vNsGRLN0Jy1oFn/z+o/jUA6jP0hrwGasEiB+kuQPTDLHZwFzwg9hjE\n\tRC4VpXqlr3eOuNyjMrjyvrGDuQA7dEb9shuEkFU+pxchYx4VOaN8PEfa226EwLDj9sS4\n\t46XA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=emmcpZg7Njg8rzrrkpXyEiAramO3Xg6ynLaZpz9Y4g4=;\n\tb=Dko8CcgAGjwygRsUv4OvjVEAno5Q6QSfloLHjEtu3yqgXSyF/oacvvVIWUodcouXcr\n\tNNwUy7Pw1H6dF1yBJX4AF+dUu3u4UQLgom6qJHoAysQLP3xgOmK6vFXeNXzX6w/Oc00l\n\tO4WKUnMC3ZnPhXwuyUM1bj+n1AxapVWFNJLU+50OLTFLm80ObOW3WakjotKqEZD01/HN\n\t68/nTh+5XP5WrLu8KFcpLHfHyY3fwMHW6pJioo2F0tMMklIHYqi4DszTL5BfSPcZLzkp\n\tSTXoTnRpkrwF1SO0QzZA0LxhqRXxKfUGFCG+0bcAQpDkNBQlp1S8xUh9vY09CMary3d4\n\t6t5w==",
        "X-Gm-Message-State": "AOAM530FEUenOXexAw3dawMP3aHn0cruImp+YUNpNDqsRQ90aUIzXTOX\n\tuXWo2hcsvljAHztYVS6ocHw1zZgrPucXWw==",
        "X-Google-Smtp-Source": "ABdhPJxWEt8qLJGNlcvs8E6AEPfFgdthIy85Mf26RS7ArR3LEnkPlWvhavHwGpguQ+cVp728m6+bZA==",
        "X-Received": "by 2002:adf:a4d5:: with SMTP id\n\th21mr51125662wrb.203.1634728107507; \n\tWed, 20 Oct 2021 04:08:27 -0700 (PDT)",
        "From": "David Plowman <david.plowman@raspberrypi.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Wed, 20 Oct 2021 12:08:18 +0100",
        "Message-Id": "<20211020110825.12902-1-david.plowman@raspberrypi.com>",
        "X-Mailer": "git-send-email 2.20.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v3 0/7] Colour spaces",
        "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\nHere's a new version of the colour space patches. A huge amount has\nchanged, even since I last discussed it with folks!\n\n1. The ColorSpace class\n\nThere's a ColorSpace class with 4 enums, one for each of: the colour\nprimaries, the Y'CbCr encoding, the transfer function and the range\n(quantisation).\n\nNotes:\n\n- There are no \"default\" values at all. Every standard colour space\n  has a unique representation in terms of these enums.\n\n- But each enum does have an \"undefined\" value, in case a driver\n  framework (such as V4L2) uses something that the ColorSpace class\n  does not recognise.\n\n- It's conceivable that the class could be extended in future by using\n  a \"custom\" enum value and then adding further fields (such as colour\n  primaries or transfer functions). But this is out-of-scope for now.\n\n2. Stream configurations\n\nThe StreamConfiguration contains two ColorSpace fields, the one an\napplication wants (the \"requested\" colour space) and the one it will\nget (the \"actual\" colour space), which is filled in by the validate()\nmethod.\n\nNotes:\n\n- The requested colour space may never contain \"undefined\" values,\n  though the actual colour space, returned by the system, may.\n\n- The reason for having two fields is so that we don't change the\n  requested colour space, which would make the configuration harder to\n  use later, or to change and re-validate.\n\n- I've moved away from allowing colour spaces to be \"unset\". I couldn't\n  really figure out how this would play nicely with validate() and\n  configure(), and it does make the whole thing easier to understand.\n\n3. Pipeline handlers\n\nIn generateConfiguration, pipeline handlers should set\nColorSpace::Jpeg for stills and ColorSpace::Rec709 for\nvideo. Application code must be aware of this, and overwrite these\nvalues if they want something different. Then validate() should call\nthe new validateColorSpaces method which checks the requested colour\nspaces. Ideally, pipeline handlers will then go on to verify whether\nthe requested colour spaces are actually supported.\n\nAs regards ipu3/rkisp1, I can easily add commits for those first\nsimple changes if it would be helpful. Beyond that, verifying what the\nhardware will really do is probably best left to someone who\nunderstands those pipelines!\n\nThanks, and sorry that this is all so long!\n\nDavid\n\nDavid Plowman (7):\n  libcamera: Add ColorSpace class\n  libcamera: Add ColorSpace fields to StreamConfiguration\n  libcamera: Convert between ColorSpace class and V4L2 formats\n  libcamera: Support passing ColorSpaces to V4L2 video devices\n  libcamera: Support passing ColorSpaces to V4L2 subdevices\n  libcamera: Add validateColorSpaces to CameraConfiguration class\n  libcamera: pipeline: raspberrypi: Support color spaces\n\n include/libcamera/camera.h                    |   2 +\n include/libcamera/color_space.h               |  88 ++++++\n include/libcamera/internal/v4l2_device.h      |   7 +\n include/libcamera/internal/v4l2_subdevice.h   |   2 +\n include/libcamera/internal/v4l2_videodevice.h |   2 +\n include/libcamera/meson.build                 |   1 +\n include/libcamera/stream.h                    |   4 +\n src/libcamera/camera.cpp                      |  53 ++++\n src/libcamera/camera_sensor.cpp               |   1 +\n src/libcamera/color_space.cpp                 | 256 ++++++++++++++++++\n src/libcamera/meson.build                     |   1 +\n .../pipeline/raspberrypi/raspberrypi.cpp      |  42 +++\n src/libcamera/stream.cpp                      |  25 ++\n src/libcamera/v4l2_device.cpp                 | 171 ++++++++++++\n src/libcamera/v4l2_subdevice.cpp              |  37 ++-\n src/libcamera/v4l2_videodevice.cpp            |  69 ++++-\n 16 files changed, 755 insertions(+), 6 deletions(-)\n create mode 100644 include/libcamera/color_space.h\n create mode 100644 src/libcamera/color_space.cpp"
}