summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/android/camera_device.cpp18
-rw-r--r--src/android/camera_device.h7
2 files changed, 14 insertions, 11 deletions
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index a693dcbe..21844e51 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -774,9 +774,9 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)
return 0;
}
-FrameBuffer *CameraDevice::createFrameBuffer(const buffer_handle_t camera3buffer,
- PixelFormat pixelFormat,
- const Size &size)
+std::unique_ptr<FrameBuffer>
+CameraDevice::createFrameBuffer(const buffer_handle_t camera3buffer,
+ PixelFormat pixelFormat, const Size &size)
{
CameraBuffer buf(camera3buffer, pixelFormat, size, PROT_READ);
if (!buf.isValid()) {
@@ -797,7 +797,7 @@ FrameBuffer *CameraDevice::createFrameBuffer(const buffer_handle_t camera3buffer
planes[i].length = buf.size(i);
}
- return new FrameBuffer(std::move(planes));
+ return std::make_unique<FrameBuffer>(planes);
}
int CameraDevice::processControls(Camera3RequestDescriptor *descriptor)
@@ -1002,10 +1002,12 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques
* associate it with the Camera3RequestDescriptor for
* lifetime management only.
*/
- buffer = createFrameBuffer(*camera3Buffer.buffer,
- cameraStream->configuration().pixelFormat,
- cameraStream->configuration().size);
- descriptor.frameBuffers_.emplace_back(buffer);
+ descriptor.frameBuffers_.push_back(
+ createFrameBuffer(*camera3Buffer.buffer,
+ cameraStream->configuration().pixelFormat,
+ cameraStream->configuration().size));
+
+ buffer = descriptor.frameBuffers_.back().get();
LOG(HAL, Debug) << ss.str() << " (direct)";
break;
diff --git a/src/android/camera_device.h b/src/android/camera_device.h
index 296c2f18..43eb5895 100644
--- a/src/android/camera_device.h
+++ b/src/android/camera_device.h
@@ -94,9 +94,10 @@ private:
void stop();
- libcamera::FrameBuffer *createFrameBuffer(const buffer_handle_t camera3buffer,
- libcamera::PixelFormat pixelFormat,
- const libcamera::Size &size);
+ std::unique_ptr<libcamera::FrameBuffer>
+ createFrameBuffer(const buffer_handle_t camera3buffer,
+ libcamera::PixelFormat pixelFormat,
+ const libcamera::Size &size);
void abortRequest(camera3_capture_request_t *request);
bool isValidRequest(camera3_capture_request_t *request) const;
void notifyShutter(uint32_t frameNumber, uint64_t timestamp);