diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-09-02 01:56:07 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-09-07 19:18:08 +0300 |
commit | 78875938e950fb28c90e0ee387cf4c19be7e1d00 (patch) | |
tree | cfcca0b2e7adacc1ec24966e83fc5f23162abf01 | |
parent | 1b0bd492c2c1262215a242bdf83403df87d97c64 (diff) |
libcamera: framebuffer: Move planes check to constructor
The FrameBuffer::planes() function checks that planes are correctly
initialized with an offset. This can be done at construction time
instead, as the planes are constant. The backtrace generated by the
assertion will show where the faulty frame buffer is created instead of
where it is used, easing debugging.
As the runtime overhead is reduced, there's no real need to drop the
assertion in the future anymore, it can be useful to ensure that the
planes are correctly populated by the caller. Drop the comment that
calls for removing the check.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
-rw-r--r-- | include/libcamera/framebuffer.h | 9 | ||||
-rw-r--r-- | src/libcamera/framebuffer.cpp | 2 |
2 files changed, 3 insertions, 8 deletions
diff --git a/include/libcamera/framebuffer.h b/include/libcamera/framebuffer.h index d5aeff00..fd68ed0a 100644 --- a/include/libcamera/framebuffer.h +++ b/include/libcamera/framebuffer.h @@ -51,14 +51,7 @@ public: FrameBuffer(const std::vector<Plane> &planes, unsigned int cookie = 0); - const std::vector<Plane> &planes() const - { - /* \todo Remove the assertions after sufficient testing */ - for (const auto &plane : planes_) - assert(plane.offset != Plane::kInvalidOffset); - return planes_; - } - + const std::vector<Plane> &planes() const { return planes_; } Request *request() const; const FrameMetadata &metadata() const { return metadata_; } diff --git a/src/libcamera/framebuffer.cpp b/src/libcamera/framebuffer.cpp index c99f5b15..ad63a34a 100644 --- a/src/libcamera/framebuffer.cpp +++ b/src/libcamera/framebuffer.cpp @@ -199,6 +199,8 @@ FrameBuffer::FrameBuffer(const std::vector<Plane> &planes, unsigned int cookie) : Extensible(std::make_unique<Private>()), planes_(planes), cookie_(cookie) { + for (const auto &plane : planes_) + ASSERT(plane.offset != Plane::kInvalidOffset); } /** |