@@ -16,6 +16,7 @@
#include <libcamera/base/event_notifier.h>
#include <libcamera/base/timer.h>
+#include <libcamera/metadata_list.h>
#include <libcamera/request.h>
using namespace std::chrono_literals;
@@ -37,6 +38,9 @@ public:
bool hasPendingBuffers() const;
ControlList &metadata() { return metadata_; }
+#ifndef __DOXYGEN__
+ [[nodiscard]] MetadataList &metadata2() { return metadata2_; }
+#endif
bool completeBuffer(FrameBuffer *buffer);
void complete();
@@ -64,6 +68,7 @@ private:
std::map<FrameBuffer *, EventNotifier> notifiers_;
std::unique_ptr<Timer> timer_;
ControlList metadata_;
+ MetadataList metadata2_;
};
} /* namespace libcamera */
@@ -24,6 +24,7 @@ namespace libcamera {
class Camera;
class CameraControlValidator;
class FrameBuffer;
+class MetadataList;
class Stream;
class Request : public Extensible
@@ -51,6 +52,10 @@ public:
ControlList &controls() { return controls_; }
const ControlList &metadata() const;
+#ifndef __DOXYGEN__
+ [[nodiscard]] const MetadataList &metadata2() const;
+#endif
+
const BufferMap &buffers() const { return bufferMap_; }
int addBuffer(const Stream *stream, FrameBuffer *buffer,
std::unique_ptr<Fence> &&fence = {});
@@ -57,7 +57,8 @@ LOG_DEFINE_CATEGORY(Request)
* \todo Add a validator for metadata controls.
*/
Request::Private::Private(Camera *camera)
- : camera_(camera), cancelled_(false), metadata_(controls::controls)
+ : camera_(camera), cancelled_(false), metadata_(controls::controls),
+ metadata2_(camera->metadata())
{
}
@@ -405,6 +406,7 @@ void Request::reuse(ReuseFlag flags)
controls_.clear();
_d()->metadata_.clear();
+ _d()->metadata2_.clear();
}
/**
@@ -432,6 +434,13 @@ const ControlList &Request::metadata() const
return _d()->metadata_;
}
+#ifndef __DOXYGEN__
+const MetadataList &Request::metadata2() const
+{
+ return _d()->metadata2_;
+}
+#endif
+
/**
* \fn Request::buffers()
* \brief Retrieve the request's streams to buffers map