Patch Detail
Show a patch.
GET /api/patches/12672/?format=api
{ "id": 12672, "url": "https://patchwork.libcamera.org/api/patches/12672/?format=api", "web_url": "https://patchwork.libcamera.org/patch/12672/", "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": "<20210622023654.969162-1-hiroh@chromium.org>", "date": "2021-06-22T02:36:50", "name": "[libcamera-devel,RFC,v2,1/5] libcamera: camera_sensor: Reverse the key and value of test pattern mode map", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "f0bcdf8d418ee0ba63cd10852aa157fc8fa45592", "submitter": { "id": 63, "url": "https://patchwork.libcamera.org/api/people/63/?format=api", "name": "Hirokazu Honda", "email": "hiroh@chromium.org" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/12672/mbox/", "series": [ { "id": 2164, "url": "https://patchwork.libcamera.org/api/series/2164/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2164", "date": "2021-06-22T02:36:50", "name": "[libcamera-devel,RFC,v2,1/5] libcamera: camera_sensor: Reverse the key and value of test pattern mode map", "version": 2, "mbox": "https://patchwork.libcamera.org/series/2164/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/12672/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/12672/checks/", "tags": {}, "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 04ECCC321B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Jun 2021 02:37:04 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 77A2F6893A;\n\tTue, 22 Jun 2021 04:37:03 +0200 (CEST)", "from mail-pg1-x52d.google.com (mail-pg1-x52d.google.com\n\t[IPv6:2607:f8b0:4864:20::52d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 814A668931\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Jun 2021 04:37:01 +0200 (CEST)", "by mail-pg1-x52d.google.com with SMTP id h4so4333929pgp.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 21 Jun 2021 19:37:01 -0700 (PDT)", "from hiroh2.tok.corp.google.com\n\t([2401:fa00:8f:203:a025:f98b:b63b:e6b2])\n\tby smtp.gmail.com with ESMTPSA id\n\to7sm18947145pgs.45.2021.06.21.19.36.58\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 21 Jun 2021 19:36:59 -0700 (PDT)" ], "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"d8OqXYYT\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; h=from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=Zz7WzGYUO2IB6wWWddKhE1Rv1w/g7DqXt0ZLxY9iGXE=;\n\tb=d8OqXYYTsRnNgJDB/4pdmW2MrlF0SbjGExax+FzNpe1xpbIkR6djtkhs/1Nm0AGD2p\n\tMQGwDu2WbEVUEvs/iiL/WcVBZMWKc/3wZGlDFiRgTl7n1iiB125llizrfF9N0N+fqjkV\n\tkqUFhTJfHyQeouvtjggxQOvBUMTsOAXU/Q5YY=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=Zz7WzGYUO2IB6wWWddKhE1Rv1w/g7DqXt0ZLxY9iGXE=;\n\tb=UGF7LKI3vAshTKCk34944XcbE8MqYWeZ1an08XLAmrwRGvtNPXXCMgTQqVQFS5HbMs\n\tPBD1/kFAyVdavCcvDys/dfuyGwFSvoasDF1ipBa3867rh6eQ2Hj9QnR21ty/yHh6vnwg\n\txdslPBPHqqMozROHtrqslFJtPsUQ+L9WtFIHLxcfQB5Gcd0a9oI22s0PS8vHe3RdJByg\n\tvpC39hIjW0GQVOwR4sxjp2t4iHrTzgzWnyVUoIbGVX8UmNZN5sM3FCelhPnqs53inDMh\n\tsku98X16cRIViptp3p67kb1ZPLU49H7dlNcCYgluHi0JPWjjeHDNPgw/WqsulUmkQnhg\n\tCt1A==", "X-Gm-Message-State": "AOAM530CSGDNQZyCHl8JYJyk3T4TkfEC0dgfpBseVqvRGdlvvwKDyUFp\n\tLqs9RIkAIo5bA4Vhe08vVg5PYFU8zfuHQg==", "X-Google-Smtp-Source": "ABdhPJzV8Q5erra/3Wz73Qi2qEwUmlyxO2f3IDkEBg0+TXdZyH0b/kdDt6rgcWVUcla+PkIzVzyCCg==", "X-Received": "by 2002:a63:4815:: with SMTP id\n\tv21mr1477813pga.213.1624329419456; \n\tMon, 21 Jun 2021 19:36:59 -0700 (PDT)", "From": "Hirokazu Honda <hiroh@chromium.org>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Tue, 22 Jun 2021 11:36:50 +0900", "Message-Id": "<20210622023654.969162-1-hiroh@chromium.org>", "X-Mailer": "git-send-email 2.32.0.288.g62a8d224e6-goog", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [RFC PATCH v2 1/5] libcamera: camera_sensor:\n\tReverse the key and value of test pattern mode map", "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": "The key and value of the test pattern mode are originally the index of\nv4l2 control and the corresponding test pattern mode control value.\nThis key and value are useful in the initialization for reporting\navailable test pattern modes. However, the map of the reversed key and\nvalue is much more useful in applying a requested test pattern mode.\nReverses the key and value of the map as the initialization is one\ntime but the test pattern mode request will be multiple times.\n\nSigned-off-by: Hirokazu Honda <hiroh@chromium.org>\n---\n src/libcamera/camera_sensor.cpp | 8 +++++--\n src/libcamera/camera_sensor_properties.cpp | 28 +++++++++++-----------\n 2 files changed, 20 insertions(+), 16 deletions(-)", "diff": "diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp\nindex 3e135353..70bbd97a 100644\n--- a/src/libcamera/camera_sensor.cpp\n+++ b/src/libcamera/camera_sensor.cpp\n@@ -319,11 +319,15 @@ void CameraSensor::initTestPatternModes(\n \t\treturn;\n \t}\n \n+\tstd::map<int32_t, int32_t> indexToTestPatternMode;\n+\tfor (const auto& it : testPatternModes)\n+\t\tindexToTestPatternMode[it.second] = it.first;\n+\n \tfor (const ControlValue &value : v4l2TestPattern->second.values()) {\n \t\tconst int32_t index = value.get<int32_t>();\n \n-\t\tconst auto it = testPatternModes.find(index);\n-\t\tif (it == testPatternModes.end()) {\n+\t\tconst auto it = indexToTestPatternMode.find(index);\n+\t\tif (it == indexToTestPatternMode.end()) {\n \t\t\tLOG(CameraSensor, Debug)\n \t\t\t\t<< \"Test pattern mode \" << index << \" ignored\";\n \t\t\tcontinue;\ndiff --git a/src/libcamera/camera_sensor_properties.cpp b/src/libcamera/camera_sensor_properties.cpp\nindex f660743a..d0b2ae0e 100644\n--- a/src/libcamera/camera_sensor_properties.cpp\n+++ b/src/libcamera/camera_sensor_properties.cpp\n@@ -38,9 +38,9 @@ LOG_DEFINE_CATEGORY(CameraSensorProperties)\n * \\brief The physical size of a pixel, including pixel edges, in nanometers.\n *\n * \\var CameraSensorProperties::testPatternModes\n- * \\brief Map that associates the indexes of the sensor test pattern modes as\n- * returned by V4L2_CID_TEST_PATTERN with the corresponding TestPattern\n- * control value\n+ * \\brief Map that associates the TestPattern control value with the indexes of\n+ * the corresponding sensor test pattern modes as returned by\n+ * V4L2_CID_TEST_PATTERN.\n */\n \n /**\n@@ -55,11 +55,11 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen\n \t\t{ \"imx219\", {\n \t\t\t.unitCellSize = { 1120, 1120 },\n \t\t\t.testPatternModes = {\n-\t\t\t\t{ 0, controls::draft::TestPatternModeOff },\n-\t\t\t\t{ 1, controls::draft::TestPatternModeColorBars },\n-\t\t\t\t{ 2, controls::draft::TestPatternModeSolidColor },\n-\t\t\t\t{ 3, controls::draft::TestPatternModeColorBarsFadeToGray },\n-\t\t\t\t{ 4, controls::draft::TestPatternModePn9 },\n+\t\t\t\t{ controls::draft::TestPatternModeOff, 0 },\n+\t\t\t\t{ controls::draft::TestPatternModeColorBars, 1 },\n+\t\t\t\t{ controls::draft::TestPatternModeSolidColor, 2 },\n+\t\t\t\t{ controls::draft::TestPatternModeColorBarsFadeToGray, 3 },\n+\t\t\t\t{ controls::draft::TestPatternModePn9, 4 },\n \t\t\t},\n \t\t} },\n \t\t{ \"imx258\", {\n@@ -70,22 +70,22 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen\n \t\t{ \"ov5670\", {\n \t\t\t.unitCellSize = { 1120, 1120 },\n \t\t\t.testPatternModes = {\n-\t\t\t\t{ 0, controls::draft::TestPatternModeOff },\n-\t\t\t\t{ 1, controls::draft::TestPatternModeColorBars },\n+\t\t\t\t{ controls::draft::TestPatternModeOff, 0 },\n+\t\t\t\t{ controls::draft::TestPatternModeColorBars, 1 },\n \t\t\t},\n \t\t} },\n \t\t{ \"ov13858\", {\n \t\t\t.unitCellSize = { 1120, 1120 },\n \t\t\t.testPatternModes = {\n-\t\t\t\t{ 0, controls::draft::TestPatternModeOff },\n-\t\t\t\t{ 1, controls::draft::TestPatternModeColorBars },\n+\t\t\t\t{ controls::draft::TestPatternModeOff, 0 },\n+\t\t\t\t{ controls::draft::TestPatternModeColorBars, 1 },\n \t\t\t},\n \t\t} },\n \t\t{ \"ov5693\", {\n \t\t\t.unitCellSize = { 1400, 1400 },\n \t\t\t.testPatternModes = {\n-\t\t\t\t{ 0, controls::draft::TestPatternModeOff },\n-\t\t\t\t{ 2, controls::draft::TestPatternModeColorBars },\n+\t\t\t\t{ controls::draft::TestPatternModeOff, 0 },\n+\t\t\t\t{ controls::draft::TestPatternModeColorBars, 2 },\n \t\t\t\t/*\n \t\t\t\t * No corresponding test pattern mode for\n \t\t\t\t * 1: \"Random data\" and 3: \"Colour Bars with\n", "prefixes": [ "libcamera-devel", "RFC", "v2", "1/5" ] }