[libcamera-devel] [PATCH v3 02/11] libcamera: buffer: Break friendship with Request
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Mar 26 03:03:50 CET 2021
Hi Kieran,
Thank you for the patch.
On Thu, Mar 25, 2021 at 01:42:22PM +0000, Kieran Bingham wrote:
> The FrameBuffer class is only friends with Request so that the request
> can be associated with the buffers.
>
> FrameBuffer already has a helper to setRequest(), so let's use that
> directly instead.
>
> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
Such an old friendship being broken, I'll shed a tear.
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> include/libcamera/buffer.h | 1 -
> src/libcamera/request.cpp | 9 +++++----
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/include/libcamera/buffer.h b/include/libcamera/buffer.h
> index 302fe3d3e86b..620f8a66f6a2 100644
> --- a/include/libcamera/buffer.h
> +++ b/include/libcamera/buffer.h
> @@ -56,7 +56,6 @@ public:
> private:
> LIBCAMERA_DISABLE_COPY_AND_MOVE(FrameBuffer)
>
> - friend class Request; /* Needed to update request_. */
> friend class V4L2VideoDevice; /* Needed to update metadata_. */
>
> std::vector<Plane> planes_;
> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
> index 0071667e4a2c..3ad83f3b8418 100644
> --- a/src/libcamera/request.cpp
> +++ b/src/libcamera/request.cpp
> @@ -118,8 +118,9 @@ void Request::reuse(ReuseFlag flags)
> pending_.clear();
> if (flags & ReuseBuffers) {
> for (auto pair : bufferMap_) {
> - pair.second->request_ = this;
> - pending_.insert(pair.second);
> + FrameBuffer *buffer = pair.second;
> + buffer->setRequest(this);
> + pending_.insert(buffer);
> }
> } else {
> bufferMap_.clear();
> @@ -187,7 +188,7 @@ int Request::addBuffer(const Stream *stream, FrameBuffer *buffer)
> return -EEXIST;
> }
>
> - buffer->request_ = this;
> + buffer->setRequest(this);
> pending_.insert(buffer);
> bufferMap_[stream] = buffer;
>
> @@ -294,7 +295,7 @@ bool Request::completeBuffer(FrameBuffer *buffer)
> int ret = pending_.erase(buffer);
> ASSERT(ret == 1);
>
> - buffer->request_ = nullptr;
> + buffer->setRequest(nullptr);
>
> if (buffer->metadata().status == FrameMetadata::FrameCancelled)
> cancelled_ = true;
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list