summaryrefslogtreecommitdiff
path: root/include/libcamera/framebuffer.h
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-02 02:21:16 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-10 17:49:49 +0300
commitc20d3f5575cbb73adc8ad3cf6baac817ce8bd119 (patch)
treeb93cefbb5952bdec5e0bf3c69759bf80718827b2 /include/libcamera/framebuffer.h
parente0e54965df015b954d75ebe945221372f2dffb80 (diff)
libcamera: framebuffer: Move remaining private data to Private class
Private members of the FrameBuffer class are split between FrameBuffer and FrameBuffer::Private. There was no real justification for this split, and keeping some members private in the FrameBuffer class causes multiple issues: - Future modifications of the FrameBuffer class without breaking the ABI may be more difficult. - Mutable access to members that should not be modified by applications require a friend statement, or going through the Private class. Move all remaining private members to the Private class to address the first issue, and add a Private::metadata() function to address the second problem. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Tested-by: Naushir Patuck <naush@raspberrypi.com>
Diffstat (limited to 'include/libcamera/framebuffer.h')
-rw-r--r--include/libcamera/framebuffer.h19
1 files changed, 5 insertions, 14 deletions
diff --git a/include/libcamera/framebuffer.h b/include/libcamera/framebuffer.h
index 36b91d11..69553999 100644
--- a/include/libcamera/framebuffer.h
+++ b/include/libcamera/framebuffer.h
@@ -59,28 +59,19 @@ public:
};
FrameBuffer(const std::vector<Plane> &planes, unsigned int cookie = 0);
- FrameBuffer(std::unique_ptr<Private> d,
- const std::vector<Plane> &planes, unsigned int cookie = 0);
+ FrameBuffer(std::unique_ptr<Private> d);
- const std::vector<Plane> &planes() const { return planes_; }
+ const std::vector<Plane> &planes() const;
Request *request() const;
- const FrameMetadata &metadata() const { return metadata_; }
+ const FrameMetadata &metadata() const;
- uint64_t cookie() const { return cookie_; }
- void setCookie(uint64_t cookie) { cookie_ = cookie; }
+ uint64_t cookie() const;
+ void setCookie(uint64_t cookie);
std::unique_ptr<Fence> releaseFence();
private:
LIBCAMERA_DISABLE_COPY_AND_MOVE(FrameBuffer)
-
- friend class V4L2VideoDevice; /* Needed to update metadata_. */
-
- std::vector<Plane> planes_;
-
- FrameMetadata metadata_;
-
- uint64_t cookie_;
};
} /* namespace libcamera */