{"id":22135,"url":"https://patchwork.libcamera.org/api/covers/22135/?format=json","web_url":"https://patchwork.libcamera.org/cover/22135/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20241129091916.298359-1-paul.elder@ideasonboard.com>","date":"2024-11-29T09:19:12","name":"[v3,0/4] Add direction field to ControlId","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/?format=json","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/22135/mbox/","series":[{"id":4833,"url":"https://patchwork.libcamera.org/api/series/4833/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4833","date":"2024-11-29T09:19:12","name":"Add direction field to ControlId","version":3,"mbox":"https://patchwork.libcamera.org/series/4833/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/22135/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 0E492C3220\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 29 Nov 2024 09:19:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9107366010;\n\tFri, 29 Nov 2024 10:19:27 +0100 (CET)","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 2279A66006\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 29 Nov 2024 10:19:26 +0100 (CET)","from neptunite.flets-east.jp (unknown\n\t[IPv6:2404:7a81:160:2100:b147:f3c:c4e8:a42a])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B59ABA8F;\n\tFri, 29 Nov 2024 10:19:00 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"IEtkZm3D\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1732871941;\n\tbh=RMxYhj9l/fphxHNLziuioBTF+TNySkrh8sm3WgWTpaM=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=IEtkZm3DwkpcniDedYzE8pk//w7qCXqHoTmdx8oHpS/csBLd/gpEaghDnSTqCWOk2\n\trOUxQaYjF1co9kn/cj1Pmct0WAetxMrMe2KSHTzX2AYpgKeG5T7OkOOhuHvT1/O3ea\n\t5FSZontKheJQWfS2dfRxTNHgma3UfGor2XVUDUHk=","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Paul Elder <paul.elder@ideasonboard.com>","Subject":"[PATCH v3 0/4] Add direction field to ControlId","Date":"Fri, 29 Nov 2024 18:19:12 +0900","Message-Id":"<20241129091916.298359-1-paul.elder@ideasonboard.com>","X-Mailer":"git-send-email 2.39.2","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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":"This patch series add support for querying the ControlId for the\ndirection that it can be passed.\n\nThis used to only be mentioned in the control id definitions as \"This\ncontrol can only be returned in metadata\" so this codifies it and allows\nthis information to be queried by applications.\n\nThis is an ABI breaking change, so I really want to sneak it in before\nthe 0.4.0 release that's coming imminently...\n\nPatches 1 and 2 prepare control definitions and parsing, while patch 3\nadds the actual support. Patch 4 enables visualization via cam.\n\nThe main changes in v2 are that the direction field in controls\ndefinitions yaml files are now required, and the code has been cleaned\nup to take advantage of Flags.\n\nv3 expands the v4l2 and local id control serializers so that we can\nremove the default bidirectional parameter from ControlId and Control\nconstructors.\n\nPaul Elder (4):\n  libcamera: controls: Populate direction field in control definitions\n  utils: codegen: controls.py: Parse direction information\n  libcamera: controls: Add support for querying direction information\n  apps: cam: Print control direction information\n\n include/libcamera/controls.h         | 19 ++++++++++--\n include/libcamera/ipa/ipa_controls.h |  3 +-\n src/apps/cam/camera_session.cpp      | 10 +++++--\n src/libcamera/control_ids.cpp.in     |  4 +--\n src/libcamera/control_ids_core.yaml  | 44 +++++++++++++++++++++++++++\n src/libcamera/control_ids_draft.yaml | 15 ++++++++++\n src/libcamera/control_ids_rpi.yaml   |  3 ++\n src/libcamera/control_serializer.cpp | 11 ++++++-\n src/libcamera/controls.cpp           | 45 ++++++++++++++++++++++++++--\n src/libcamera/v4l2_device.cpp        | 10 ++++++-\n src/py/libcamera/gen-py-controls.py  |  2 +-\n utils/codegen/controls.py            | 24 ++++++++++++++-\n utils/codegen/gen-controls.py        |  2 +-\n utils/codegen/gen-gst-controls.py    |  2 +-\n 14 files changed, 178 insertions(+), 16 deletions(-)"}