@@ -285,6 +285,17 @@ int CameraSession::start()
camera_->requestCompleted.connect(this, &CameraSession::requestComplete);
+ if (printMetadata_) {
+ camera_->metadataAvailable.connect(this, [](Request *r, MetadataList::Diff update) {
+ std::cout << ">> early metadata for " << r->sequence() << " with " << update.size() << " entries {\n";
+ for (auto &&[tag, v] : update) {
+ const auto *id = controls::controls.at(tag);
+ std::cout << '\t' << id->name() << " = " << v << '\n';
+ }
+ std::cout << "}" << std::endl;
+ });
+ }
+
#ifdef HAVE_KMS
if (options_.isSet(OptDisplay))
sink_ = std::make_unique<KMSSink>(options_[OptDisplay].toString());
From: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Handle the Camera::metadataAvailable signal and print the metadata list. Use the --metadata option of cam to validate that the metadata list in Request::metadata() matches the accumulated results. --- Original: https://patchwork.libcamera.org/patch/22234/ --- src/apps/cam/camera_session.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+)