From patchwork Thu Mar 25 13:42:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 11712 X-Patchwork-Delegate: kieran.bingham@ideasonboard.com Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 39537C32E9 for ; Thu, 25 Mar 2021 13:42:44 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D715268D91; Thu, 25 Mar 2021 14:42:42 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Bpm/M6lo"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1416F68D66 for ; Thu, 25 Mar 2021 14:42:37 +0100 (CET) Received: from Q.local (cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 976909E7; Thu, 25 Mar 2021 14:42:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1616679756; bh=hQ0sgFCoscJlltfHBgSTK6SP8Xn/x/dsP5cWWB5UW/0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bpm/M6loVcx5vy07eUGNdxT1n4nvZL/xYQdbUMH7GBR2Er8cLhqfBwSqnTwZL2RFo i/8kCtVq8lh4EpXXxMB6WKw/mOtol6ulO4OX1cKxuLJsWqsvBp3T8YuQA3ihccPoJ7 +IPM2IESNDxQQVBMwJgMtLkHHa1oJqTsZ3uXJ1MI= From: Kieran Bingham To: libcamera devel Date: Thu, 25 Mar 2021 13:42:22 +0000 Message-Id: <20210325134231.1400051-5-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210325134231.1400051-1-kieran.bingham@ideasonboard.com> References: <20210325134231.1400051-1-kieran.bingham@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 02/11] libcamera: buffer: Break friendship with Request X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" 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 Reviewed-by: Laurent Pinchart Reviewed-by: Paul Elder --- 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 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;