| Message ID | 20250721104622.1550908-19-barnabas.pocze@ideasonboard.com |
|---|---|
| State | Superseded |
| Headers | show |
| Series |
|
| Related | show |
Quoting Barnabás Pőcze (2025-07-21 19:46:18) > 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. I personally think that this is a useful patch. This is what cam is for, isn't it? But there's no sob tag so I can't rb it :) Paul > --- > Original: https://patchwork.libcamera.org/patch/22234/ > --- > src/apps/cam/camera_session.cpp | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp > index 96ab4ca8e..16c735ef4 100644 > --- a/src/apps/cam/camera_session.cpp > +++ b/src/apps/cam/camera_session.cpp > @@ -299,6 +299,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()); > -- > 2.50.1 >
Hi 2025. 09. 18. 13:28 keltezéssel, Paul Elder írta: > Quoting Barnabás Pőcze (2025-07-21 19:46:18) >> 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. > > I personally think that this is a useful patch. This is what cam is for, isn't > it? I think we would want a separate option for this. And another issue is that now `cam` is printing from two separate threads, in my experience the two will easily intertwine. Regards, Barnabás Pőcze > > But there's no sob tag so I can't rb it :) > > Paul > >> --- >> Original: https://patchwork.libcamera.org/patch/22234/ >> --- >> src/apps/cam/camera_session.cpp | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp >> index 96ab4ca8e..16c735ef4 100644 >> --- a/src/apps/cam/camera_session.cpp >> +++ b/src/apps/cam/camera_session.cpp >> @@ -299,6 +299,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()); >> -- >> 2.50.1 >>
diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp index 96ab4ca8e..16c735ef4 100644 --- a/src/apps/cam/camera_session.cpp +++ b/src/apps/cam/camera_session.cpp @@ -299,6 +299,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(+)