summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-10-19 17:17:56 +0530
committerUmang Jain <umang.jain@ideasonboard.com>2021-10-19 19:15:33 +0530
commit640bf94d02c36cb04b4578af14e9d11ad5969ffe (patch)
tree5efb15d5d5eb41b77e4760afe69f009a2fb7def1
parent573fcb94d6443d103ee7be84cdc8a04463692196 (diff)
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 <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
-rw-r--r--src/android/camera_device.cpp2
-rw-r--r--src/android/camera_stream.cpp14
-rw-r--r--src/android/camera_stream.h5
3 files changed, 11 insertions, 10 deletions
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 <libcamera/geometry.h>
#include <libcamera/pixel_format.h>
-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);