libcamera: request: Move metadata_ to Private

Address a long standing \todo item that suggested to implement a
read-only interface for the Request::metadata() accessor and deflect to
the internal implementation for the read-write accessor used by pipeline
handlers.

Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Acked-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
This commit is contained in:
Jacopo Mondi
2025-11-25 15:07:23 +01:00
parent a8b8485aca
commit dce2ef36f2
13 changed files with 61 additions and 52 deletions
+4 -4
View File
@@ -30,7 +30,6 @@
#include <libcamera/control_ids.h>
#include <libcamera/geometry.h>
#include <libcamera/pixel_format.h>
#include <libcamera/request.h>
#include <libcamera/stream.h>
#include "libcamera/internal/camera.h"
@@ -44,6 +43,7 @@
#include "libcamera/internal/global_configuration.h"
#include "libcamera/internal/media_device.h"
#include "libcamera/internal/pipeline_handler.h"
#include "libcamera/internal/request.h"
#include "libcamera/internal/software_isp/software_isp.h"
#include "libcamera/internal/v4l2_subdevice.h"
#include "libcamera/internal/v4l2_videodevice.h"
@@ -940,8 +940,8 @@ void SimpleCameraData::imageBufferReady(FrameBuffer *buffer)
}
if (request)
request->metadata().set(controls::SensorTimestamp,
buffer->metadata().timestamp);
request->_d()->metadata().set(controls::SensorTimestamp,
buffer->metadata().timestamp);
/*
* Queue the captured and the request buffer to the converter or Software
@@ -1036,7 +1036,7 @@ void SimpleCameraData::metadataReady(uint32_t frame, const ControlList &metadata
if (!info)
return;
info->request->metadata().merge(metadata);
info->request->_d()->metadata().merge(metadata);
info->metadataProcessed = true;
tryCompleteRequest(info->request);
}