@@ -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_;
@@ -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(+)