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>
This commit is contained in:
parent
573fcb94d6
commit
640bf94d02
3 changed files with 11 additions and 10 deletions
|
@ -1152,7 +1152,7 @@ void CameraDevice::requestComplete(Request *request)
|
||||||
continue;
|
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
|
* Return the FrameBuffer to the CameraStream now that we're
|
||||||
|
|
|
@ -143,15 +143,15 @@ int CameraStream::waitFence(int fence)
|
||||||
}
|
}
|
||||||
|
|
||||||
int CameraStream::process(const FrameBuffer &source,
|
int CameraStream::process(const FrameBuffer &source,
|
||||||
camera3_stream_buffer_t &camera3Dest,
|
Camera3RequestDescriptor::StreamBuffer &dest,
|
||||||
Camera3RequestDescriptor *request)
|
Camera3RequestDescriptor *request)
|
||||||
{
|
{
|
||||||
/* Handle waiting on fences on the destination buffer. */
|
/* Handle waiting on fences on the destination buffer. */
|
||||||
int fence = camera3Dest.acquire_fence;
|
int fence = dest.buffer.acquire_fence;
|
||||||
if (fence != -1) {
|
if (fence != -1) {
|
||||||
int ret = waitFence(fence);
|
int ret = waitFence(fence);
|
||||||
::close(fence);
|
::close(fence);
|
||||||
camera3Dest.acquire_fence = -1;
|
dest.buffer.acquire_fence = -1;
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
LOG(HAL, Error) << "Failed waiting for fence: "
|
LOG(HAL, Error) << "Failed waiting for fence: "
|
||||||
<< fence << ": " << strerror(-ret);
|
<< fence << ": " << strerror(-ret);
|
||||||
|
@ -167,14 +167,14 @@ int CameraStream::process(const FrameBuffer &source,
|
||||||
* separate thread.
|
* separate thread.
|
||||||
*/
|
*/
|
||||||
const StreamConfiguration &output = configuration();
|
const StreamConfiguration &output = configuration();
|
||||||
CameraBuffer dest(*camera3Dest.buffer, output.pixelFormat, output.size,
|
CameraBuffer destBuffer(*dest.buffer.buffer, output.pixelFormat,
|
||||||
PROT_READ | PROT_WRITE);
|
output.size, PROT_READ | PROT_WRITE);
|
||||||
if (!dest.isValid()) {
|
if (!destBuffer.isValid()) {
|
||||||
LOG(HAL, Error) << "Failed to create destination buffer";
|
LOG(HAL, Error) << "Failed to create destination buffer";
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return postProcessor_->process(source, &dest, request);
|
return postProcessor_->process(source, &destBuffer, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
FrameBuffer *CameraStream::getBuffer()
|
FrameBuffer *CameraStream::getBuffer()
|
||||||
|
|
|
@ -19,7 +19,8 @@
|
||||||
#include <libcamera/geometry.h>
|
#include <libcamera/geometry.h>
|
||||||
#include <libcamera/pixel_format.h>
|
#include <libcamera/pixel_format.h>
|
||||||
|
|
||||||
class Camera3RequestDescriptor;
|
#include "camera_request.h"
|
||||||
|
|
||||||
class CameraDevice;
|
class CameraDevice;
|
||||||
class PostProcessor;
|
class PostProcessor;
|
||||||
|
|
||||||
|
@ -119,7 +120,7 @@ public:
|
||||||
|
|
||||||
int configure();
|
int configure();
|
||||||
int process(const libcamera::FrameBuffer &source,
|
int process(const libcamera::FrameBuffer &source,
|
||||||
camera3_stream_buffer_t &camera3Buffer,
|
Camera3RequestDescriptor::StreamBuffer &dest,
|
||||||
Camera3RequestDescriptor *request);
|
Camera3RequestDescriptor *request);
|
||||||
libcamera::FrameBuffer *getBuffer();
|
libcamera::FrameBuffer *getBuffer();
|
||||||
void putBuffer(libcamera::FrameBuffer *buffer);
|
void putBuffer(libcamera::FrameBuffer *buffer);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue