[{"id":36608,"web_url":"https://patchwork.libcamera.org/comment/36608/","msgid":"<176209637509.2973778.11600827119133071175@ping.linuxembedded.co.uk>","date":"2025-11-02T15:12:55","subject":"Re: [RFC PATCH v3 12/22] [DNI] apps: cam: Print `MetadataListPlan`\n\tof camera","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Barnabás Pőcze (2025-10-30 16:58:06)\n> When `--list-controls` is specified, print the set of supported metadata.\n> \n\nI don't think this should be DNI. I think this should be added if this\nseries is merged. Maybe it could be separated to --list-metadata ? but I\nthink both control info and metadata info are closely related.\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\n> ---\n> changes in v3:\n>   * print number of elements separately instead of NxM\n> ---\n>  src/apps/cam/camera_session.cpp | 15 +++++++++++++++\n>  1 file changed, 15 insertions(+)\n> \n> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\n> index 1596a25a3a..0aef3128f2 100644\n> --- a/src/apps/cam/camera_session.cpp\n> +++ b/src/apps/cam/camera_session.cpp\n> @@ -14,6 +14,7 @@\n>  #include <sstream>\n>  \n>  #include <libcamera/control_ids.h>\n> +#include <libcamera/metadata_list_plan.h>\n>  #include <libcamera/property_ids.h>\n>  \n>  #include \"../common/event_loop.h\"\n> @@ -228,6 +229,20 @@ void CameraSession::listControls() const\n>                         std::cout << std::endl;\n>                 }\n>         }\n> +\n> +       for (const auto &[id, info] : camera_->metadata()) {\n> +               const auto *cid = controls::controls.at(id);\n> +\n> +               std::cout << \"Metadata: [  out] \" << cid->vendor() << \"::\" << cid->name()\n> +                         << \" type:\" << info.type\n> +                         << \" size:\" << info.size\n> +                         << \" alignment:\" << info.alignment;\n> +\n> +               if (info.isArray)\n> +                       std::cout << \" count:\" << info.numElements;\n> +\n> +               std::cout << std::endl;\n> +       }\n>  }\n>  \n>  void CameraSession::listProperties() const\n> -- \n> 2.51.1\n>","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 4689CC3241\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun,  2 Nov 2025 15:13:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 87AA3609DE;\n\tSun,  2 Nov 2025 16:13:00 +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 72A5E6096B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  2 Nov 2025 16:12:58 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2FDF6111D;\n\tSun,  2 Nov 2025 16:11:06 +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=\"Y5OdhKvg\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1762096266;\n\tbh=rQDvi0F9skAzB/ZcvJ5zCOvnc66KKe556J/GPPAXAF8=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=Y5OdhKvge701B7p3jsUnffEUPkCE7VrFBaVWddhJShXI9F/HIgm3Pv4Auc9AovpRw\n\tTSmLHGqpjsY7a08b15/yEJjBZScfMkCUg211GOJ1LsWaiCgI8UlXqKJjQYJznVXBF1\n\tzyiKbeb9WgyTMhEvqzQltIrRZa1+QhQ/igL2JYlY=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20251030165816.1095180-13-barnabas.pocze@ideasonboard.com>","References":"<20251030165816.1095180-1-barnabas.pocze@ideasonboard.com>\n\t<20251030165816.1095180-13-barnabas.pocze@ideasonboard.com>","Subject":"Re: [RFC PATCH v3 12/22] [DNI] apps: cam: Print `MetadataListPlan`\n\tof camera","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Sun, 02 Nov 2025 15:12:55 +0000","Message-ID":"<176209637509.2973778.11600827119133071175@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>"}},{"id":36638,"web_url":"https://patchwork.libcamera.org/comment/36638/","msgid":"<dd7af149-ecea-4d56-afd2-b7945409501f@ideasonboard.com>","date":"2025-11-03T09:42:25","subject":"Re: [RFC PATCH v3 12/22] [DNI] apps: cam: Print `MetadataListPlan`\n\tof camera","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 11. 02. 16:12 keltezéssel, Kieran Bingham írta:\n> Quoting Barnabás Pőcze (2025-10-30 16:58:06)\n>> When `--list-controls` is specified, print the set of supported metadata.\n>>\n> \n> I don't think this should be DNI. I think this should be added if this\n> series is merged. Maybe it could be separated to --list-metadata ? but I\n> think both control info and metadata info are closely related.\n\nThis was already brought up concerning the previous version. If there is\nagreement on how to proceed, I can implement it. I am not sure which\none is better: adding `--list-metadata` or using `--list-controls`.\n\n\n> \n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> \n>> ---\n>> changes in v3:\n>>    * print number of elements separately instead of NxM\n>> ---\n>>   src/apps/cam/camera_session.cpp | 15 +++++++++++++++\n>>   1 file changed, 15 insertions(+)\n>>\n>> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\n>> index 1596a25a3a..0aef3128f2 100644\n>> --- a/src/apps/cam/camera_session.cpp\n>> +++ b/src/apps/cam/camera_session.cpp\n>> @@ -14,6 +14,7 @@\n>>   #include <sstream>\n>>   \n>>   #include <libcamera/control_ids.h>\n>> +#include <libcamera/metadata_list_plan.h>\n>>   #include <libcamera/property_ids.h>\n>>   \n>>   #include \"../common/event_loop.h\"\n>> @@ -228,6 +229,20 @@ void CameraSession::listControls() const\n>>                          std::cout << std::endl;\n>>                  }\n>>          }\n>> +\n>> +       for (const auto &[id, info] : camera_->metadata()) {\n>> +               const auto *cid = controls::controls.at(id);\n>> +\n>> +               std::cout << \"Metadata: [  out] \" << cid->vendor() << \"::\" << cid->name()\n>> +                         << \" type:\" << info.type\n>> +                         << \" size:\" << info.size\n>> +                         << \" alignment:\" << info.alignment;\n>> +\n>> +               if (info.isArray)\n>> +                       std::cout << \" count:\" << info.numElements;\n>> +\n>> +               std::cout << std::endl;\n>> +       }\n>>   }\n>>   \n>>   void CameraSession::listProperties() const\n>> -- \n>> 2.51.1\n>>","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 8B57AC3241\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  3 Nov 2025 09:42:32 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 938A1609D8;\n\tMon,  3 Nov 2025 10:42:31 +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 B89C660805\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  3 Nov 2025 10:42:29 +0100 (CET)","from [192.168.33.39] (185.221.140.239.nat.pool.zt.hu\n\t[185.221.140.239])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9047799F;\n\tMon,  3 Nov 2025 10:40:36 +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=\"FTzp4vQD\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1762162836;\n\tbh=9N7b9ZX6L4CuTsYV7vxt50JK/6EfKdUzHb0uh9v5AS8=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=FTzp4vQDMHpTjdmEltSiEnhtCcqhiOQCUBluxm1M+Yk/wUw4dwQk2p9IFoGCgPKlN\n\tiqe1KWgpDbtl2l7fXqGvkC+BN1a2ELinl55XVTWcuKBEgxZ8e6V4ROdAWF8bejgQ1D\n\tBKGH7raILV9xRVYF6Fmwn9T6V3RsbAtWhKtZjQ7Q=","Message-ID":"<dd7af149-ecea-4d56-afd2-b7945409501f@ideasonboard.com>","Date":"Mon, 3 Nov 2025 10:42:25 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [RFC PATCH v3 12/22] [DNI] apps: cam: Print `MetadataListPlan`\n\tof camera","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20251030165816.1095180-1-barnabas.pocze@ideasonboard.com>\n\t<20251030165816.1095180-13-barnabas.pocze@ideasonboard.com>\n\t<176209637509.2973778.11600827119133071175@ping.linuxembedded.co.uk>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<176209637509.2973778.11600827119133071175@ping.linuxembedded.co.uk>","Content-Type":"text/plain; charset=UTF-8; format=flowed","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>"}}]