libcamera: simple: Report sensor timestamp
Report the sensor's timestamp in the Request metadata using the completed buffer timestamp. The buffer's timestamp is recorded at DMA-transfer time, and it does not theoretically matches the 'start of exposure' definition. Record this with a \todo entry. Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
62f53a0f22
commit
922833f774
1 changed files with 11 additions and 1 deletions
|
@ -22,6 +22,7 @@
|
|||
#include <linux/media-bus-format.h>
|
||||
|
||||
#include <libcamera/camera.h>
|
||||
#include <libcamera/control_ids.h>
|
||||
#include <libcamera/request.h>
|
||||
#include <libcamera/stream.h>
|
||||
|
||||
|
@ -1116,6 +1117,16 @@ void SimplePipelineHandler::bufferReady(FrameBuffer *buffer)
|
|||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Record the sensor's timestamp in the request metadata.
|
||||
*
|
||||
* \todo The sensor timestamp should be better estimated by connecting
|
||||
* to the V4L2Device::frameStart signal if the platform provides it.
|
||||
*/
|
||||
Request *request = buffer->request();
|
||||
request->metadata().set(controls::SensorTimestamp,
|
||||
buffer->metadata().timestamp);
|
||||
|
||||
/*
|
||||
* Queue the captured and the request buffer to the converter if format
|
||||
* conversion is needed. If there's no queued request, just requeue the
|
||||
|
@ -1133,7 +1144,6 @@ void SimplePipelineHandler::bufferReady(FrameBuffer *buffer)
|
|||
}
|
||||
|
||||
/* Otherwise simply complete the request. */
|
||||
Request *request = buffer->request();
|
||||
completeBuffer(request, buffer);
|
||||
completeRequest(request);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue