[{"id":2959,"web_url":"https://patchwork.libcamera.org/comment/2959/","msgid":"<20191025113358.dc5hgatk47j4fqg5@uno.localdomain>","date":"2019-10-25T11:33:58","subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: vimc: Support\n\tformat enumeration","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Fri, Oct 25, 2019 at 06:20:16AM +0300, Laurent Pinchart wrote:\n> Fill the StreamConfiguration with all supported formats. The list of\n> supported formats is currently hardcoded based on the limits of the vimc\n> driver.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/libcamera/pipeline/vimc.cpp | 33 ++++++++++++++++++++++++---------\n>  1 file changed, 24 insertions(+), 9 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\n> index dcdaef120ad1..c16ae4cb76b5 100644\n> --- a/src/libcamera/pipeline/vimc.cpp\n> +++ b/src/libcamera/pipeline/vimc.cpp\n> @@ -103,6 +103,16 @@ private:\n>  \t}\n>  };\n>\n> +namespace {\n> +\n> +constexpr std::array<unsigned int, 3> pixelformats{\n\npixelformats {\n\nDoesn't checkstyle.py complains ?\n\n> +\tV4L2_PIX_FMT_BGR24,\n> +\tV4L2_PIX_FMT_RGB24,\n> +\tV4L2_PIX_FMT_ARGB32,\n> +};\n> +\n> +} /* namespace */\n> +\n>  VimcCameraConfiguration::VimcCameraConfiguration()\n>  \t: CameraConfiguration()\n>  {\n> @@ -110,12 +120,6 @@ VimcCameraConfiguration::VimcCameraConfiguration()\n>\n>  CameraConfiguration::Status VimcCameraConfiguration::validate()\n>  {\n> -\tstatic const std::array<unsigned int, 3> formats{\n> -\t\tV4L2_PIX_FMT_BGR24,\n> -\t\tV4L2_PIX_FMT_RGB24,\n> -\t\tV4L2_PIX_FMT_ARGB32,\n> -\t};\n> -\n>  \tStatus status = Valid;\n>\n>  \tif (config_.empty())\n> @@ -130,8 +134,8 @@ CameraConfiguration::Status VimcCameraConfiguration::validate()\n>  \tStreamConfiguration &cfg = config_[0];\n>\n>  \t/* Adjust the pixel format. */\n> -\tif (std::find(formats.begin(), formats.end(), cfg.pixelFormat) ==\n> -\t    formats.end()) {\n> +\tif (std::find(pixelformats.begin(), pixelformats.end(), cfg.pixelFormat) ==\n> +\t    pixelformats.end()) {\n>  \t\tLOG(VIMC, Debug) << \"Adjusting format to RGB24\";\n>  \t\tcfg.pixelFormat = V4L2_PIX_FMT_RGB24;\n>  \t\tstatus = Adjusted;\n> @@ -170,7 +174,18 @@ CameraConfiguration *PipelineHandlerVimc::generateConfiguration(Camera *camera,\n>  \tif (roles.empty())\n>  \t\treturn config;\n>\n> -\tStreamConfiguration cfg{};\n> +\tImageFormats formats;\n> +\n> +\tfor (unsigned int pixelformat : pixelformats) {\n> +\t\t/* The scaler hardcodes a x3 scale-up ratio. */\n> +\t\tstd::vector<SizeRange> sizes{\n> +\t\t\tSizeRange{ 48, 48, 4096, 2160 }\n> +\t\t};\n> +\t\tformats.addFormat(pixelformat, sizes);\n> +\t}\n> +\n> +\tStreamConfiguration cfg(formats.data());\n> +\n\nLooks good, small detail pointed out above apart\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n   j\n\n>  \tcfg.pixelFormat = V4L2_PIX_FMT_RGB24;\n>  \tcfg.size = { 1920, 1080 };\n>  \tcfg.bufferCount = 4;\n> --\n> Regards,\n>\n> Laurent Pinchart\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net\n\t[217.70.183.198])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6C71261375\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Oct 2019 13:32:11 +0200 (CEST)","from uno.localdomain (143.121.2.93.rev.sfr.net [93.2.121.143])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay6-d.mail.gandi.net (Postfix) with ESMTPSA id E266AC0004;\n\tFri, 25 Oct 2019 11:32:10 +0000 (UTC)"],"X-Originating-IP":"93.2.121.143","Date":"Fri, 25 Oct 2019 13:33:58 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20191025113358.dc5hgatk47j4fqg5@uno.localdomain>","References":"<20191025032016.18904-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"wnj2si4yjgnyrvuh\"","Content-Disposition":"inline","In-Reply-To":"<20191025032016.18904-1-laurent.pinchart@ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: vimc: Support\n\tformat enumeration","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>","X-List-Received-Date":"Fri, 25 Oct 2019 11:32:11 -0000"}},{"id":2960,"web_url":"https://patchwork.libcamera.org/comment/2960/","msgid":"<20191025131549.GC4740@pendragon.ideasonboard.com>","date":"2019-10-25T13:15:49","subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: vimc: Support\n\tformat enumeration","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Fri, Oct 25, 2019 at 01:33:58PM +0200, Jacopo Mondi wrote:\n> On Fri, Oct 25, 2019 at 06:20:16AM +0300, Laurent Pinchart wrote:\n> > Fill the StreamConfiguration with all supported formats. The list of\n> > supported formats is currently hardcoded based on the limits of the vimc\n> > driver.\n> >\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  src/libcamera/pipeline/vimc.cpp | 33 ++++++++++++++++++++++++---------\n> >  1 file changed, 24 insertions(+), 9 deletions(-)\n> >\n> > diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\n> > index dcdaef120ad1..c16ae4cb76b5 100644\n> > --- a/src/libcamera/pipeline/vimc.cpp\n> > +++ b/src/libcamera/pipeline/vimc.cpp\n> > @@ -103,6 +103,16 @@ private:\n> >  \t}\n> >  };\n> >\n> > +namespace {\n> > +\n> > +constexpr std::array<unsigned int, 3> pixelformats{\n> \n> pixelformats {\n> \n> Doesn't checkstyle.py complains ?\n\nIt doesn't, so I'll fix it :-)\n\n> > +\tV4L2_PIX_FMT_BGR24,\n> > +\tV4L2_PIX_FMT_RGB24,\n> > +\tV4L2_PIX_FMT_ARGB32,\n> > +};\n> > +\n> > +} /* namespace */\n> > +\n> >  VimcCameraConfiguration::VimcCameraConfiguration()\n> >  \t: CameraConfiguration()\n> >  {\n> > @@ -110,12 +120,6 @@ VimcCameraConfiguration::VimcCameraConfiguration()\n> >\n> >  CameraConfiguration::Status VimcCameraConfiguration::validate()\n> >  {\n> > -\tstatic const std::array<unsigned int, 3> formats{\n> > -\t\tV4L2_PIX_FMT_BGR24,\n> > -\t\tV4L2_PIX_FMT_RGB24,\n> > -\t\tV4L2_PIX_FMT_ARGB32,\n> > -\t};\n> > -\n> >  \tStatus status = Valid;\n> >\n> >  \tif (config_.empty())\n> > @@ -130,8 +134,8 @@ CameraConfiguration::Status VimcCameraConfiguration::validate()\n> >  \tStreamConfiguration &cfg = config_[0];\n> >\n> >  \t/* Adjust the pixel format. */\n> > -\tif (std::find(formats.begin(), formats.end(), cfg.pixelFormat) ==\n> > -\t    formats.end()) {\n> > +\tif (std::find(pixelformats.begin(), pixelformats.end(), cfg.pixelFormat) ==\n> > +\t    pixelformats.end()) {\n> >  \t\tLOG(VIMC, Debug) << \"Adjusting format to RGB24\";\n> >  \t\tcfg.pixelFormat = V4L2_PIX_FMT_RGB24;\n> >  \t\tstatus = Adjusted;\n> > @@ -170,7 +174,18 @@ CameraConfiguration *PipelineHandlerVimc::generateConfiguration(Camera *camera,\n> >  \tif (roles.empty())\n> >  \t\treturn config;\n> >\n> > -\tStreamConfiguration cfg{};\n> > +\tImageFormats formats;\n> > +\n> > +\tfor (unsigned int pixelformat : pixelformats) {\n> > +\t\t/* The scaler hardcodes a x3 scale-up ratio. */\n> > +\t\tstd::vector<SizeRange> sizes{\n> > +\t\t\tSizeRange{ 48, 48, 4096, 2160 }\n> > +\t\t};\n> > +\t\tformats.addFormat(pixelformat, sizes);\n> > +\t}\n> > +\n> > +\tStreamConfiguration cfg(formats.data());\n> > +\n> \n> Looks good, small detail pointed out above apart\n> \n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n> >  \tcfg.pixelFormat = V4L2_PIX_FMT_RGB24;\n> >  \tcfg.size = { 1920, 1080 };\n> >  \tcfg.bufferCount = 4;","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["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 C987C61375\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Oct 2019 15:15:56 +0200 (CEST)","from pendragon.ideasonboard.com (143.121.2.93.rev.sfr.net\n\t[93.2.121.143])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3850C33A;\n\tFri, 25 Oct 2019 15:15:56 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1572009356;\n\tbh=/gCUelL3NKVTMKzcYpsQ5hl1VCcGsiWNQDDUsedwtLI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=UhJNOV7Wm/9xvOEuQy3uWuypHX0xT4Ihk5Aq+YGpuV3YYtdnphh0zTwWKqc2GP61x\n\t8UMxpUh7mcRpxX7tPVJeAsK8KvKM0QH9E/++xEWUh1X/n1tmnxwuz6pLsW0HiiR6wg\n\thFK1TO0BaDvrwkddQ3Ux+j0JlUdFZffW5M4Uvw0Q=","Date":"Fri, 25 Oct 2019 16:15:49 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20191025131549.GC4740@pendragon.ideasonboard.com>","References":"<20191025032016.18904-1-laurent.pinchart@ideasonboard.com>\n\t<20191025113358.dc5hgatk47j4fqg5@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20191025113358.dc5hgatk47j4fqg5@uno.localdomain>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: vimc: Support\n\tformat enumeration","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>","X-List-Received-Date":"Fri, 25 Oct 2019 13:15:57 -0000"}}]