Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/14606/?format=api
{ "id": 14606, "url": "https://patchwork.libcamera.org/api/1.1/covers/14606/?format=api", "web_url": "https://patchwork.libcamera.org/cover/14606/", "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": "<20211115161205.24335-1-david.plowman@raspberrypi.com>", "date": "2021-11-15T16:11:58", "name": "[libcamera-devel,v5,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/14606/mbox/", "series": [ { "id": 2719, "url": "https://patchwork.libcamera.org/api/1.1/series/2719/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2719", "date": "2021-11-15T16:11:58", "name": "Colour spaces", "version": 5, "mbox": "https://patchwork.libcamera.org/series/2719/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/14606/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 5880DBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Nov 2021 16:13:00 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 746196038B;\n\tMon, 15 Nov 2021 17:12:59 +0100 (CET)", "from mail-wm1-x334.google.com (mail-wm1-x334.google.com\n\t[IPv6:2a00:1450:4864:20::334])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 62F5E60233\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Nov 2021 17:12:57 +0100 (CET)", "by mail-wm1-x334.google.com with SMTP id\n\tz1-20020a05600c220100b00337f97d2464so147176wml.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Nov 2021 08:12:57 -0800 (PST)", "from pi4-davidp.pitowers.org\n\t([2a00:1098:3142:14:1ce1:9965:4328:89c4])\n\tby smtp.gmail.com with ESMTPSA id\n\tj40sm16315615wms.16.2021.11.15.08.12.56\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 15 Nov 2021 08:12:56 -0800 (PST)" ], "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=\"Kc02VjmY\"; 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=0eCGZCtOMNNAcKBSY7zzcKCySiykmjRzz1eWqQG4Erg=;\n\tb=Kc02VjmYppD+ZTUlLvqc2boyQO0wBE+CxGPCN5bNmtoUwsTulCK89mAMTVWW5rBWMg\n\t1+tcU7u3McFgI7vC4AB6iS++vhy6j8+0NFAWGhIgtEv+06khSyiuQHA7LcCAFPI0XgIA\n\trzWFqOzesKmsBMOAyd74P9kEwaz7iuLngurEhffmjscvFu+LgrJo/DJO3/PCbXgFtV6w\n\tBEsKAGswP53V/f8GOp0GUFt/74WjF9/qL7LEUK324MqF8dyUmtTFO0YX4TUD2BwpUUmX\n\turmufVTXDJNZt9mPwMQ3AsLjYDXauXHkCg7wVLB6C5tRGNR9HRzTRY7QHZKD8jje8KGj\n\tL0gw==", "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=0eCGZCtOMNNAcKBSY7zzcKCySiykmjRzz1eWqQG4Erg=;\n\tb=eo1rSFzI1rf77wCdAQQH/a1xcQ0Q81/nQYRV6hHnlt7GmNA7bwZ/B9rFhoovrM8tJr\n\tTPITTIDtqjHIvnd0i42N5p4y+9NWFSc9Xfdr1sH3/Td0V17CPjBkhIJc0HS/Oh/DicbZ\n\tnfoJyLBtc2ITYpGDgo+ZtPV/oFk3P7koRAuGOWBxURtAiIWH1L6q6ppI4lbQJK/1/JR7\n\tC9o54V9S3ddWWGpDaS2yfUZw08RxfZJUW12NjGtt1Ne2TSkT+ZrJKelWQuGxXvOSepZS\n\tg7HtlV+Cp79mmMnnm79pnnlp/jg78mmV6kg2KmDAd8bNxPtxdebzxtGePtINncIjVs6d\n\tw0vQ==", "X-Gm-Message-State": "AOAM532jty7x0NnWUBCdj8duVyj4eSghoiLs2jRIKMywGKCoL5mYfRhQ\n\t5ZUDjcKlZ5usJHFy+exCnLLgKQ==", "X-Google-Smtp-Source": "ABdhPJz8YHWz+53s2fvJPy6Sm5mCmrutQadmppVUeMNwgb4mrVPD6EEzkv5dsDY84efCCYTVkx0WWg==", "X-Received": "by 2002:a05:600c:4e01:: with SMTP id\n\tb1mr13145258wmq.109.1636992776973; \n\tMon, 15 Nov 2021 08:12:56 -0800 (PST)", "From": "David Plowman <david.plowman@raspberrypi.com>", "To": "hverkuil-cisco@xs4all.nl, laurent.pinchart@ideasonboard.com,\n\tkieran.bingham@ideasonboard.com, jacopo@jmondi.org, tfiga@google.com, \n\tnaush@raspberrypi.com, libcamera-devel@lists.libcamera.org", "Date": "Mon, 15 Nov 2021 16:11:58 +0000", "Message-Id": "<20211115161205.24335-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 v5 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\n\nThis is a re-post of this patch set with an increased distribution\nlist.\n\nFor the moment I would say the \"code details\" are not so important as\nthose can be sorted out later, it's the basic ideas here that we need\nto get right first.\n\nTo try and summarise those:\n\n1. There's a ColorSpace class consisting of 4 enums, for the\nprimaries, the Y'CbCr encoding, the transfer function and the\nquantisation (range).\n\n2. Every colour space has just one representation in terms of these\nfour enums.\n\n3. I've insisted that pipeline handlers must say what colour space\nthey want. I'm nervous about letting people \"not say\", and then you\nget a slightly wrong colour space and never notice!\n\n4. I'm worried about drivers (in future, perhaps) wanting to use\ncolour spaces that aren't listed in the ColorSpace class. Do I worry\ntoo much?\n\n5. Point 4 led me to having two ColorSpace fields in the configuration\nobject, one for the \"colour space you want\", and one for \"what the\ndriver will give you\".\n\n6. Again, because of point 4, I've allowed the \"what the driver will\ngive you\" colour space to be \"undefined\". But you _may not_ pass\n\"undefined\" as the \"colour space you want\".\n\n7. Whenever colour spaces don't match up I think there need to be\nwarnings that are hard to ignore, because it's so easy to get colour\nspaces wrong (and never notice). At the same time, outright failure\nseems unhelpful because there really could be times when you can't\nhave the colour space you really want.\n\n8. I've suggested pipeline handlers should pick reasonable defaults in\ntheir generateConfiguration() methods. Perhaps JPEG for stills, and\nRec.709 for video.\n\n9. I do wonder about a future where people might want to specify\ncustom colour spaces (obviously there'd have to be driver support). I\nimagine that happening through a \"Custom\" value for some of the enums,\nand then extra fields which are then \"active\". For example, you might\nspecify your 3 colour primaries.\n\nI think that's it. If I can clarify anything further between now and\nWednesday, please don't hesitate to ask.\n\nBest regards\nDavid\n\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 | 51 ++++\n src/libcamera/camera_sensor.cpp | 1 +\n src/libcamera/color_space.cpp | 257 ++++++++++++++++++\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 | 42 ++-\n src/libcamera/v4l2_videodevice.cpp | 67 ++++-\n 16 files changed, 758 insertions(+), 5 deletions(-)\n create mode 100644 include/libcamera/color_space.h\n create mode 100644 src/libcamera/color_space.cpp" }