[{"id":18309,"web_url":"https://patchwork.libcamera.org/comment/18309/","msgid":"<YPvAwzPWfro95uZo@oden.dyn.berto.se>","date":"2021-07-24T07:26:59","subject":"Re: [libcamera-devel] [RFC PATCH 13/17] libcamera: pipeline:\n\trkisp1: Migrate to Camera::Private","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your work.\n\nOn 2021-07-23 07:00:32 +0300, Laurent Pinchart wrote:\n> As part of the effort to remove the CameraData class, migrate the\n> pipeline handler-specific camera data from CameraData to the\n> Camera::Private class.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 28 ++++++++++++------------\n>  1 file changed, 14 insertions(+), 14 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index cc279ce733ef..eab892785fb0 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -77,12 +77,12 @@ private:\n>  \tstd::map<unsigned int, RkISP1FrameInfo *> frameInfo_;\n>  };\n>  \n> -class RkISP1CameraData : public CameraData\n> +class RkISP1CameraData : public Camera::Private\n>  {\n>  public:\n>  \tRkISP1CameraData(PipelineHandler *pipe, RkISP1MainPath *mainPath,\n>  \t\t\t RkISP1SelfPath *selfPath)\n> -\t\t: CameraData(pipe), frame_(0), frameInfo_(pipe),\n> +\t\t: Camera::Private(pipe), frame_(0), frameInfo_(pipe),\n>  \t\t  mainPath_(mainPath), selfPath_(selfPath)\n>  \t{\n>  \t}\n> @@ -152,16 +152,15 @@ public:\n>  \tbool match(DeviceEnumerator *enumerator) override;\n>  \n>  private:\n> -\tRkISP1CameraData *cameraData(const Camera *camera)\n> +\tRkISP1CameraData *cameraData(Camera *camera)\n>  \t{\n> -\t\treturn static_cast<RkISP1CameraData *>(\n> -\t\t\tPipelineHandler::cameraData(camera));\n> +\t\treturn static_cast<RkISP1CameraData *>(camera->_d());\n>  \t}\n>  \n>  \tfriend RkISP1CameraData;\n>  \tfriend RkISP1Frames;\n>  \n> -\tint initLinks(const Camera *camera, const CameraSensor *sensor,\n> +\tint initLinks(Camera *camera, const CameraSensor *sensor,\n>  \t\t      const RkISP1CameraConfiguration &config);\n>  \tint createCamera(MediaEntity *sensor);\n>  \tvoid tryCompleteRequest(Request *request);\n> @@ -307,7 +306,7 @@ RkISP1FrameInfo *RkISP1Frames::find(Request *request)\n>  \n>  int RkISP1CameraData::loadIPA(unsigned int hwRevision)\n>  {\n> -\tipa_ = IPAManager::createIPA<ipa::rkisp1::IPAProxyRkISP1>(pipe_, 1, 1);\n> +\tipa_ = IPAManager::createIPA<ipa::rkisp1::IPAProxyRkISP1>(pipe(), 1, 1);\n>  \tif (!ipa_)\n>  \t\treturn -ENOENT;\n>  \n> @@ -333,7 +332,8 @@ void RkISP1CameraData::queueFrameAction(unsigned int frame,\n>  \t\tbreak;\n>  \t}\n>  \tcase ipa::rkisp1::ActionParamFilled: {\n> -\t\tPipelineHandlerRkISP1 *pipe = static_cast<PipelineHandlerRkISP1 *>(pipe_);\n> +\t\tPipelineHandlerRkISP1 *pipe =\n> +\t\t\tstatic_cast<PipelineHandlerRkISP1 *>(this->pipe());\n>  \t\tRkISP1FrameInfo *info = frameInfo_.find(frame);\n>  \t\tif (!info)\n>  \t\t\tbreak;\n> @@ -361,7 +361,7 @@ void RkISP1CameraData::queueFrameAction(unsigned int frame,\n>  void RkISP1CameraData::metadataReady(unsigned int frame, const ControlList &metadata)\n>  {\n>  \tPipelineHandlerRkISP1 *pipe =\n> -\t\tstatic_cast<PipelineHandlerRkISP1 *>(pipe_);\n> +\t\tstatic_cast<PipelineHandlerRkISP1 *>(this->pipe());\n>  \n>  \tRkISP1FrameInfo *info = frameInfo_.find(frame);\n>  \tif (!info)\n> @@ -847,7 +847,7 @@ void PipelineHandlerRkISP1::stop(Camera *camera)\n>  \t\tLOG(RkISP1, Warning)\n>  \t\t\t<< \"Failed to stop parameters for \" << camera->id();\n>  \n> -\tASSERT(camera->_d()->queuedRequests_.empty());\n> +\tASSERT(data->queuedRequests_.empty());\n>  \tdata->frameInfo_.clear();\n>  \n>  \tfreeBuffers(camera);\n> @@ -879,7 +879,7 @@ int PipelineHandlerRkISP1::queueRequestDevice(Camera *camera, Request *request)\n>   * Match and Setup\n>   */\n>  \n> -int PipelineHandlerRkISP1::initLinks(const Camera *camera,\n> +int PipelineHandlerRkISP1::initLinks(Camera *camera,\n>  \t\t\t\t     const CameraSensor *sensor,\n>  \t\t\t\t     const RkISP1CameraConfiguration &config)\n>  {\n> @@ -970,10 +970,10 @@ int PipelineHandlerRkISP1::createCamera(MediaEntity *sensor)\n>  \t\t&data->mainPathStream_,\n>  \t\t&data->selfPathStream_,\n>  \t};\n> +\tconst std::string &id = data->sensor_->id();\n>  \tstd::shared_ptr<Camera> camera =\n> -\t\tCamera::create(new Camera::Private(this), data->sensor_->id(),\n> -\t\t\t       streams);\n> -\tregisterCamera(std::move(camera), std::move(data));\n> +\t\tCamera::create(data.release(), id, streams);\n> +\tregisterCamera(std::move(camera), nullptr);\n>  \n>  \treturn 0;\n>  }\n> -- \n> Regards,\n> \n> Laurent Pinchart\n>","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 A5913C0109\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 24 Jul 2021 07:27:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5AE26687A7;\n\tSat, 24 Jul 2021 09:27:02 +0200 (CEST)","from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com\n\t[IPv6:2a00:1450:4864:20::12f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DDAE968540\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 24 Jul 2021 09:27:00 +0200 (CEST)","by mail-lf1-x12f.google.com with SMTP id a26so5792799lfr.11\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 24 Jul 2021 00:27:00 -0700 (PDT)","from localhost (h-46-59-88-219.A463.priv.bahnhof.se.\n\t[46.59.88.219]) by smtp.gmail.com with ESMTPSA id\n\tt3sm2268668ljc.104.2021.07.24.00.26.59\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSat, 24 Jul 2021 00:26:59 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"F9m+ytgd\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=cCENMq1FXu/eUzwff3+FiE0ajn7Map5Q3IVwV2KCjHg=;\n\tb=F9m+ytgdu79Kx+h0ExszKX1qch9dAtCsa3xW4UhRAQ/sLyWRyt4AGkCeL+9U3zyGuw\n\t0stLqAv20YXiPu2poi8aNGEVWfGqv3kE7y/vcvUUHilcr/1xSLq3ziJ6Gxb33qA6EmGH\n\tYMDrO365EiGY1l6oqyKMIafuRQc9f0cuw+M6MPZG8ixPZ/L2Wmfugcd/U0Whj7TBobmK\n\tv2zqwjv6I1MMNvhClcOTJLfl+3djhnsJ3JbkxWwYFt4DJJWMY2AR2R48pGfJ+Gxo3UQd\n\tmeGWc74pUOoTJAZI2fcNoROIyfeQAYL5jzDg64pgS2hhG3MEQRhZfGwKCBhxGjOyTIv2\n\tZ0ew==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=cCENMq1FXu/eUzwff3+FiE0ajn7Map5Q3IVwV2KCjHg=;\n\tb=Me1vys1mfMjLa5xtjk6wOWOAOV8Lky4q1vcXQ4ww78uA9WcHDw47bfgebSaCfEiKGQ\n\tZSuo1sVubvIHERN16ZLW/tC1q6+ms4xGKHSDSNdh8m5RW0BAgywVzzcYG6FcWwCztdp1\n\tKOdutIFcAUrYmDQguQjSoGwOvOVh3ySC6310iFu3VjLzhRMEybmh2tgaSxnwtkguu1aI\n\t7x/6BF+tl+9PP5RjhP+sv2+2cspmeCWkrzTE5G5hkzeg7JH4mkWzmlapKnkeYCc/tv3l\n\tze/z1/3m2YWe8r4ZsBp9eCUHuU81eRBBBiPMDcxrMYgpnvVyMi1ZRc2N2F1hWWj/NHYH\n\tOBfQ==","X-Gm-Message-State":"AOAM533eKb+i3oZ4p5gFLggroXa3d4oLLQxSDqJcpgBETazxTDXBHflZ\n\txIcjWH3nGLB4L3bnWTPbDTrwA5tutttYPg==","X-Google-Smtp-Source":"ABdhPJwpU+RULdO1JgN3ZZnasxnM9sh1jvDH0lAb6SIP33afA/O9ANPRDSX+gzTJVbJaZKXOI/c9Iw==","X-Received":"by 2002:a05:6512:3e21:: with SMTP id\n\ti33mr5633795lfv.32.1627111620321; \n\tSat, 24 Jul 2021 00:27:00 -0700 (PDT)","Date":"Sat, 24 Jul 2021 09:26:59 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<YPvAwzPWfro95uZo@oden.dyn.berto.se>","References":"<20210723040036.32346-1-laurent.pinchart@ideasonboard.com>\n\t<20210723040036.32346-14-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20210723040036.32346-14-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [RFC PATCH 13/17] libcamera: pipeline:\n\trkisp1: Migrate to Camera::Private","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]