From patchwork Fri Sep 27 02:44:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Niklas_S=C3=B6derlund?= X-Patchwork-Id: 2030 Return-Path: Received: from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net [195.74.38.228]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D9B1B61961 for ; Fri, 27 Sep 2019 04:45:29 +0200 (CEST) X-Halon-ID: ce03760d-e0d0-11e9-bdc3-005056917a89 Authorized-sender: niklas@soderlund.pp.se Received: from bismarck.berto.se (unknown [84.172.88.101]) by bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA id ce03760d-e0d0-11e9-bdc3-005056917a89; Fri, 27 Sep 2019 04:45:03 +0200 (CEST) From: =?utf-8?q?Niklas_S=C3=B6derlund?= To: libcamera-devel@lists.libcamera.org Date: Fri, 27 Sep 2019 04:44:10 +0200 Message-Id: <20190927024417.725906-7-niklas.soderlund@ragnatech.se> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190927024417.725906-1-niklas.soderlund@ragnatech.se> References: <20190927024417.725906-1-niklas.soderlund@ragnatech.se> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 06/13] libcamera: pipeline: Add helper to process meta data coming from IPA 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: , X-List-Received-Date: Fri, 27 Sep 2019 02:45:30 -0000 Add a helper to process meta data coming out of an IPA and associating it with a request. The helper is needed as the pipeline handler needs to access the private meta data member of the request, something only the base pipeline class handler can do. Signed-off-by: Niklas Söderlund --- src/libcamera/include/pipeline_handler.h | 3 +++ src/libcamera/pipeline_handler.cpp | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/pipeline_handler.h index 4400c7ed835f551d..d2581a327c0804c3 100644 --- a/src/libcamera/include/pipeline_handler.h +++ b/src/libcamera/include/pipeline_handler.h @@ -30,6 +30,7 @@ class DeviceMatch; class MediaDevice; class PipelineHandler; class Request; +struct IPAMetaData; class CameraData { @@ -94,6 +95,8 @@ protected: CameraData *cameraData(const Camera *camera); + void processMetaData(Request *request, const IPAMetaData &metaData); + CameraManager *manager_; private: diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index b8a3787e10a587b5..da0ad678b652768c 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -480,6 +480,22 @@ void PipelineHandler::hotplugMediaDevice(MediaDevice *media) media->disconnected.connect(this, &PipelineHandler::mediaDeviceDisconnected); } +/** + * \brief Helper to process meta data from the IPA + * \param[in] request The request to associate the \a metaData with + * \param[in] metaData The meta data to process + * + * This function is a helper for pipline handler implementations to process + * meta data retrived from an IPA. It is mandatory to call this function with + * any meta data returned from the IPA before it's passed to the application. + */ +void PipelineHandler::processMetaData(Request *request, + const IPAMetaData &metaData) +{ + request->metaData_ = metaData; + request->metaData_.ready = true; +} + /** * \brief Slot for the MediaDevice disconnected signal */