[{"id":11180,"web_url":"https://patchwork.libcamera.org/comment/11180/","msgid":"<20200704215004.GG10773@pendragon.ideasonboard.com>","date":"2020-07-04T21:50:04","subject":"Re: [libcamera-devel] [PATCH v3 17/22] libcamera: raspberrypi: Fill\n\tstride and frameSize at config validation","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Paul,\n\nThank you for the patch.\n\nOn Sat, Jul 04, 2020 at 10:31:35PM +0900, Paul Elder wrote:\n> Fill the stride and frameSize fields of the StreamConfiguration at\n> configuration validation time instead of at camera configuration time.\n> \n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> \n> ---\n> New in v3\n> ---\n>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 7 ++++---\n>  1 file changed, 4 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index 18d068a..fc696ff 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -447,6 +447,10 @@ CameraConfiguration::Status RPiCameraConfiguration::validate()\n>  \n>  \t\tcount++;\n>  \n> +\t\tconst PixelFormatInfo &info = PixelFormatInfo::info(cfg.pixelFormat);\n> +\t\tcfg.stride = info.stride(cfg.size.width, 0);\n> +\t\tcfg.frameSize = info.frameSize(cfg.size);\n\nSame comment as for patch 16/22. If you want to calculate the stride and\nframe size, you need to check the kernel drivers to see what additional\nconstraints they have. unicam_calc_format_size_bpl() in\ndrivers/media/platform/bcm2835/bcm2835-unicam.c for raw formats,\nbcm2835_isp_node_try_fmt() in\ndrivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c for other\nformats.\n\n> +\n>  \t\t/* Can only output 1 RAW stream, or 2 YUV/RGB streams. */\n>  \t\tif (rawCount > 1 || outCount > 2) {\n>  \t\t\tLOG(RPI, Error) << \"Invalid number of streams requested\";\n> @@ -655,7 +659,6 @@ int PipelineHandlerRPi::configure(Camera *camera, CameraConfiguration *config)\n>  \n>  \t\tif (isRaw(cfg.pixelFormat)) {\n>  \t\t\tcfg.setStream(&data->isp_[Isp::Input]);\n> -\t\t\tcfg.stride = sensorFormat.planes[0].bpl;\n>  \t\t\tdata->isp_[Isp::Input].setExternal(true);\n>  \t\t\tcontinue;\n>  \t\t}\n> @@ -679,7 +682,6 @@ int PipelineHandlerRPi::configure(Camera *camera, CameraConfiguration *config)\n>  \t\t\t}\n>  \n>  \t\t\tcfg.setStream(&data->isp_[Isp::Output0]);\n> -\t\t\tcfg.stride = format.planes[0].bpl;\n>  \t\t\tdata->isp_[Isp::Output0].setExternal(true);\n>  \t\t}\n>  \n> @@ -705,7 +707,6 @@ int PipelineHandlerRPi::configure(Camera *camera, CameraConfiguration *config)\n>  \t\t */\n>  \t\tif (!cfg.stream()) {\n>  \t\t\tcfg.setStream(&data->isp_[Isp::Output1]);\n> -\t\t\tcfg.stride = format.planes[0].bpl;\n>  \t\t\tdata->isp_[Isp::Output1].setExternal(true);\n>  \t\t}\n>  \t}","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 04F9DBD790\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat,  4 Jul 2020 21:50:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 97705609C7;\n\tSat,  4 Jul 2020 23:50:10 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1A7E4609C7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  4 Jul 2020 23:50:09 +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 7542F296;\n\tSat,  4 Jul 2020 23:50:08 +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=\"hpFRi+TZ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1593899408;\n\tbh=DXY2jgihmNc8UW1UJcBxsNlhPWMHIM+N/LA6HAhabWI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=hpFRi+TZ55GKzuaSEsrBlhK7L1pr5+smPregUNWOkoVfy7jqUJQuLKlK85BXHWXmv\n\tS0EdHBPU+6h5yiaEdyVG2daZS6DfVIhOJFCRIe6ujNLenmv7AXaaQ+EpQJkWm40zdA\n\t43BNMANMkEwzdpz9keOI4Z4hTANj7HPg183L/kWI=","Date":"Sun, 5 Jul 2020 00:50:04 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Paul Elder <paul.elder@ideasonboard.com>","Message-ID":"<20200704215004.GG10773@pendragon.ideasonboard.com>","References":"<20200704133140.1738660-1-paul.elder@ideasonboard.com>\n\t<20200704133140.1738660-18-paul.elder@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200704133140.1738660-18-paul.elder@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 17/22] libcamera: raspberrypi: Fill\n\tstride and frameSize at config validation","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=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]