{"id":8723,"url":"https://patchwork.libcamera.org/api/1.1/patches/8723/?format=json","web_url":"https://patchwork.libcamera.org/patch/8723/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200709132835.112593-9-paul.elder@ideasonboard.com>","date":"2020-07-09T13:28:20","name":"[libcamera-devel,v5,08/23] libcamera: pipeline: raspberrypi: Acquire media devices with acquireMediaDevice","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"fcab35440b7a2ccf61e1d396a21b277a40f30997","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/1.1/people/17/?format=json","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/8723/mbox/","series":[{"id":1093,"url":"https://patchwork.libcamera.org/api/1.1/series/1093/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1093","date":"2020-07-09T13:28:12","name":"Clean up formats in v4l2-compat and pipeline handlers","version":5,"mbox":"https://patchwork.libcamera.org/series/1093/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/8723/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/8723/checks/","tags":{},"headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 81EB5BD792\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  9 Jul 2020 13:29:10 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5356E61243;\n\tThu,  9 Jul 2020 15:29:10 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A1B7561184\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  9 Jul 2020 15:29:09 +0200 (CEST)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D5477525;\n\tThu,  9 Jul 2020 15:29:07 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"YEO3LRE1\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1594301349;\n\tbh=R2iSmPTEfoknLFVV/rFDTKdJR9G+XRZE2SKRfmh0p8s=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=YEO3LRE1J5BaLDpHkWkgqquhQAddUNxilpgvZ0t2sKDYsSbk2+djTdS/rHDXx+jGv\n\trUqgIzDr89VO0u+sLHig6BoVlWoQ0pyHGVboZ+4p19oIFWBxQYkc1rMKpq/8EEHbDX\n\tgaL/nfwKn5n0VHOUta26VjvBMk1Nc+iz6SIQ6aw8=","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Thu,  9 Jul 2020 22:28:20 +0900","Message-Id":"<20200709132835.112593-9-paul.elder@ideasonboard.com>","X-Mailer":"git-send-email 2.27.0","In-Reply-To":"<20200709132835.112593-1-paul.elder@ideasonboard.com>","References":"<20200709132835.112593-1-paul.elder@ideasonboard.com>","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH v5 08/23] libcamera: pipeline:\n\traspberrypi: Acquire media devices with acquireMediaDevice","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Media devices should be acquired by pipeline handlers via\nPipelineHandler::acquireMediaDevice so that the media devices can be\nregistered in the pipeline handler so that they can be automatically\nadded to the devnum map for the v4l2 compatibility layer to use. Make\nthe raspberrypi pipeline handler do this.\n\nSigned-off-by: Paul Elder <paul.elder@ideasonboard.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n---\nNo change in v5\n\nNo change in v4\n\nNo change in v3\n---\n .../pipeline/raspberrypi/raspberrypi.cpp      | 21 ++++---------------\n 1 file changed, 4 insertions(+), 17 deletions(-)","diff":"diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\nindex 1c0000b..cbb6f1c 100644\n--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n@@ -374,7 +374,6 @@ class PipelineHandlerRPi : public PipelineHandler\n {\n public:\n \tPipelineHandlerRPi(CameraManager *manager);\n-\t~PipelineHandlerRPi();\n \n \tCameraConfiguration *generateConfiguration(Camera *camera, const StreamRoles &roles) override;\n \tint configure(Camera *camera, CameraConfiguration *config) override;\n@@ -401,8 +400,8 @@ private:\n \tint prepareBuffers(Camera *camera);\n \tvoid freeBuffers(Camera *camera);\n \n-\tstd::shared_ptr<MediaDevice> unicam_;\n-\tstd::shared_ptr<MediaDevice> isp_;\n+\tMediaDevice *unicam_;\n+\tMediaDevice *isp_;\n };\n \n RPiCameraConfiguration::RPiCameraConfiguration(const RPiCameraData *data)\n@@ -502,15 +501,6 @@ PipelineHandlerRPi::PipelineHandlerRPi(CameraManager *manager)\n {\n }\n \n-PipelineHandlerRPi::~PipelineHandlerRPi()\n-{\n-\tif (unicam_)\n-\t\tunicam_->release();\n-\n-\tif (isp_)\n-\t\tisp_->release();\n-}\n-\n CameraConfiguration *PipelineHandlerRPi::generateConfiguration(Camera *camera,\n \t\t\t\t\t\t\t       const StreamRoles &roles)\n {\n@@ -895,17 +885,14 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n \tisp.add(\"bcm2835-isp0-capture2\"); /* Output 1 */\n \tisp.add(\"bcm2835-isp0-capture3\"); /* Stats */\n \n-\tunicam_ = enumerator->search(unicam);\n+\tunicam_ = acquireMediaDevice(enumerator, unicam);\n \tif (!unicam_)\n \t\treturn false;\n \n-\tisp_ = enumerator->search(isp);\n+\tisp_ = acquireMediaDevice(enumerator, isp);\n \tif (!isp_)\n \t\treturn false;\n \n-\tunicam_->acquire();\n-\tisp_->acquire();\n-\n \tstd::unique_ptr<RPiCameraData> data = std::make_unique<RPiCameraData>(this);\n \n \t/* Locate and open the unicam video streams. */\n","prefixes":["libcamera-devel","v5","08/23"]}