[RFC,v1,10/23] libcamera: camera: Store `MetadataListPlan` in `Camera::Private`
diff mbox series

Message ID 20250606164156.1442682-11-barnabas.pocze@ideasonboard.com
State New
Headers show
Series
  • libcamera: Add `MetadataList`
Related show

Commit Message

Barnabás Pőcze June 6, 2025, 4:41 p.m. UTC
Just like `ControlInfoMap controlInfo_` is a public member of the private
camera data for pipeline handlers to populate, add a `MetadataListPlan` as
well for the pipeline handlers to fill. This will be used to initialize
the `MetadataList` of each request created by the camera.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
---
 include/libcamera/internal/camera.h | 3 +++
 src/libcamera/camera.cpp            | 8 ++++++++
 2 files changed, 11 insertions(+)

Comments

Jacopo Mondi June 19, 2025, 11:04 a.m. UTC | #1
Hi Barnabás

On Fri, Jun 06, 2025 at 06:41:43PM +0200, Barnabás Pőcze wrote:
> Just like `ControlInfoMap controlInfo_` is a public member of the private
> camera data for pipeline handlers to populate, add a `MetadataListPlan` as
> well for the pipeline handlers to fill. This will be used to initialize
> the `MetadataList` of each request created by the camera.
>
> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
> ---
>  include/libcamera/internal/camera.h | 3 +++
>  src/libcamera/camera.cpp            | 8 ++++++++
>  2 files changed, 11 insertions(+)
>
> diff --git a/include/libcamera/internal/camera.h b/include/libcamera/internal/camera.h
> index 18f5c32a1..d5d869887 100644
> --- a/include/libcamera/internal/camera.h
> +++ b/include/libcamera/internal/camera.h
> @@ -17,6 +17,7 @@
>  #include <libcamera/base/class.h>
>
>  #include <libcamera/camera.h>
> +#include <libcamera/metadata_list_plan.h>
>
>  namespace libcamera {
>
> @@ -41,6 +42,8 @@ public:
>
>  	uint32_t requestSequence_;
>
> +	MetadataListPlan metadataPlan_;
> +

nit: I would move it up a few lines just after properties_

Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>

>  	const CameraControlValidator *validator() const { return validator_.get(); }
>
>  private:
> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
> index c180a5fdd..31f5ad94b 100644
> --- a/src/libcamera/camera.cpp
> +++ b/src/libcamera/camera.cpp
> @@ -660,6 +660,14 @@ Camera::Private::~Private()
>   * over a single capture session.
>   */
>
> +/**
> + * \var Camera::Private::metadataPlan_
> + * \brief The set of metadata supported by the camera
> + *
> + * The metadata information shall be initialised by the pipeline handler when
> + * creating the camera.
> + */
> +
>  static const char *const camera_state_names[] = {
>  	"Available",
>  	"Acquired",
> --
> 2.49.0
>

Patch
diff mbox series

diff --git a/include/libcamera/internal/camera.h b/include/libcamera/internal/camera.h
index 18f5c32a1..d5d869887 100644
--- a/include/libcamera/internal/camera.h
+++ b/include/libcamera/internal/camera.h
@@ -17,6 +17,7 @@ 
 #include <libcamera/base/class.h>
 
 #include <libcamera/camera.h>
+#include <libcamera/metadata_list_plan.h>
 
 namespace libcamera {
 
@@ -41,6 +42,8 @@  public:
 
 	uint32_t requestSequence_;
 
+	MetadataListPlan metadataPlan_;
+
 	const CameraControlValidator *validator() const { return validator_.get(); }
 
 private:
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index c180a5fdd..31f5ad94b 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -660,6 +660,14 @@  Camera::Private::~Private()
  * over a single capture session.
  */
 
+/**
+ * \var Camera::Private::metadataPlan_
+ * \brief The set of metadata supported by the camera
+ *
+ * The metadata information shall be initialised by the pipeline handler when
+ * creating the camera.
+ */
+
 static const char *const camera_state_names[] = {
 	"Available",
 	"Acquired",