Cover Letter Detail
Show a cover letter.
GET /api/covers/1372/?format=api
{ "id": 1372, "url": "https://patchwork.libcamera.org/api/covers/1372/?format=api", "web_url": "https://patchwork.libcamera.org/cover/1372/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/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": "<20190606205654.9311-1-kieran.bingham@ideasonboard.com>", "date": "2019-06-06T20:56:49", "name": "[libcamera-devel,RFC,0/5] Libcamera Controls", "submitter": { "id": 4, "url": "https://patchwork.libcamera.org/api/people/4/?format=api", "name": "Kieran Bingham", "email": "kieran.bingham@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/1372/mbox/", "series": [ { "id": 340, "url": "https://patchwork.libcamera.org/api/series/340/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=340", "date": "2019-06-06T20:56:49", "name": "Libcamera Controls", "version": 1, "mbox": "https://patchwork.libcamera.org/series/340/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/1372/comments/", "headers": { "Return-Path": "<kieran.bingham@ideasonboard.com>", "Received": [ "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0E1DD60BB7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 6 Jun 2019 22:56:58 +0200 (CEST)", "from localhost.localdomain\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7A92033B;\n\tThu, 6 Jun 2019 22:56:57 +0200 (CEST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1559854617;\n\tbh=g7FaXyDk4re0VBUHnEYhMEkQfb6hcIdedMWtzMPlpAY=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=A8vrRD1LE9Ju5Cpaf6sknpHqmRBqp5R4MNYnL18knPEcmK7L3COM3bWTogXbN8+Yw\n\tL+7FydLfzBrdzIMH8ZkYmk+HiNhx+HvgX0P9yHZXdxRuQTgLi3P8yiV4fvfN2NPCUB\n\tzoHfXHXMLeKK65P5Xo50UeCExDjW+pdX1SKoQL64=", "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>", "To": "LibCamera Devel <libcamera-devel@lists.libcamera.org>", "Date": "Thu, 6 Jun 2019 21:56:49 +0100", "Message-Id": "<20190606205654.9311-1-kieran.bingham@ideasonboard.com>", "X-Mailer": "git-send-email 2.20.1", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [RFC PATCH 0/5] Libcamera Controls", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.23", "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>", "X-List-Received-Date": "Thu, 06 Jun 2019 20:56:58 -0000" }, "content": "I've been sketching out these controls for a bit, and I wanted to get them on\nthe list as a refernce point for some furthur discussions.\n\nThe patches are based on top of a combination of both Jacopo's V4L2 Control\nseries, and Niklas' enum series.\n\nI am still undecided as to whether the best route forwards is to keep the\ncontrols as a std::set <Control> with the Control class handling the ID and\ntype checking, or if a std::map<ControlID, ControlValue> might be more\nflexible.\n\nWith a control class, I can make sure the construction logic is contained, but\nI lose the ease of 'mapping' an ID to the control value within the std::set.\nI've implemented a comparator, which allows the use of .find(), but I'm not\nsure I'm fond of that yet, especially in the pain points of handling searching\nfor an ID which isn't in the set.\n\nI'd love to be able to make a set operate more like a map using the internal\nkey, or perhaps make a map look more like a set, so that the ID and Value are\nmore closely associated.\n\n\nI have also considered that I could update Jacopo's V4L2 controls to utilise\nthe ControlValue type, which would then allow for any controls which want to\nmap directly to a V4L2 control - the ControlValue itself could be passed to the\nV4L2 layer and populated there. However this would only then push the\nrequirement to 'find' the appropriate ControlValue object down to the V4L2\nlayer.\n\nAnyway, there's a lovely demo at the end which shows setting the Brightness\ncontrol from the qcam application as a sine wave which makes for a visual\nclarification that the controls are successfully being set.\n\nAs noted there, We will likely want to extend controls such that a particular\ncontrol knows about it's max/min/default values. And that then (to me) provides\nanother argument to use the class Control with a set over a map.\n\nAnyway, any thoughts on a postcard sized reply. Please don't focus on typos' or\ngrammar, as this is an RFC about the usage and API more than the patches\nthemselves.\n\n\nKieran Bingham (5):\n libcamera: Add control handling\n libcamera: request: add a control set\n libcamera: pipeline: Add readControls(), writeControl() interfaces\n QCam: Set a read control on each request to get Gain value\n [PoC] QCam: Control demo: A SineWave Brightness\n\n include/libcamera/controls.h | 106 ++++++++\n include/libcamera/meson.build | 1 +\n include/libcamera/request.h | 4 +\n src/libcamera/controls.cpp | 310 +++++++++++++++++++++++\n src/libcamera/include/pipeline_handler.h | 3 +\n src/libcamera/meson.build | 1 +\n src/libcamera/pipeline/ipu3/ipu3.cpp | 19 ++\n src/libcamera/pipeline/raspberrypi.cpp | 108 +++++++-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 19 ++\n src/libcamera/pipeline/uvcvideo.cpp | 127 +++++++++-\n src/libcamera/pipeline/vimc.cpp | 19 ++\n src/qcam/main_window.cpp | 24 ++\n 12 files changed, 739 insertions(+), 2 deletions(-)\n create mode 100644 include/libcamera/controls.h\n create mode 100644 src/libcamera/controls.cpp" }