mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-13 07:19:45 +03:00
android: post_processor: Consolidate contextual information
Save and provide the context for post-processor of a camera stream via Camera3RequestDescriptor::StreamBuffer. We extend the structure to include source and destination buffers for the post processor, along with CameraStream::Type::Internal buffer pointer (if any). In addition to that, a back pointer to Camera3RequestDescriptor is convenient to get access to overall descriptor (status, metadata settings etc.). Also, migrate CameraStream::process() and PostProcessor::process() signature to use Camera3RequestDescriptor::StreamBuffer only. This will be helpful when we move to async post-processing in subsequent commits. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
This commit is contained in:
parent
64bcbd0e2c
commit
79cdb1f19d
10 changed files with 44 additions and 40 deletions
|
@ -953,6 +953,7 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques
|
|||
* once it has been processed.
|
||||
*/
|
||||
frameBuffer = cameraStream->getBuffer();
|
||||
buffer.internalBuffer = frameBuffer;
|
||||
LOG(HAL, Debug) << ss.str() << " (internal)";
|
||||
break;
|
||||
}
|
||||
|
@ -1133,14 +1134,16 @@ void CameraDevice::requestComplete(Request *request)
|
|||
continue;
|
||||
}
|
||||
|
||||
int ret = stream->process(*src, buffer, descriptor);
|
||||
buffer.srcBuffer = src;
|
||||
|
||||
int ret = stream->process(&buffer);
|
||||
|
||||
/*
|
||||
* Return the FrameBuffer to the CameraStream now that we're
|
||||
* done processing it.
|
||||
* If the framebuffer is internal to CameraStream return it back
|
||||
* now that we're done processing it.
|
||||
*/
|
||||
if (stream->type() == CameraStream::Type::Internal)
|
||||
stream->putBuffer(src);
|
||||
if (buffer.internalBuffer)
|
||||
stream->putBuffer(buffer.internalBuffer);
|
||||
|
||||
if (ret) {
|
||||
buffer.status = Camera3RequestDescriptor::Status::Error;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue