[{"id":10912,"web_url":"https://patchwork.libcamera.org/comment/10912/","msgid":"<20200627163740.GA12068@pendragon.ideasonboard.com>","date":"2020-06-27T16:37:40","subject":"Re: [libcamera-devel] [PATCH 10/13] libcamera: ipu3: Remove the\n\tactive flag from IPU3Stream","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Niklas,\n\nThank you for the patch.\n\nOn Sat, Jun 27, 2020 at 05:00:40AM +0200, Niklas Söderlund wrote:\n> The active_ flag is only used inside one function, remove the global\n> flag and handle it inside the single function.\n> \n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 20 +++++++-------------\n>  1 file changed, 7 insertions(+), 13 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 1f320dc166767bab..b72b631cdc051aab 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -33,13 +33,6 @@ LOG_DEFINE_CATEGORY(IPU3)\n>  \n>  class IPU3Stream : public Stream\n>  {\n> -public:\n> -\tIPU3Stream()\n> -\t\t: active_(false)\n> -\t{\n> -\t}\n> -\n> -\tbool active_;\n>  };\n>  \n>  class IPU3CameraData : public CameraData\n> @@ -486,8 +479,8 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)\n>  \t\treturn ret;\n>  \n>  \t/* Apply the format to the configured streams output devices. */\n> -\toutStream->active_ = false;\n> -\tvfStream->active_ = false;\n> +\tbool outActive = false;\n> +\tbool vfActive = false;\n\nWith an enum for the stream ID (as proposed in 09/13) this could be an\narray.\n\n>  \n>  \tfor (unsigned int i = 0; i < config->size(); ++i) {\n>  \t\t/*\n> @@ -499,7 +492,6 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)\n>  \t\tIPU3Stream *stream = const_cast<IPU3Stream *>(config->streams()[i]);\n>  \t\tStreamConfiguration &cfg = (*config)[i];\n>  \n> -\t\tstream->active_ = true;\n>  \t\tcfg.setStream(stream);\n>  \n>  \t\tif (stream == outStream) {\n> @@ -508,12 +500,14 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)\n>  \t\t\t\treturn ret;\n>  \n>  \t\t\tcfg.stride = outputFormat.planes[0].bpl;\n> +\t\t\toutActive = true;\n>  \t\t} else if (stream == vfStream) {\n>  \t\t\tret = imgu->configureViewfinder(cfg, &outputFormat);\n>  \t\t\tif (ret)\n>  \t\t\t\treturn ret;\n>  \n>  \t\t\tcfg.stride = outputFormat.planes[0].bpl;\n> +\t\t\tvfActive = true;\n>  \t\t} else {\n>  \t\t\t/*\n>  \t\t\t * The RAW still capture stream just copies buffers from\n> @@ -529,13 +523,13 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)\n>  \t * the configuration of the active one for that purpose (there should\n>  \t * be at least one active stream in the configuration request).\n>  \t */\n> -\tif (!outStream->active_) {\n> +\tif (!outActive) {\n>  \t\tret = imgu->configureOutput(config->at(0), &outputFormat);\n>  \t\tif (ret)\n>  \t\t\treturn ret;\n>  \t}\n>  \n> -\tif (!vfStream->active_) {\n> +\tif (!vfActive) {\n>  \t\tret = imgu->configureViewfinder(config->at(0), &outputFormat);\n>  \t\tif (ret)\n>  \t\t\treturn ret;\n> @@ -555,7 +549,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)\n>  \t/* Apply the \"pipe_mode\" control to the ImgU subdevice. */\n>  \tControlList ctrls(imgu->imgu_->controls());\n>  \tctrls.set(V4L2_CID_IPU3_PIPE_MODE,\n> -\t\t  static_cast<int32_t>(vfStream->active_ ? IPU3PipeModeVideo :\n> +\t\t  static_cast<int32_t>(vfActive ? IPU3PipeModeVideo :\n>  \t\t\t\t       IPU3PipeModeStillCapture));\n>  \tret = imgu->imgu_->setControls(&ctrls);\n>  \tif (ret) {","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 14583C2E69\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 27 Jun 2020 16:37:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D5F17609D6;\n\tSat, 27 Jun 2020 18:37:46 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AE3F4609C2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 27 Jun 2020 18:37:44 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0B4A6576;\n\tSat, 27 Jun 2020 18:37:43 +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=\"RQ8RH+Fs\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1593275864;\n\tbh=/FjM2tjDOTWgCeOUWU81RPxYlygrO+YsyQaBFGI0jbs=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=RQ8RH+FsWjGyTaqKnLfQWHWMP5lrQQgkqpSKWSDYoMBrME5ezez5nINdGM3qp6sWN\n\t3J5m9t0D3ry8qxzs35t/AxYjpDYAiLkYZKUgpljzc4a/orcIPKUC61bNFvTFI61R2L\n\tvpevQslFyuU7E7rMEZi3ZeXTL/XrPG2Iq1Oprfgw=","Date":"Sat, 27 Jun 2020 19:37:40 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Message-ID":"<20200627163740.GA12068@pendragon.ideasonboard.com>","References":"<20200627030043.2088585-1-niklas.soderlund@ragnatech.se>\n\t<20200627030043.2088585-11-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200627030043.2088585-11-niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH 10/13] libcamera: ipu3: Remove the\n\tactive flag from IPU3Stream","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","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]