Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/13861/?format=api
{ "id": 13861, "url": "https://patchwork.libcamera.org/api/1.1/covers/13861/?format=api", "web_url": "https://patchwork.libcamera.org/cover/13861/", "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": "<20210916132015.1790-1-david.plowman@raspberrypi.com>", "date": "2021-09-16T13:20:13", "name": "[libcamera-devel,RFC,0/2] Sensor mode hints", "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/13861/mbox/", "series": [ { "id": 2538, "url": "https://patchwork.libcamera.org/api/1.1/series/2538/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2538", "date": "2021-09-16T13:20:13", "name": "Sensor mode hints", "version": 1, "mbox": "https://patchwork.libcamera.org/series/2538/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/13861/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 816C2BF01C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 16 Sep 2021 13:20:24 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EB1CA6918A;\n\tThu, 16 Sep 2021 15:20:23 +0200 (CEST)", "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 445376916F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 16 Sep 2021 15:20:22 +0200 (CEST)", "by mail-wm1-x32a.google.com with SMTP id\n\tz184-20020a1c7ec1000000b003065f0bc631so7388862wmc.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 16 Sep 2021 06:20:22 -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\tf3sm3233425wmj.28.2021.09.16.06.20.21\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 16 Sep 2021 06:20:21 -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=\"WZ2L3Byq\"; 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=iG+z2XG3WoRA+Vl2v1qQhE3PcV4Q/c8s1XmMCSzIzgQ=;\n\tb=WZ2L3ByqcA1H7TQLibc4AfpbYrRxYUuiA0piF1gJX2GanSOqVEbgihpcTH2u51jTW3\n\tf0lhf88d2WICYmb+omq90uiGMqUC5aW9uEu1ZIkYJZAJTaE6BKYQLc2hryrLr8v2vw0H\n\tnYOdqfrxUMm2Dn/hrcvUw9LR0P7fmtAdhc3Nng39vy6qkc2WNiG7eKSS9di8TqyWw84k\n\ttIs+bvOGQydenVo5LpcHYNAukMohfiW2hU7Q07g6Hk+btoW6ciEFbcjl5KjnMKLl6qcN\n\tFBP+HfIoZMOOYE5WvEhYr83duvIIsoSce/iHyQv0TjFK70zAxi/2R20AEBK2jFUUk/JO\n\tBUDg==", "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=iG+z2XG3WoRA+Vl2v1qQhE3PcV4Q/c8s1XmMCSzIzgQ=;\n\tb=Dn8stDqbrts/VOvqc4aULyluE4Qrfenm+rtA5GdoDZ3cUEf/Cdio7KotBbTfjiz+wd\n\tuXw6NcUkafnyI8nDj2r3bNYmSSkcTC8rAaN9gMs9HhLjUujj8CsHgIEFXBz9zapSwdN1\n\t9C8bgUcIeyH7xxFu+ZS6wnRPp22VQhAf7oJN6Ie1nwkOUexdUs/tSXVSOga8vZJEgH1X\n\tMrkDDutBRQpC/eUYGkh1HZ1frPUrdDR0rYoo8cBXCJPBBAWQkHNCMebxzqYBKWnEBCuz\n\tKlqj6AEd2Lv0Un4+/l35nynqrr8o2pWNSpuQPDgcy+y08Pz69d9h1Fu2loIlO5H20vwI\n\t/cBQ==", "X-Gm-Message-State": "AOAM533oi7AMb04ZSzrBna1hbEsg0WBOXp0NTM/IDn1yal7SUTminoEp\n\tSv9Qq7ofu4+0YkzWtI6YAiEDlNpyaXUNCotK", "X-Google-Smtp-Source": "ABdhPJyvsubYjYFXvERuY/xPhSAUMxH++LSy2lCut4ZStG594I4Xz7TEzo5e/enf829TQoboG8teFg==", "X-Received": "by 2002:a1c:28b:: with SMTP id 133mr5045710wmc.14.1631798421575; \n\tThu, 16 Sep 2021 06:20:21 -0700 (PDT)", "From": "David Plowman <david.plowman@raspberrypi.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Thu, 16 Sep 2021 14:20:13 +0100", "Message-Id": "<20210916132015.1790-1-david.plowman@raspberrypi.com>", "X-Mailer": "git-send-email 2.20.1", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [RFC PATCH 0/2] Sensor mode hints", "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 first attempt at functionality that allows applications to\nprovide \"hints\" as to what kind of camera mode they want.\n\n1. Bit Depths and Sizes\n\nSo far I'm allowing hints about bit depth and the image sizes that can\nbe read out of a sensor, and I've gathered these together into\nsomething I've call a SensorMode.\n\nI've added a SensorMode field to the CameraConfiguration so that\napplications can optionally put in there what they think they want,\nand also a CameraSensor::getSensorModes function that returns a list\nof the supported modes (raw formats only...).\n\nThere are various ways an application could use this:\n\n* It might not care and would ignore the new field altogether. The\n pipeline handler will stick to its current behaviour.\n\n* It might have some notion of what it wants, perhaps a larger bit\n depth, and/or a range of sizes. It can fill some or all of those\n into the SensorMode and the pipeline handler should respect it.\n\n* Or it could query the CameraSensor for its list of SensorModes and\n then sift through them looking for the one that it likes best.\n\n2. Field of View and Framerates\n\nThe SensorMode should probably include FoV and framerate information\nso that applications can make intelligent choices automatically.\nHowever, this is a bit trickier for various reasons so I've left it\nout. There could be a later phase of work that adds these.\n\nEven without this, however, the implementation gets us out of our\nrather critical hole where we simply can't get 10-bit modes. It also\nprovides a better alternative to the current nasty practice of\nrequesting a raw stream specifically to bodge the camera mode\nselection, even when the raw stream is not actually wanted!\n\n3. There are 2 commits here\n\nThe first adds the SensorMode class, puts it into the\nCameraConfiguration, and allows the supported modes to be listed from\nthe CameraSensor. (All the non-Pi stuff.)\n\nThe second commit updates our mode selection code to select according\nto the hinted SensorMode (figuring out defaults if it was empty). But\nit essentially works just the same, if in a slightly more generic way.\n\nThe code here is fully functional and seems to work fine. Would other\npipeline handlers be able to adapt to the idea of a \"hinted\nSensorMode\" as easily?\n\n\nAs always, I'm looking forward to people's thoughts!\n\nThanks\nDavid\n\nDavid Plowman (2):\n libcamera: Add SensorMode class\n libcamera: pipeline_handler: raspberrypi: Handle the new SensorMode\n hint\n\n include/libcamera/camera.h | 3 +\n include/libcamera/internal/camera_sensor.h | 4 +\n include/libcamera/meson.build | 1 +\n include/libcamera/sensor_mode.h | 50 +++++++++\n src/libcamera/camera_sensor.cpp | 15 +++\n src/libcamera/meson.build | 1 +\n .../pipeline/raspberrypi/raspberrypi.cpp | 105 +++++++++++++-----\n src/libcamera/sensor_mode.cpp | 60 ++++++++++\n 8 files changed, 212 insertions(+), 27 deletions(-)\n create mode 100644 include/libcamera/sensor_mode.h\n create mode 100644 src/libcamera/sensor_mode.cpp" }