[{"id":19481,"web_url":"https://patchwork.libcamera.org/comment/19481/","msgid":"<7f1c7d22-7c00-7201-49bb-08af7c4b35f6@ideasonboard.com>","date":"2021-09-06T23:27:03","subject":"Re: [libcamera-devel] [PATCH v3 04/30] libcamera: Use\n\tV4L2PixelFormat::fromPixelFormat()","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"On 06/09/2021 23:56, Laurent Pinchart wrote:\n> Replace manual looked for V4L2 pixel format in the PixelFormatInfo with\n\ns/looked/searches/ ?\n\n> the V4L2PixelFormat::fromPixelFormat() helper function. This prepares\n> for multi-planar support that will modify how V4L2 pixel formats are\n> stored in PixelFormatInfo.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> ---\n>  src/libcamera/pipeline/ipu3/cio2.cpp | 4 +---\n>  src/v4l2/v4l2_camera_proxy.cpp       | 9 +++------\n>  2 files changed, 4 insertions(+), 9 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp\n> index 9cedcb5b2879..dc62ab197acb 100644\n> --- a/src/libcamera/pipeline/ipu3/cio2.cpp\n> +++ b/src/libcamera/pipeline/ipu3/cio2.cpp\n> @@ -203,9 +203,7 @@ int CIO2Device::configure(const Size &size, V4L2DeviceFormat *outputFormat)\n>  \tif (itInfo == mbusCodesToPixelFormat.end())\n>  \t\treturn -EINVAL;\n>  \n> -\tconst PixelFormatInfo &info = PixelFormatInfo::info(itInfo->second);\n> -\n> -\toutputFormat->fourcc = info.v4l2Format;\n> +\toutputFormat->fourcc = V4L2PixelFormat::fromPixelFormat(itInfo->second);\n>  \toutputFormat->size = sensorFormat.size;\n>  \toutputFormat->planesCount = 1;\n>  \n> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp\n> index 07b1a90aa32f..d926a7b77083 100644\n> --- a/src/v4l2/v4l2_camera_proxy.cpp\n> +++ b/src/v4l2/v4l2_camera_proxy.cpp\n> @@ -164,12 +164,11 @@ bool V4L2CameraProxy::validateMemoryType(uint32_t memory)\n>  \n>  void V4L2CameraProxy::setFmtFromConfig(const StreamConfiguration &streamConfig)\n>  {\n> -\tconst PixelFormatInfo &info = PixelFormatInfo::info(streamConfig.pixelFormat);\n>  \tconst Size &size = streamConfig.size;\n>  \n>  \tv4l2PixFormat_.width        = size.width;\n>  \tv4l2PixFormat_.height       = size.height;\n> -\tv4l2PixFormat_.pixelformat  = info.v4l2Format;\n> +\tv4l2PixFormat_.pixelformat  = V4L2PixelFormat::fromPixelFormat(streamConfig.pixelFormat);\n>  \tv4l2PixFormat_.field        = V4L2_FIELD_NONE;\n>  \tv4l2PixFormat_.bytesperline = streamConfig.stride;\n>  \tv4l2PixFormat_.sizeimage    = streamConfig.frameSize;\n> @@ -276,7 +275,7 @@ int V4L2CameraProxy::vidioc_enum_fmt(V4L2CameraFile *file, struct v4l2_fmtdesc *\n>  \t/* \\todo Add map from format to description. */\n>  \tutils::strlcpy(reinterpret_cast<char *>(arg->description),\n>  \t\t       \"Video Format Description\", sizeof(arg->description));\n> -\targ->pixelformat = PixelFormatInfo::info(format).v4l2Format;\n> +\targ->pixelformat = V4L2PixelFormat::fromPixelFormat(format);\n>  \n>  \tmemset(arg->reserved, 0, sizeof(arg->reserved));\n>  \n> @@ -311,11 +310,9 @@ int V4L2CameraProxy::tryFormat(struct v4l2_format *arg)\n>  \t\treturn -EINVAL;\n>  \t}\n>  \n> -\tconst PixelFormatInfo &info = PixelFormatInfo::info(config.pixelFormat);\n> -\n>  \targ->fmt.pix.width        = config.size.width;\n>  \targ->fmt.pix.height       = config.size.height;\n> -\targ->fmt.pix.pixelformat  = info.v4l2Format;\n> +\targ->fmt.pix.pixelformat  = V4L2PixelFormat::fromPixelFormat(config.pixelFormat);\n>  \targ->fmt.pix.field        = V4L2_FIELD_NONE;\n>  \targ->fmt.pix.bytesperline = config.stride;\n>  \targ->fmt.pix.sizeimage    = config.frameSize;\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 4F003BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  6 Sep 2021 23:27:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C9F4D69167;\n\tTue,  7 Sep 2021 01:27:08 +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 5EF6760253\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  7 Sep 2021 01:27:06 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B2007891;\n\tTue,  7 Sep 2021 01:27:05 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"cJHoiJDq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630970825;\n\tbh=SgdzqxPGRJiibl0mKDj3jqXEzyt2q5kXmHL4u2o7pdw=;\n\th=To:References:From:Subject:Date:In-Reply-To:From;\n\tb=cJHoiJDq7fSIf8BPxqzzOCG0oWziw6EZGHSLfB6Yhc7PO/UB6tTEwCatxmHkfRshV\n\tx5h1CxXy4OfNh6TvFLK05OnL5euZ0SGVvG91bsHl7Pseh7kXGJOgo5DqXZxe8Mqksc\n\tb/KE7ECOV88t9twK/gaUByFwfBsftVyd1S6OBTp0=","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20210906225420.13275-1-laurent.pinchart@ideasonboard.com>\n\t<20210906225636.14683-4-laurent.pinchart@ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<7f1c7d22-7c00-7201-49bb-08af7c4b35f6@ideasonboard.com>","Date":"Tue, 7 Sep 2021 00:27:03 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.11.0","MIME-Version":"1.0","In-Reply-To":"<20210906225636.14683-4-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v3 04/30] libcamera: Use\n\tV4L2PixelFormat::fromPixelFormat()","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19482,"web_url":"https://patchwork.libcamera.org/comment/19482/","msgid":"<YTak0TBXU9/wRgzf@pendragon.ideasonboard.com>","date":"2021-09-06T23:31:29","subject":"Re: [libcamera-devel] [PATCH v3 04/30] libcamera: Use\n\tV4L2PixelFormat::fromPixelFormat()","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Tue, Sep 07, 2021 at 12:27:03AM +0100, Kieran Bingham wrote:\n> On 06/09/2021 23:56, Laurent Pinchart wrote:\n> > Replace manual looked for V4L2 pixel format in the PixelFormatInfo with\n> \n> s/looked/searches/ ?\n\nI meant lookup, but searches is nice too.\n\n> > the V4L2PixelFormat::fromPixelFormat() helper function. This prepares\n> > for multi-planar support that will modify how V4L2 pixel formats are\n> > stored in PixelFormatInfo.\n> > \n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> > ---\n> >  src/libcamera/pipeline/ipu3/cio2.cpp | 4 +---\n> >  src/v4l2/v4l2_camera_proxy.cpp       | 9 +++------\n> >  2 files changed, 4 insertions(+), 9 deletions(-)\n> > \n> > diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp\n> > index 9cedcb5b2879..dc62ab197acb 100644\n> > --- a/src/libcamera/pipeline/ipu3/cio2.cpp\n> > +++ b/src/libcamera/pipeline/ipu3/cio2.cpp\n> > @@ -203,9 +203,7 @@ int CIO2Device::configure(const Size &size, V4L2DeviceFormat *outputFormat)\n> >  \tif (itInfo == mbusCodesToPixelFormat.end())\n> >  \t\treturn -EINVAL;\n> >  \n> > -\tconst PixelFormatInfo &info = PixelFormatInfo::info(itInfo->second);\n> > -\n> > -\toutputFormat->fourcc = info.v4l2Format;\n> > +\toutputFormat->fourcc = V4L2PixelFormat::fromPixelFormat(itInfo->second);\n> >  \toutputFormat->size = sensorFormat.size;\n> >  \toutputFormat->planesCount = 1;\n> >  \n> > diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp\n> > index 07b1a90aa32f..d926a7b77083 100644\n> > --- a/src/v4l2/v4l2_camera_proxy.cpp\n> > +++ b/src/v4l2/v4l2_camera_proxy.cpp\n> > @@ -164,12 +164,11 @@ bool V4L2CameraProxy::validateMemoryType(uint32_t memory)\n> >  \n> >  void V4L2CameraProxy::setFmtFromConfig(const StreamConfiguration &streamConfig)\n> >  {\n> > -\tconst PixelFormatInfo &info = PixelFormatInfo::info(streamConfig.pixelFormat);\n> >  \tconst Size &size = streamConfig.size;\n> >  \n> >  \tv4l2PixFormat_.width        = size.width;\n> >  \tv4l2PixFormat_.height       = size.height;\n> > -\tv4l2PixFormat_.pixelformat  = info.v4l2Format;\n> > +\tv4l2PixFormat_.pixelformat  = V4L2PixelFormat::fromPixelFormat(streamConfig.pixelFormat);\n> >  \tv4l2PixFormat_.field        = V4L2_FIELD_NONE;\n> >  \tv4l2PixFormat_.bytesperline = streamConfig.stride;\n> >  \tv4l2PixFormat_.sizeimage    = streamConfig.frameSize;\n> > @@ -276,7 +275,7 @@ int V4L2CameraProxy::vidioc_enum_fmt(V4L2CameraFile *file, struct v4l2_fmtdesc *\n> >  \t/* \\todo Add map from format to description. */\n> >  \tutils::strlcpy(reinterpret_cast<char *>(arg->description),\n> >  \t\t       \"Video Format Description\", sizeof(arg->description));\n> > -\targ->pixelformat = PixelFormatInfo::info(format).v4l2Format;\n> > +\targ->pixelformat = V4L2PixelFormat::fromPixelFormat(format);\n> >  \n> >  \tmemset(arg->reserved, 0, sizeof(arg->reserved));\n> >  \n> > @@ -311,11 +310,9 @@ int V4L2CameraProxy::tryFormat(struct v4l2_format *arg)\n> >  \t\treturn -EINVAL;\n> >  \t}\n> >  \n> > -\tconst PixelFormatInfo &info = PixelFormatInfo::info(config.pixelFormat);\n> > -\n> >  \targ->fmt.pix.width        = config.size.width;\n> >  \targ->fmt.pix.height       = config.size.height;\n> > -\targ->fmt.pix.pixelformat  = info.v4l2Format;\n> > +\targ->fmt.pix.pixelformat  = V4L2PixelFormat::fromPixelFormat(config.pixelFormat);\n> >  \targ->fmt.pix.field        = V4L2_FIELD_NONE;\n> >  \targ->fmt.pix.bytesperline = config.stride;\n> >  \targ->fmt.pix.sizeimage    = config.frameSize;\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 408DABE175\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  6 Sep 2021 23:31:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8CF4F6916A;\n\tTue,  7 Sep 2021 01:31:49 +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 99B8160253\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  7 Sep 2021 01:31:48 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E632D891;\n\tTue,  7 Sep 2021 01:31:47 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"oCHneZF/\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630971108;\n\tbh=V75+O4Gji9ltkwA20T7FE5R++e0780C2CS7j2QQxWco=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=oCHneZF/BZpp39reAxy70yfb6rMnqCzH8iE8PeXTjdN2BSAns3A9R0lfvEKRpRmFZ\n\t8jGUS1e+hBXlv2tn3o5KFnrFWpwNPpCfAz7gXeqzkAE9ZhC13zQHwlQ5GH1tw/uNz6\n\tBzkpGnaj/nkulN/W3RFPH2dXV0QJ6PLMxQFB2WHU=","Date":"Tue, 7 Sep 2021 02:31:29 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YTak0TBXU9/wRgzf@pendragon.ideasonboard.com>","References":"<20210906225420.13275-1-laurent.pinchart@ideasonboard.com>\n\t<20210906225636.14683-4-laurent.pinchart@ideasonboard.com>\n\t<7f1c7d22-7c00-7201-49bb-08af7c4b35f6@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<7f1c7d22-7c00-7201-49bb-08af7c4b35f6@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 04/30] libcamera: Use\n\tV4L2PixelFormat::fromPixelFormat()","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>"}}]