From 640bf94d02c36cb04b4578af14e9d11ad5969ffe Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 19 Oct 2021 17:17:56 +0530 Subject: android: camera_stream: Pass StreamBuffer to process() Now that we have a proper structure to model a stream buffer, pass it to CameraStream::process() instead of the camera3_stream_buffer_t. This will allow accessing other members of StreamBuffer in subsequent commits. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Reviewed-by: Hirokazu Honda Signed-off-by: Umang Jain --- src/android/camera_device.cpp | 2 +- src/android/camera_stream.cpp | 14 +++++++------- src/android/camera_stream.h | 5 +++-- 3 files changed, 11 insertions(+), 10 deletions(-) (limited to 'src/android') diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index 74d9b952..80e11d4b 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -1152,7 +1152,7 @@ void CameraDevice::requestComplete(Request *request) continue; } - int ret = cameraStream->process(*src, buffer.buffer, descriptor); + int ret = cameraStream->process(*src, buffer, descriptor); /* * Return the FrameBuffer to the CameraStream now that we're diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp index 8f47e4d8..f3cc77e7 100644 --- a/src/android/camera_stream.cpp +++ b/src/android/camera_stream.cpp @@ -143,15 +143,15 @@ int CameraStream::waitFence(int fence) } int CameraStream::process(const FrameBuffer &source, - camera3_stream_buffer_t &camera3Dest, + Camera3RequestDescriptor::StreamBuffer &dest, Camera3RequestDescriptor *request) { /* Handle waiting on fences on the destination buffer. */ - int fence = camera3Dest.acquire_fence; + int fence = dest.buffer.acquire_fence; if (fence != -1) { int ret = waitFence(fence); ::close(fence); - camera3Dest.acquire_fence = -1; + dest.buffer.acquire_fence = -1; if (ret < 0) { LOG(HAL, Error) << "Failed waiting for fence: " << fence << ": " << strerror(-ret); @@ -167,14 +167,14 @@ int CameraStream::process(const FrameBuffer &source, * separate thread. */ const StreamConfiguration &output = configuration(); - CameraBuffer dest(*camera3Dest.buffer, output.pixelFormat, output.size, - PROT_READ | PROT_WRITE); - if (!dest.isValid()) { + CameraBuffer destBuffer(*dest.buffer.buffer, output.pixelFormat, + output.size, PROT_READ | PROT_WRITE); + if (!destBuffer.isValid()) { LOG(HAL, Error) << "Failed to create destination buffer"; return -EINVAL; } - return postProcessor_->process(source, &dest, request); + return postProcessor_->process(source, &destBuffer, request); } FrameBuffer *CameraStream::getBuffer() diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h index 405b232d..197bd995 100644 --- a/src/android/camera_stream.h +++ b/src/android/camera_stream.h @@ -19,7 +19,8 @@ #include #include -class Camera3RequestDescriptor; +#include "camera_request.h" + class CameraDevice; class PostProcessor; @@ -119,7 +120,7 @@ public: int configure(); int process(const libcamera::FrameBuffer &source, - camera3_stream_buffer_t &camera3Buffer, + Camera3RequestDescriptor::StreamBuffer &dest, Camera3RequestDescriptor *request); libcamera::FrameBuffer *getBuffer(); void putBuffer(libcamera::FrameBuffer *buffer); -- cgit v1.2.1