Message ID | 20250606164156.1442682-12-barnabas.pocze@ideasonboard.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
Hi Barnabás On Fri, Jun 06, 2025 at 06:41:44PM +0200, Barnabás Pőcze wrote: > Add a `MetadataList` to the `Request` object to store the metadata items > returned by the camera. The metadata list is initialized using the camera's > `MetadataListPlan` object, which is supposed to be filled by the pipeline > handlers. > > Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Thanks j > --- > include/libcamera/request.h | 5 +++++ > src/libcamera/request.cpp | 2 ++ > 2 files changed, 7 insertions(+) > > diff --git a/include/libcamera/request.h b/include/libcamera/request.h > index e214a9d13..171a40903 100644 > --- a/include/libcamera/request.h > +++ b/include/libcamera/request.h > @@ -18,6 +18,7 @@ > > #include <libcamera/controls.h> > #include <libcamera/fence.h> > +#include <libcamera/metadata_list.h> > > namespace libcamera { > > @@ -51,6 +52,9 @@ public: > > ControlList &controls() { return *controls_; } > ControlList &metadata() { return *metadata_; } > +#ifndef __DOXYGEN__ > + [[nodiscard]] auto &metadata2() { return metadata2_; } > +#endif > const BufferMap &buffers() const { return bufferMap_; } > int addBuffer(const Stream *stream, FrameBuffer *buffer, > std::unique_ptr<Fence> fence = nullptr); > @@ -69,6 +73,7 @@ private: > > ControlList *controls_; > ControlList *metadata_; > + MetadataList metadata2_; > BufferMap bufferMap_; > > const uint64_t cookie_; > diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp > index 7f1e11e8f..17ca67d08 100644 > --- a/src/libcamera/request.cpp > +++ b/src/libcamera/request.cpp > @@ -354,6 +354,7 @@ void Request::Private::timeout() > */ > Request::Request(Camera *camera, uint64_t cookie) > : Extensible(std::make_unique<Private>(camera)), > + metadata2_(camera->_d()->metadataPlan_), > cookie_(cookie), status_(RequestPending) > { > controls_ = new ControlList(controls::controls, > @@ -407,6 +408,7 @@ void Request::reuse(ReuseFlag flags) > > controls_->clear(); > metadata_->clear(); > + metadata2_.clear(); > } > > /** > -- > 2.49.0 >
Sorry, one additional note On Fri, Jun 06, 2025 at 06:41:44PM +0200, Barnabás Pőcze wrote: > Add a `MetadataList` to the `Request` object to store the metadata items > returned by the camera. The metadata list is initialized using the camera's > `MetadataListPlan` object, which is supposed to be filled by the pipeline > handlers. > > Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > --- > include/libcamera/request.h | 5 +++++ > src/libcamera/request.cpp | 2 ++ > 2 files changed, 7 insertions(+) > > diff --git a/include/libcamera/request.h b/include/libcamera/request.h > index e214a9d13..171a40903 100644 > --- a/include/libcamera/request.h > +++ b/include/libcamera/request.h > @@ -18,6 +18,7 @@ > > #include <libcamera/controls.h> > #include <libcamera/fence.h> > +#include <libcamera/metadata_list.h> > > namespace libcamera { > > @@ -51,6 +52,9 @@ public: > > ControlList &controls() { return *controls_; } > ControlList &metadata() { return *metadata_; } > +#ifndef __DOXYGEN__ > + [[nodiscard]] auto &metadata2() { return metadata2_; } let's not use auto in public interfaces, what do you think ? [[nodiscard]] MetadataList &metadata2() { return metadata2_; } gives me the type without having to look at the metadata2_ definition. (my battle against 'auto' continues :) > +#endif > const BufferMap &buffers() const { return bufferMap_; } > int addBuffer(const Stream *stream, FrameBuffer *buffer, > std::unique_ptr<Fence> fence = nullptr); > @@ -69,6 +73,7 @@ private: > > ControlList *controls_; > ControlList *metadata_; > + MetadataList metadata2_; > BufferMap bufferMap_; > > const uint64_t cookie_; > diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp > index 7f1e11e8f..17ca67d08 100644 > --- a/src/libcamera/request.cpp > +++ b/src/libcamera/request.cpp > @@ -354,6 +354,7 @@ void Request::Private::timeout() > */ > Request::Request(Camera *camera, uint64_t cookie) > : Extensible(std::make_unique<Private>(camera)), > + metadata2_(camera->_d()->metadataPlan_), > cookie_(cookie), status_(RequestPending) > { > controls_ = new ControlList(controls::controls, > @@ -407,6 +408,7 @@ void Request::reuse(ReuseFlag flags) > > controls_->clear(); > metadata_->clear(); > + metadata2_.clear(); > } > > /** > -- > 2.49.0 >
diff --git a/include/libcamera/request.h b/include/libcamera/request.h index e214a9d13..171a40903 100644 --- a/include/libcamera/request.h +++ b/include/libcamera/request.h @@ -18,6 +18,7 @@ #include <libcamera/controls.h> #include <libcamera/fence.h> +#include <libcamera/metadata_list.h> namespace libcamera { @@ -51,6 +52,9 @@ public: ControlList &controls() { return *controls_; } ControlList &metadata() { return *metadata_; } +#ifndef __DOXYGEN__ + [[nodiscard]] auto &metadata2() { return metadata2_; } +#endif const BufferMap &buffers() const { return bufferMap_; } int addBuffer(const Stream *stream, FrameBuffer *buffer, std::unique_ptr<Fence> fence = nullptr); @@ -69,6 +73,7 @@ private: ControlList *controls_; ControlList *metadata_; + MetadataList metadata2_; BufferMap bufferMap_; const uint64_t cookie_; diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp index 7f1e11e8f..17ca67d08 100644 --- a/src/libcamera/request.cpp +++ b/src/libcamera/request.cpp @@ -354,6 +354,7 @@ void Request::Private::timeout() */ Request::Request(Camera *camera, uint64_t cookie) : Extensible(std::make_unique<Private>(camera)), + metadata2_(camera->_d()->metadataPlan_), cookie_(cookie), status_(RequestPending) { controls_ = new ControlList(controls::controls, @@ -407,6 +408,7 @@ void Request::reuse(ReuseFlag flags) controls_->clear(); metadata_->clear(); + metadata2_.clear(); } /**
Add a `MetadataList` to the `Request` object to store the metadata items returned by the camera. The metadata list is initialized using the camera's `MetadataListPlan` object, which is supposed to be filled by the pipeline handlers. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> --- include/libcamera/request.h | 5 +++++ src/libcamera/request.cpp | 2 ++ 2 files changed, 7 insertions(+)