[RFC,v3,12/22,DNI] apps: cam: Print `MetadataListPlan` of camera
diff mbox series

Message ID 20251030165816.1095180-13-barnabas.pocze@ideasonboard.com
State New
Headers show
Series
  • libcamera: Add `MetadataList`
Related show

Commit Message

Barnabás Pőcze Oct. 30, 2025, 4:58 p.m. UTC
When `--list-controls` is specified, print the set of supported metadata.

---
changes in v3:
  * print number of elements separately instead of NxM
---
 src/apps/cam/camera_session.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Patch
diff mbox series

diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp
index 1596a25a3a..0aef3128f2 100644
--- a/src/apps/cam/camera_session.cpp
+++ b/src/apps/cam/camera_session.cpp
@@ -14,6 +14,7 @@ 
 #include <sstream>
 
 #include <libcamera/control_ids.h>
+#include <libcamera/metadata_list_plan.h>
 #include <libcamera/property_ids.h>
 
 #include "../common/event_loop.h"
@@ -228,6 +229,20 @@  void CameraSession::listControls() const
 			std::cout << std::endl;
 		}
 	}
+
+	for (const auto &[id, info] : camera_->metadata()) {
+		const auto *cid = controls::controls.at(id);
+
+		std::cout << "Metadata: [  out] " << cid->vendor() << "::" << cid->name()
+			  << " type:" << info.type
+			  << " size:" << info.size
+			  << " alignment:" << info.alignment;
+
+		if (info.isArray)
+			std::cout << " count:" << info.numElements;
+
+		std::cout << std::endl;
+	}
 }
 
 void CameraSession::listProperties() const