summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-06-28 01:02:44 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-07-12 19:59:22 +0300
commitd6d4710d047528a60c5e436c9bd0b29301c40f3c (patch)
tree70edba7df2d281c4c643d40a7bc52ec7636d3f2f /src/libcamera/pipeline
parent689811d87a182807ad98b6f4310ea201d4a11c8f (diff)
libcamera: framebuffer: Make FrameBuffer class Extensible
Implement the D-Pointer design pattern in the FrameBuffer class to allow changing internal data without affecting the public ABI. Move the request_ field and the setRequest() function to the FrameBuffer::Private class. This allows hiding the setRequest() function from the public API, removing one todo item. More fields may be moved later. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/libcamera/pipeline')
-rw-r--r--src/libcamera/pipeline/ipu3/cio2.cpp3
-rw-r--r--src/libcamera/pipeline/ipu3/frames.cpp5
2 files changed, 5 insertions, 3 deletions
diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp
index 1be2cbcd..1bcd580e 100644
--- a/src/libcamera/pipeline/ipu3/cio2.cpp
+++ b/src/libcamera/pipeline/ipu3/cio2.cpp
@@ -14,6 +14,7 @@
#include <libcamera/stream.h>
#include "libcamera/internal/camera_sensor.h"
+#include "libcamera/internal/framebuffer.h"
#include "libcamera/internal/media_device.h"
#include "libcamera/internal/v4l2_subdevice.h"
@@ -278,7 +279,7 @@ FrameBuffer *CIO2Device::queueBuffer(Request *request, FrameBuffer *rawBuffer)
buffer = availableBuffers_.front();
availableBuffers_.pop();
- buffer->setRequest(request);
+ buffer->_d()->setRequest(request);
}
int ret = output_->queueBuffer(buffer);
diff --git a/src/libcamera/pipeline/ipu3/frames.cpp b/src/libcamera/pipeline/ipu3/frames.cpp
index ce5ccbf1..a4c3477c 100644
--- a/src/libcamera/pipeline/ipu3/frames.cpp
+++ b/src/libcamera/pipeline/ipu3/frames.cpp
@@ -10,6 +10,7 @@
#include <libcamera/framebuffer.h>
#include <libcamera/request.h>
+#include "libcamera/internal/framebuffer.h"
#include "libcamera/internal/pipeline_handler.h"
#include "libcamera/internal/v4l2_videodevice.h"
@@ -56,8 +57,8 @@ IPU3Frames::Info *IPU3Frames::create(Request *request)
FrameBuffer *paramBuffer = availableParamBuffers_.front();
FrameBuffer *statBuffer = availableStatBuffers_.front();
- paramBuffer->setRequest(request);
- statBuffer->setRequest(request);
+ paramBuffer->_d()->setRequest(request);
+ statBuffer->_d()->setRequest(request);
availableParamBuffers_.pop();
availableStatBuffers_.pop();