Patch Detail
Show a patch.
GET /api/patches/17958/?format=api
{ "id": 17958, "url": "https://patchwork.libcamera.org/api/patches/17958/?format=api", "web_url": "https://patchwork.libcamera.org/patch/17958/", "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": "<20221208134414.2917-1-david.plowman@raspberrypi.com>", "date": "2022-12-08T13:44:14", "name": "[libcamera-devel] py: Support controls that use an array of Rectangles", "commit_ref": "a6b1ff2e6caa632fe041e3eae569acb861e3353b", "pull_url": null, "state": "accepted", "archived": false, "hash": "0634a60673c4606e895b83b273e16b5df2c99a85", "submitter": { "id": 42, "url": "https://patchwork.libcamera.org/api/people/42/?format=api", "name": "David Plowman", "email": "david.plowman@raspberrypi.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/17958/mbox/", "series": [ { "id": 3661, "url": "https://patchwork.libcamera.org/api/series/3661/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3661", "date": "2022-12-08T13:44:14", "name": "[libcamera-devel] py: Support controls that use an array of Rectangles", "version": 1, "mbox": "https://patchwork.libcamera.org/series/3661/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/17958/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/17958/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 88877BE08B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 8 Dec 2022 13:44:21 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CB90E63340;\n\tThu, 8 Dec 2022 14:44:20 +0100 (CET)", "from mail-wm1-x332.google.com (mail-wm1-x332.google.com\n\t[IPv6:2a00:1450:4864:20::332])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A78046333B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 8 Dec 2022 14:44:18 +0100 (CET)", "by mail-wm1-x332.google.com with SMTP id v7so1090909wmn.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 08 Dec 2022 05:44:18 -0800 (PST)", "from pi4-davidp.pitowers.org\n\t([2a00:1098:3142:14:e4a2:3070:eea4:e434])\n\tby smtp.gmail.com with ESMTPSA id\n\tl12-20020a5d668c000000b00235da296623sm22537130wru.31.2022.12.08.05.44.17\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 08 Dec 2022 05:44:17 -0800 (PST)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1670507060;\n\tbh=pD1HA6wyMaPB4DozO4ha4O7g1INwrPF6gZsNQw58020=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=ieYiHgHduQWMT3G9zOY10etxiRR4I0pwcUP1hPdkKL0XH1kTRV6LYZN7XRSodPU2W\n\t1bGRcAqTN94cWq1FbgSwfnDMIy0mrmJY3qM5yd7wOSA6VuMrUM30rGrmr2lFKwxiXV\n\t2J5nIw8dEKyN4oDL29cBMwc6R61DkOMa94U7boOxuWZHLNG0gIK8X+eeidTlQiowgE\n\twuT2AdUDegx1oAoWIjyk/Rawaczz4V+buQzWD6dLaynguA12vHCL/mRaOqXQACTSbZ\n\tHUwWEkJHmzj72V6Cy/6EpPxVvBwnUA8Pm0I5maUpn1xqucZfPKixH9+TSi8Qeg3Kax\n\tLUEZD32oT49ng==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=FJolOTrMlufze8JmyK3JaUqHtwvmpMdh2Nq8ZEQwEhU=;\n\tb=HIKZUVXBV87MdbJ8qONEhhp14pnFSSC/twaKpGtO5VTFKK3UOhs5S0NN2Q7WVuE0pT\n\tYwMD2reGc8UXCXikWOkDIdvL0if5PxiREanMICGTX4csNUbj1JYP/Th2Hsyru274GPDJ\n\tq6hBc4Klpl4B5WkxWOrIvqYypzI6TlQJgbErHF8lH/yZY1zdO7ieTUzd187FMV5nhexr\n\twKGeOEkuvD6ye2fiQAmRNcjxK8kg6ltdCXUBB6PkktGAymuoTHlM1HJ/GYYx8m+riiR0\n\t459IVQkdWp6XtizpWaZ6bDqt7Og325Mg8avsH899AF/8OdypfK1Usz3ccIMBXLXAVuZq\n\tYMUA==" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"HIKZUVXB\"; dkim-atps=neutral", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=FJolOTrMlufze8JmyK3JaUqHtwvmpMdh2Nq8ZEQwEhU=;\n\tb=ud2Dw0dD0MED3AZDB4y+VN44rrWu9GpkBTwMQoEonNjP9IzDFBDYmqYjmQn1g7Xasa\n\tuRIpdTetCDuIYkfZC3aXrsJrG/1YH2oqhJd7msAwREeMElWydL3PVQufXUMUmIExqYz3\n\t7SARiUIPZXZXEBCAN4cVNJ1dW5xnUs1t15mlmSvv10K2Gt9sPtVurjdhb9m9PhZIdUv/\n\t1r1bk1N708gez+6sgdDlFLy/aA8NTnwyiDs4MJhlJx5ZgA7Oh9Uk9RaNZU4QVV9ie/Kt\n\t929cLkR2NE7MVFPwOL1qQMqit6LIDEdrbK3/Y4u0X90i2f+JNc0ooOVCWBPsWcccjw7R\n\tjuuw==", "X-Gm-Message-State": "ANoB5pmabybIWp7Q0W3Mo1n86DV6Ts76xejEcgi9KuX1kRtJeFhYAcFN\n\tixA258g+vMCm1myhhs1tZlIK3hGy7co6SJ7c", "X-Google-Smtp-Source": "AA0mqf7xLEhKEd2FFoI7H7bmAxIMApDsSfy2dDYVpRY2HbEzJCWZlgcO7h+mtTINwBTlE9H2ltv1Cg==", "X-Received": "by 2002:a05:600c:1e89:b0:3cf:774b:ce6f with SMTP id\n\tbe9-20020a05600c1e8900b003cf774bce6fmr24957738wmb.133.1670507058016; \n\tThu, 08 Dec 2022 05:44:18 -0800 (PST)", "To": "libcamera-devel@lists.libcamera.org", "Date": "Thu, 8 Dec 2022 13:44:14 +0000", "Message-Id": "<20221208134414.2917-1-david.plowman@raspberrypi.com>", "X-Mailer": "git-send-email 2.30.2", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH] py: Support controls that use an array of\n\tRectangles", "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>", "From": "David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>", "Reply-To": "David Plowman <david.plowman@raspberrypi.com>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "The Python bindings will now accept, or return, a list or tuple of\nlibcamera.Rectangle objects for such controls.\n\nThis had previously been omitted, but now we have, for example, the\nAfWindows control which requires this feature.\n\nSigned-off-by: David Plowman <david.plowman@raspberrypi.com>\n---\n src/py/libcamera/py_helpers.cpp | 8 +++-----\n 1 file changed, 3 insertions(+), 5 deletions(-)", "diff": "diff --git a/src/py/libcamera/py_helpers.cpp b/src/py/libcamera/py_helpers.cpp\nindex f685e606..79891ab6 100644\n--- a/src/py/libcamera/py_helpers.cpp\n+++ b/src/py/libcamera/py_helpers.cpp\n@@ -46,10 +46,8 @@ py::object controlValueToPy(const ControlValue &cv)\n \t\treturn valueOrTuple<float>(cv);\n \tcase ControlTypeString:\n \t\treturn py::cast(cv.get<std::string>());\n-\tcase ControlTypeRectangle: {\n-\t\tconst Rectangle *v = reinterpret_cast<const Rectangle *>(cv.data().data());\n-\t\treturn py::cast(v);\n-\t}\n+\tcase ControlTypeRectangle:\n+\t\treturn valueOrTuple<Rectangle>(cv);\n \tcase ControlTypeSize: {\n \t\tconst Size *v = reinterpret_cast<const Size *>(cv.data().data());\n \t\treturn py::cast(v);\n@@ -88,7 +86,7 @@ ControlValue pyToControlValue(const py::object &ob, ControlType type)\n \tcase ControlTypeString:\n \t\treturn ControlValue(ob.cast<std::string>());\n \tcase ControlTypeRectangle:\n-\t\treturn ControlValue(ob.cast<Rectangle>());\n+\t\treturn controlValueMaybeArray<Rectangle>(ob);\n \tcase ControlTypeSize:\n \t\treturn ControlValue(ob.cast<Size>());\n \tcase ControlTypeNone:\n", "prefixes": [ "libcamera-devel" ] }