From patchwork Thu May 23 16:42:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 1281 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 21DBA618DC for ; Thu, 23 May 2019 18:42:28 +0200 (CEST) Received: from localhost.localdomain (unknown [96.44.9.117]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5BB66B7C; Thu, 23 May 2019 18:42:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1558629747; bh=M1kfpUtCh75E1PdZNKsWvaC6MhKxCknC/QpWO1NRT+k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SvWRYPf/2GedpaqZ0AfN5VRt/f3dLivaaAZae14kY9euyQcyEtbCHlneOgY9XSbpF Is7Oj8j34WbIl6C7zhdGsyDsDHaJnJjNArjIum9mwrI+MK+2w7ISkMIhF6nDzpdQ+R xxlwakhBpKI+OPPMVzs1blP9YoXcDDBMQxN2hmeU= From: Paul Elder To: libcamera-devel@lists.libcamera.org Date: Thu, 23 May 2019 12:42:10 -0400 Message-Id: <20190523164210.2105-6-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190523164210.2105-1-paul.elder@ideasonboard.com> References: <20190523164210.2105-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [RFC PATCH v2 5/5] libcamera: pipelines: uvcvideo: add IPAManager X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 May 2019 16:42:28 -0000 Make the UVC pipeline query for one of the test IPA modules. Signed-off-by: Paul Elder --- Changes in v2: - remove IPAManager from PipelineHandler::match parameter This is a sample of how a IPAManager would be used. src/libcamera/pipeline/uvcvideo.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp index 351712c..8275f5a 100644 --- a/src/libcamera/pipeline/uvcvideo.cpp +++ b/src/libcamera/pipeline/uvcvideo.cpp @@ -6,16 +6,20 @@ */ #include +#include #include #include #include "device_enumerator.h" +#include "ipa_manager.h" #include "log.h" #include "media_device.h" #include "pipeline_handler.h" #include "utils.h" #include "v4l2_device.h" +#include + namespace libcamera { LOG_DEFINE_CATEGORY(UVC) @@ -175,6 +179,16 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator) if (!media) return false; + IPAManager *ipaManager = IPAManager::instance(); + ipaManager->addDir("test/ipa"); + struct IPAModuleInfo info; + info.ipaAPIVersion = 1; + info.pipelineVersion = 8999; + strcpy(info.pipelineName, "bleep"); + IPAModule *ipa = ipaManager->acquireIPA(info); + if (ipa == nullptr) + LOG(UVC, Warning) << "no matching IPA found"; + std::unique_ptr data = utils::make_unique(this); /* Locate and open the default video node. */ @@ -197,7 +211,7 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator) /* Create and register the camera. */ std::set streams{ &data->stream_ }; - std::shared_ptr camera = Camera::create(this, media->model(), streams); + std::shared_ptr camera = Camera::create(this, media->model() + " " + (ipa == nullptr ? "" : ipa->info().name), streams); registerCamera(std::move(camera), std::move(data)); /* Enable hot-unplug notifications. */