[{"id":24498,"web_url":"https://patchwork.libcamera.org/comment/24498/","msgid":"<YvMCxMgwHEt7px0Q@pendragon.ideasonboard.com>","date":"2022-08-10T00:58:44","subject":"Re: [libcamera-devel] [PATCH v2] libcamera: formats: Fix warning\n\tfor unkown V4L2 pixfmt","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nThank you for the patch.\n\ns/unkown/unknown/ in the subject line.\n\nOn Tue, Aug 09, 2022 at 04:49:35PM +0200, Jacopo Mondi via libcamera-devel wrote:\n> Commit f25ad4a2b16b (\"libcamera: formats: Reimplement V4L2\n> PixelFormatInfo::info()\") changed the PixelFormatInfo::info(const\n> V4L2PixelFormat &format) function overload to:\n> \n> \treturn info(format.toPixelFormat());\n> \n> As part of the series that contains such commit, the PixelFormatInfo for the\n> pixel format applied to a video device is now retrieved at\n> V4L2VideoDevice::open() time. Some video devices register formats not\n> available to applications, for example metadata formats or, in the case\n> of ISP devices, formats to describe the ISP statistics and parameters.\n> \n> This causes the\n> \n> \tformat.toPixelFormat()\n> \n> call to output a WARN message, which spams the log and unnecessary alert\n\ns/unnecessary alert/unnecessarily alerts/\n\n> the users.\n> \n> Augment V4L2PixelFormat::toPixelFormat() with an optional argument to\n> suppress warnings in the case a V4L2 pixel format is not known, to\n> restore the behaviour preceding commit f25ad4a2b16b and returns an\n> invalid PixelFormatInfo without outputting any unnecessary warning\n> message.\n> \n> Fixes: f25ad4a2b16b (\"libcamera: formats: Reimplement V4L2 PixelFormatInfo::info()\")\n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n> \n> This is the version suggested by Laurent of\n> [PATCH] libcamera: formats: Search V4L2 format info on map\n> \n> I don't like it too much but there's a slight performance improvement.\n\nI wouldn't like it if V4L2PixelFormat was a public class, but for an\ninternal class I'm OK with this.\n\n> ---\n>  include/libcamera/internal/v4l2_pixelformat.h |  2 +-\n>  src/libcamera/formats.cpp                     | 10 +++++++++-\n>  src/libcamera/v4l2_pixelformat.cpp            | 16 ++++++++++++----\n>  3 files changed, 22 insertions(+), 6 deletions(-)\n> \n> diff --git a/include/libcamera/internal/v4l2_pixelformat.h b/include/libcamera/internal/v4l2_pixelformat.h\n> index 34d283db44f4..44439fff73eb 100644\n> --- a/include/libcamera/internal/v4l2_pixelformat.h\n> +++ b/include/libcamera/internal/v4l2_pixelformat.h\n> @@ -45,7 +45,7 @@ public:\n>  \tstd::string toString() const;\n>  \tconst char *description() const;\n> \n> -\tPixelFormat toPixelFormat() const;\n> +\tPixelFormat toPixelFormat(bool warn = true) const;\n>  \tstatic const std::vector<V4L2PixelFormat> &\n>  \tfromPixelFormat(const PixelFormat &pixelFormat);\n> \n> diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp\n> index 0bd0e09ae44c..f5769c489e16 100644\n> --- a/src/libcamera/formats.cpp\n> +++ b/src/libcamera/formats.cpp\n> @@ -852,7 +852,15 @@ const PixelFormatInfo &PixelFormatInfo::info(const PixelFormat &format)\n>   */\n>  const PixelFormatInfo &PixelFormatInfo::info(const V4L2PixelFormat &format)\n>  {\n> -\treturn info(format.toPixelFormat());\n> +\tPixelFormat pixelFormat = format.toPixelFormat(false);\n> +\tif (!pixelFormat.isValid())\n> +\t\treturn pixelFormatInfoInvalid;\n> +\n> +\tconst auto iter = pixelFormatInfo.find(pixelFormat);\n> +\tif (iter == pixelFormatInfo.end())\n> +\t\treturn pixelFormatInfoInvalid;\n> +\n> +\treturn iter->second;\n>  }\n> \n>  /**\n> diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp\n> index 3590fb735011..26c9f02c759f 100644\n> --- a/src/libcamera/v4l2_pixelformat.cpp\n> +++ b/src/libcamera/v4l2_pixelformat.cpp\n> @@ -294,15 +294,23 @@ const char *V4L2PixelFormat::description() const\n> \n>  /**\n>   * \\brief Convert the V4L2 pixel format to the corresponding PixelFormat\n> + * \\param[in] warn Flag to control the warning message if the format is not\n> + * supported. Default to true, set to false to suppress warning message.\n\nI'd drop the \"default to true\" as doxygen will show the default value.\n\n * \\param[in] warn When true, log a warning if the V4L2 pixel format isn't known\n\n> + *\n> + * Users of this function might try to convert a V4L2PixelFormat to a PixelFormat\n> + * just to check if the format is supported or not. In that case, they can suppress\n> + * the warning message setting the \\a warn argument to false not not pollute the log\n\ns/setting/by setting/\ns/not not/to not/\n\nThe implementation looks fine, so\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nI've also send a Reviewed-by tag to v1 (\"[PATCH] libcamera: formats:\nSearch V4L2 format info on map\") in case it ends up being favoured.\n\nAny second opinion to break the tie ?\n\n> + * with unnecessary warning messages.\n> + *\n>   * \\return The PixelFormat corresponding to the V4L2 pixel format\n>   */\n> -PixelFormat V4L2PixelFormat::toPixelFormat() const\n> +PixelFormat V4L2PixelFormat::toPixelFormat(bool warn) const\n>  {\n>  \tconst auto iter = vpf2pf.find(*this);\n>  \tif (iter == vpf2pf.end()) {\n> -\t\tLOG(V4L2, Warning)\n> -\t\t\t<< \"Unsupported V4L2 pixel format \"\n> -\t\t\t<< toString();\n> +\t\tif (warn)\n> +\t\t\tLOG(V4L2, Warning) << \"Unsupported V4L2 pixel format \"\n> +\t\t\t\t\t   << toString();\n>  \t\treturn PixelFormat();\n>  \t}\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 84A18C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 10 Aug 2022 00:58:58 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BCB186332B;\n\tWed, 10 Aug 2022 02:58:57 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 13A9761FA9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 10 Aug 2022 02:58:57 +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 7A567481;\n\tWed, 10 Aug 2022 02:58:56 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660093137;\n\tbh=fSpLRYWGgK428NpaCWGknvADQvzDs+8o1mcJ9BJhuLI=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=W6SnZ8lEf6bHk6DDbxxxBbIfkq/n3J7TcyUxfWGJQu0r+HdxJcFQDWe+VXgeQuWMB\n\tKe9Vq6c2qH9GOrLuCCgSYQJTw0/58Gbd164KQSAcROfhBhwOgw9XwI+vbtiWVVnBEj\n\tc6lenipsiCM8OdBlf5RCi9K6Jfn7d+Jw/Y4BcENi1c1TWCwH9K4Bi2otT6ytC22UBm\n\t7q6TerEHggQNGP9JpE60YcRLMTEZRQUx8a3FDwV2UKmqfUQrZmMWEUir8u6VIu6z0Z\n\tLBNdxDVqppRpMBeB4vkidUpZ5Gp4M7/zhmjjB8xk1OS7AIgYQg++vjIfbN4WM60P3a\n\tnCOkgJbLqurAg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660093136;\n\tbh=fSpLRYWGgK428NpaCWGknvADQvzDs+8o1mcJ9BJhuLI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=vwgcFuDa4Cghft3ma3zWcNQkS6l5AFWuCYb4DroYVJLekhVDxgIM0dRVI1Jh8X5Bv\n\tipp1ZZmdNeYgytunfdzm0MFe67EWJp3hqx8I8Tx5qIk/qEDAeHRu9kL5TVShSmpFKp\n\tyAHoBNK9MxCwixVDNsO1svO+RxY6X8smc+iD7JRE="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"vwgcFuDa\"; dkim-atps=neutral","Date":"Wed, 10 Aug 2022 03:58:44 +0300","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<YvMCxMgwHEt7px0Q@pendragon.ideasonboard.com>","References":"<20220809144935.50417-1-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220809144935.50417-1-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [PATCH v2] libcamera: formats: Fix warning\n\tfor unkown V4L2 pixfmt","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>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24506,"web_url":"https://patchwork.libcamera.org/comment/24506/","msgid":"<cff99556-b6c8-992c-1afd-373f4fa4f3ee@ideasonboard.com>","date":"2022-08-10T06:59:28","subject":"Re: [libcamera-devel] [PATCH v2] libcamera: formats: Fix warning\n\tfor unkown V4L2 pixfmt","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hello,\n\nOn 8/10/22 06:28, Laurent Pinchart via libcamera-devel wrote:\n> Hi Jacopo,\n>\n> Thank you for the patch.\n>\n> s/unkown/unknown/ in the subject line.\n>\n> On Tue, Aug 09, 2022 at 04:49:35PM +0200, Jacopo Mondi via libcamera-devel wrote:\n>> Commit f25ad4a2b16b (\"libcamera: formats: Reimplement V4L2\n>> PixelFormatInfo::info()\") changed the PixelFormatInfo::info(const\n>> V4L2PixelFormat &format) function overload to:\n>>\n>> \treturn info(format.toPixelFormat());\n>>\n>> As part of the series that contains such commit, the PixelFormatInfo for the\n>> pixel format applied to a video device is now retrieved at\n>> V4L2VideoDevice::open() time. Some video devices register formats not\n>> available to applications, for example metadata formats or, in the case\n>> of ISP devices, formats to describe the ISP statistics and parameters.\n>>\n>> This causes the\n>>\n>> \tformat.toPixelFormat()\n>>\n>> call to output a WARN message, which spams the log and unnecessary alert\n> s/unnecessary alert/unnecessarily alerts/\n>\n>> the users.\n>>\n>> Augment V4L2PixelFormat::toPixelFormat() with an optional argument to\n>> suppress warnings in the case a V4L2 pixel format is not known, to\n>> restore the behaviour preceding commit f25ad4a2b16b and returns an\n>> invalid PixelFormatInfo without outputting any unnecessary warning\n>> message.\n>>\n>> Fixes: f25ad4a2b16b (\"libcamera: formats: Reimplement V4L2 PixelFormatInfo::info()\")\n>> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n>> ---\n>>\n>> This is the version suggested by Laurent of\n>> [PATCH] libcamera: formats: Search V4L2 format info on map\n>>\n>> I don't like it too much but there's a slight performance improvement.\n> I wouldn't like it if V4L2PixelFormat was a public class, but for an\n> internal class I'm OK with this.\n\n\n+1\n\n>\n>> ---\n>>   include/libcamera/internal/v4l2_pixelformat.h |  2 +-\n>>   src/libcamera/formats.cpp                     | 10 +++++++++-\n>>   src/libcamera/v4l2_pixelformat.cpp            | 16 ++++++++++++----\n>>   3 files changed, 22 insertions(+), 6 deletions(-)\n>>\n>> diff --git a/include/libcamera/internal/v4l2_pixelformat.h b/include/libcamera/internal/v4l2_pixelformat.h\n>> index 34d283db44f4..44439fff73eb 100644\n>> --- a/include/libcamera/internal/v4l2_pixelformat.h\n>> +++ b/include/libcamera/internal/v4l2_pixelformat.h\n>> @@ -45,7 +45,7 @@ public:\n>>   \tstd::string toString() const;\n>>   \tconst char *description() const;\n>>\n>> -\tPixelFormat toPixelFormat() const;\n>> +\tPixelFormat toPixelFormat(bool warn = true) const;\n>>   \tstatic const std::vector<V4L2PixelFormat> &\n>>   \tfromPixelFormat(const PixelFormat &pixelFormat);\n>>\n>> diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp\n>> index 0bd0e09ae44c..f5769c489e16 100644\n>> --- a/src/libcamera/formats.cpp\n>> +++ b/src/libcamera/formats.cpp\n>> @@ -852,7 +852,15 @@ const PixelFormatInfo &PixelFormatInfo::info(const PixelFormat &format)\n>>    */\n>>   const PixelFormatInfo &PixelFormatInfo::info(const V4L2PixelFormat &format)\n>>   {\n>> -\treturn info(format.toPixelFormat());\n>> +\tPixelFormat pixelFormat = format.toPixelFormat(false);\n>> +\tif (!pixelFormat.isValid())\n>> +\t\treturn pixelFormatInfoInvalid;\n>> +\n>> +\tconst auto iter = pixelFormatInfo.find(pixelFormat);\n>> +\tif (iter == pixelFormatInfo.end())\n>> +\t\treturn pixelFormatInfoInvalid;\n>> +\n>> +\treturn iter->second;\n>>   }\n>>\n>>   /**\n>> diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp\n>> index 3590fb735011..26c9f02c759f 100644\n>> --- a/src/libcamera/v4l2_pixelformat.cpp\n>> +++ b/src/libcamera/v4l2_pixelformat.cpp\n>> @@ -294,15 +294,23 @@ const char *V4L2PixelFormat::description() const\n>>\n>>   /**\n>>    * \\brief Convert the V4L2 pixel format to the corresponding PixelFormat\n>> + * \\param[in] warn Flag to control the warning message if the format is not\n>> + * supported. Default to true, set to false to suppress warning message.\n> I'd drop the \"default to true\" as doxygen will show the default value.\n>\n>   * \\param[in] warn When true, log a warning if the V4L2 pixel format isn't known\n>\n>> + *\n>> + * Users of this function might try to convert a V4L2PixelFormat to a PixelFormat\n>> + * just to check if the format is supported or not. In that case, they can suppress\n>> + * the warning message setting the \\a warn argument to false not not pollute the log\n> s/setting/by setting/\n> s/not not/to not/\n>\n> The implementation looks fine, so\n>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>\n> I've also send a Reviewed-by tag to v1 (\"[PATCH] libcamera: formats:\n> Search V4L2 format info on map\") in case it ends up being favoured.\n>\n> Any second opinion to break the tie ?\n\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n\n>\n>> + * with unnecessary warning messages.\n>> + *\n>>    * \\return The PixelFormat corresponding to the V4L2 pixel format\n>>    */\n>> -PixelFormat V4L2PixelFormat::toPixelFormat() const\n>> +PixelFormat V4L2PixelFormat::toPixelFormat(bool warn) const\n>>   {\n>>   \tconst auto iter = vpf2pf.find(*this);\n>>   \tif (iter == vpf2pf.end()) {\n>> -\t\tLOG(V4L2, Warning)\n>> -\t\t\t<< \"Unsupported V4L2 pixel format \"\n>> -\t\t\t<< toString();\n>> +\t\tif (warn)\n>> +\t\t\tLOG(V4L2, Warning) << \"Unsupported V4L2 pixel format \"\n>> +\t\t\t\t\t   << toString();\n>>   \t\treturn PixelFormat();\n>>   \t}\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 4D807BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 10 Aug 2022 06:59:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B02A66332B;\n\tWed, 10 Aug 2022 08:59:36 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C11F261FA9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 10 Aug 2022 08:59:35 +0200 (CEST)","from [IPV6:2401:4900:1f3f:c7a1:27b3:9637:38a7:6084] (unknown\n\t[IPv6:2401:4900:1f3f:c7a1:27b3:9637:38a7:6084])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1EB8D481;\n\tWed, 10 Aug 2022 08:59:33 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660114776;\n\tbh=Oc7iI9ya0jn0Fk7svl0pt7tNAnOH5OEyA6NiNTA7B2I=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=M8Ll7CFK/5wZMqWOh1Jv2C/fOkeFp3L/uBVQ9UyXYoAF7ElMTIqMB91sg8hg8cO40\n\te2zX8jk99HH64Bzx4ZFZWSKiRGYVhBphkstj/5xfknPEap7JxP2l7wqOXEesmANTk3\n\tQrM7QifIYfE56MJ5ObXde8P1xvXL5WWmTnkpK3eykD0t3+bRZPcXrkebuYl/aZE6PK\n\tvMAEe6ETzFaV9xyFChbkBcLAc6GSNrUSxLsZEuJZdY5piRghNF+ig3ak5LuGAbADRT\n\tgQ3W/wcLisdoCL9iLZju9CkiFyPQ96kBW4JT2q+ds0Cjv7S3V6+Q3R8JoSNV4j4xNP\n\t8OSPRx1Qn8nGw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660114775;\n\tbh=Oc7iI9ya0jn0Fk7svl0pt7tNAnOH5OEyA6NiNTA7B2I=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=plXUns3dVd9cDGq+P3OBVUvQhX2nrZERI+rwEzbUzD3pPFgxZsb+v0o3Muqu4q8yz\n\t20bCpcuuvjBfg8FT0eUwjWryyGeiBkLTtfPVkVHFXWUfuwugI0zMq3XiKtEOMvTd+I\n\tBA9mWatmkkCZvwOiXcLlHhvlJfgQNr0rAhlrNu6M="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"plXUns3d\"; dkim-atps=neutral","Message-ID":"<cff99556-b6c8-992c-1afd-373f4fa4f3ee@ideasonboard.com>","Date":"Wed, 10 Aug 2022 12:29:28 +0530","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.4.1","Content-Language":"en-US","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tJacopo Mondi <jacopo@jmondi.org>","References":"<20220809144935.50417-1-jacopo@jmondi.org>\n\t<YvMCxMgwHEt7px0Q@pendragon.ideasonboard.com>","In-Reply-To":"<YvMCxMgwHEt7px0Q@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v2] libcamera: formats: Fix warning\n\tfor unkown V4L2 pixfmt","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>","From":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24556,"web_url":"https://patchwork.libcamera.org/comment/24556/","msgid":"<CAHW6GYJav0nUNN3ubZYwaZQLWcdeAoi3zF3gznUe7vuRDiZ6vA@mail.gmail.com>","date":"2022-08-12T10:34:20","subject":"Re: [libcamera-devel] [PATCH v2] libcamera: formats: Fix warning\n\tfor unkown V4L2 pixfmt","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Jacopo, everyone\n\nThanks very much for fixing this, it's become a somewhat annoying\nmessage since I last updated!!\n\nOne related question... I also keep getting an \"Unsupported pixel\nformat\" message from formats.cpp:838 as well (one for each occurrence\nof this message, it seems). Is that going to need a separate fix?\n\nThanks!\n\nDavid\n\nOn Wed, 10 Aug 2022 at 07:59, Umang Jain via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> Hello,\n>\n> On 8/10/22 06:28, Laurent Pinchart via libcamera-devel wrote:\n> > Hi Jacopo,\n> >\n> > Thank you for the patch.\n> >\n> > s/unkown/unknown/ in the subject line.\n> >\n> > On Tue, Aug 09, 2022 at 04:49:35PM +0200, Jacopo Mondi via libcamera-devel wrote:\n> >> Commit f25ad4a2b16b (\"libcamera: formats: Reimplement V4L2\n> >> PixelFormatInfo::info()\") changed the PixelFormatInfo::info(const\n> >> V4L2PixelFormat &format) function overload to:\n> >>\n> >>      return info(format.toPixelFormat());\n> >>\n> >> As part of the series that contains such commit, the PixelFormatInfo for the\n> >> pixel format applied to a video device is now retrieved at\n> >> V4L2VideoDevice::open() time. Some video devices register formats not\n> >> available to applications, for example metadata formats or, in the case\n> >> of ISP devices, formats to describe the ISP statistics and parameters.\n> >>\n> >> This causes the\n> >>\n> >>      format.toPixelFormat()\n> >>\n> >> call to output a WARN message, which spams the log and unnecessary alert\n> > s/unnecessary alert/unnecessarily alerts/\n> >\n> >> the users.\n> >>\n> >> Augment V4L2PixelFormat::toPixelFormat() with an optional argument to\n> >> suppress warnings in the case a V4L2 pixel format is not known, to\n> >> restore the behaviour preceding commit f25ad4a2b16b and returns an\n> >> invalid PixelFormatInfo without outputting any unnecessary warning\n> >> message.\n> >>\n> >> Fixes: f25ad4a2b16b (\"libcamera: formats: Reimplement V4L2 PixelFormatInfo::info()\")\n> >> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> >> ---\n> >>\n> >> This is the version suggested by Laurent of\n> >> [PATCH] libcamera: formats: Search V4L2 format info on map\n> >>\n> >> I don't like it too much but there's a slight performance improvement.\n> > I wouldn't like it if V4L2PixelFormat was a public class, but for an\n> > internal class I'm OK with this.\n>\n>\n> +1\n>\n> >\n> >> ---\n> >>   include/libcamera/internal/v4l2_pixelformat.h |  2 +-\n> >>   src/libcamera/formats.cpp                     | 10 +++++++++-\n> >>   src/libcamera/v4l2_pixelformat.cpp            | 16 ++++++++++++----\n> >>   3 files changed, 22 insertions(+), 6 deletions(-)\n> >>\n> >> diff --git a/include/libcamera/internal/v4l2_pixelformat.h b/include/libcamera/internal/v4l2_pixelformat.h\n> >> index 34d283db44f4..44439fff73eb 100644\n> >> --- a/include/libcamera/internal/v4l2_pixelformat.h\n> >> +++ b/include/libcamera/internal/v4l2_pixelformat.h\n> >> @@ -45,7 +45,7 @@ public:\n> >>      std::string toString() const;\n> >>      const char *description() const;\n> >>\n> >> -    PixelFormat toPixelFormat() const;\n> >> +    PixelFormat toPixelFormat(bool warn = true) const;\n> >>      static const std::vector<V4L2PixelFormat> &\n> >>      fromPixelFormat(const PixelFormat &pixelFormat);\n> >>\n> >> diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp\n> >> index 0bd0e09ae44c..f5769c489e16 100644\n> >> --- a/src/libcamera/formats.cpp\n> >> +++ b/src/libcamera/formats.cpp\n> >> @@ -852,7 +852,15 @@ const PixelFormatInfo &PixelFormatInfo::info(const PixelFormat &format)\n> >>    */\n> >>   const PixelFormatInfo &PixelFormatInfo::info(const V4L2PixelFormat &format)\n> >>   {\n> >> -    return info(format.toPixelFormat());\n> >> +    PixelFormat pixelFormat = format.toPixelFormat(false);\n> >> +    if (!pixelFormat.isValid())\n> >> +            return pixelFormatInfoInvalid;\n> >> +\n> >> +    const auto iter = pixelFormatInfo.find(pixelFormat);\n> >> +    if (iter == pixelFormatInfo.end())\n> >> +            return pixelFormatInfoInvalid;\n> >> +\n> >> +    return iter->second;\n> >>   }\n> >>\n> >>   /**\n> >> diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp\n> >> index 3590fb735011..26c9f02c759f 100644\n> >> --- a/src/libcamera/v4l2_pixelformat.cpp\n> >> +++ b/src/libcamera/v4l2_pixelformat.cpp\n> >> @@ -294,15 +294,23 @@ const char *V4L2PixelFormat::description() const\n> >>\n> >>   /**\n> >>    * \\brief Convert the V4L2 pixel format to the corresponding PixelFormat\n> >> + * \\param[in] warn Flag to control the warning message if the format is not\n> >> + * supported. Default to true, set to false to suppress warning message.\n> > I'd drop the \"default to true\" as doxygen will show the default value.\n> >\n> >   * \\param[in] warn When true, log a warning if the V4L2 pixel format isn't known\n> >\n> >> + *\n> >> + * Users of this function might try to convert a V4L2PixelFormat to a PixelFormat\n> >> + * just to check if the format is supported or not. In that case, they can suppress\n> >> + * the warning message setting the \\a warn argument to false not not pollute the log\n> > s/setting/by setting/\n> > s/not not/to not/\n> >\n> > The implementation looks fine, so\n> >\n> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> >\n> > I've also send a Reviewed-by tag to v1 (\"[PATCH] libcamera: formats:\n> > Search V4L2 format info on map\") in case it ends up being favoured.\n> >\n> > Any second opinion to break the tie ?\n>\n>\n> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n>\n> >\n> >> + * with unnecessary warning messages.\n> >> + *\n> >>    * \\return The PixelFormat corresponding to the V4L2 pixel format\n> >>    */\n> >> -PixelFormat V4L2PixelFormat::toPixelFormat() const\n> >> +PixelFormat V4L2PixelFormat::toPixelFormat(bool warn) const\n> >>   {\n> >>      const auto iter = vpf2pf.find(*this);\n> >>      if (iter == vpf2pf.end()) {\n> >> -            LOG(V4L2, Warning)\n> >> -                    << \"Unsupported V4L2 pixel format \"\n> >> -                    << toString();\n> >> +            if (warn)\n> >> +                    LOG(V4L2, Warning) << \"Unsupported V4L2 pixel format \"\n> >> +                                       << toString();\n> >>              return PixelFormat();\n> >>      }\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 8D6E1BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Aug 2022 10:34:34 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D166D6332B;\n\tFri, 12 Aug 2022 12:34:33 +0200 (CEST)","from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com\n\t[IPv6:2a00:1450:4864:20::52f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 865A1603EA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Aug 2022 12:34:31 +0200 (CEST)","by mail-ed1-x52f.google.com with SMTP id s11so789564edd.13\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Aug 2022 03:34:31 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660300473;\n\tbh=w07LIlNpK4pKq5sJFCqFmhpHdLFh/lbYC8ZG9cnVCLw=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=uUHINmJfgq69Sh+e8S1LfUS+YH4A/iEjuRzfbOpF2P1EAfaHlad9c/0rBcJyN1qhj\n\tqqWeaLveHju/GYzaEnl4J9Lt9FYW4UD8GP5zItM1yn9BBZjmGOLgL9HyOPdCaMpReL\n\tenDaXOWE0kHsvB4tc1LVubg9XjrCKrvMv9QxALTjZL6v4yNqf8h4ld1o9EobtfWBrE\n\tul5Fz55gYMBEKW6si+inM0/h/W85b3+6/glcDtj5IYNgHc7HHsCvDMOOlQ16l8k2WJ\n\tAEsMz4GtL97Gxzr9ZyEuBplWQbtckdd4BCzxQGLEjwVlWUPvImzMhza4uHphot9ZM0\n\tZWHdqY0Uc1Q9A==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc;\n\tbh=xWXfqFExMEK4/WqYSQPTfqwHsowdxbI+m1RUAu1YtrY=;\n\tb=Yr3jIlMt7szQJaQPo4QLHM3fxXgwKOpJX9qX7+dZgEW0CuyJkKPknD0QsQv2239YO9\n\t2fRRwCTwbWJ7OMrh55teiiilFgznNxxBtwAj+VftLHFxbCjrFb6nReBTkbAbdhvli2I9\n\trhxdbyrtafQQLPbJol84adP5JyJukcfkk4rVBaOQafVI4JyWZJaZeJmZ/gSf/pW+eHvx\n\teZRZ7ZwQdraNSk0TusIcdGYpxoxUoopLwWFCVDbI9vGim9aoRZXPjoZbcYU8Ob7/j+CY\n\tKZUC2DgLH/6N/ISOs+BuvzYNkGSh3ZVnSFXjxnYEvGQ4aFMpwCiVOPDn+Je9faRXETrz\n\toafg=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"Yr3jIlMt\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc;\n\tbh=xWXfqFExMEK4/WqYSQPTfqwHsowdxbI+m1RUAu1YtrY=;\n\tb=SpZ5JVD98bH/PKKxoVc0g9tuAXTllqUCaxFrqIXV+PtmJ+lA+9cOWWTGFmRXUwJMkU\n\tY//uW/xZLj5T/JdAsk9q3ML0At3tYFKy6KtO8FHnRA+njOeoSi5LKzqE0tdWYgA1lxra\n\tTCYR56gQyagngiTMyOBzPkMnXP9arv5Kmdr8DZQQOOpHvAEkrHVBkcBWbY5VRCOvNTuR\n\tzSkn499sDeA9hxqivCTx6TzpefTmmaO/F+Fc0+iPKSFeL+DnQWWOICHHggfeLMrwgoff\n\thpErFMiaA4JZLPtTj7ztk0Mfs3bB6GAyHHbxgAlYoO3Ft4yJwFwKiSpKxmUAQUo07+7K\n\tQgGQ==","X-Gm-Message-State":"ACgBeo0Vc665ZBr/y0FjH012fK2Cxb96ltwEALQcuXtGlWyw9zPfg1pz\n\tAbkFe7vPmIKafKJTOsUrzS9UVOwIHN5KKdRD6PfRMw==","X-Google-Smtp-Source":"AA6agR6jcxp220s5UD7Kpzh6goGAEY2oM7YNATDOSODbNKL5frLhernocHi1hVitgzi7qyQBkjUBfumdZrBcSY4CoBA=","X-Received":"by 2002:a05:6402:12cc:b0:441:d1fd:8add with SMTP id\n\tk12-20020a05640212cc00b00441d1fd8addmr3001893edx.416.1660300471041;\n\tFri, 12 Aug 2022 03:34:31 -0700 (PDT)","MIME-Version":"1.0","References":"<20220809144935.50417-1-jacopo@jmondi.org>\n\t<YvMCxMgwHEt7px0Q@pendragon.ideasonboard.com>\n\t<cff99556-b6c8-992c-1afd-373f4fa4f3ee@ideasonboard.com>","In-Reply-To":"<cff99556-b6c8-992c-1afd-373f4fa4f3ee@ideasonboard.com>","Date":"Fri, 12 Aug 2022 11:34:20 +0100","Message-ID":"<CAHW6GYJav0nUNN3ubZYwaZQLWcdeAoi3zF3gznUe7vuRDiZ6vA@mail.gmail.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2] libcamera: formats: Fix warning\n\tfor unkown V4L2 pixfmt","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>","From":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24557,"web_url":"https://patchwork.libcamera.org/comment/24557/","msgid":"<CAEmqJPq=a5hYP-w8pPuc3PP2Y1+vn6fruZ-HX7_r76P-k3ifiA@mail.gmail.com>","date":"2022-08-12T11:03:59","subject":"Re: [libcamera-devel] [PATCH v2] libcamera: formats: Fix warning\n\tfor unkown V4L2 pixfmt","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Jacopo,\n\nThanks for fixing this!\n\nOn Tue, 9 Aug 2022 at 15:49, Jacopo Mondi via libcamera-devel <\nlibcamera-devel@lists.libcamera.org> wrote:\n\n> Commit f25ad4a2b16b (\"libcamera: formats: Reimplement V4L2\n> PixelFormatInfo::info()\") changed the PixelFormatInfo::info(const\n> V4L2PixelFormat &format) function overload to:\n>\n>         return info(format.toPixelFormat());\n>\n> As part of the series that contains such commit, the PixelFormatInfo for\n> the\n> pixel format applied to a video device is now retrieved at\n> V4L2VideoDevice::open() time. Some video devices register formats not\n> available to applications, for example metadata formats or, in the case\n> of ISP devices, formats to describe the ISP statistics and parameters.\n>\n> This causes the\n>\n>         format.toPixelFormat()\n>\n> call to output a WARN message, which spams the log and unnecessary alert\n> the users.\n>\n> Augment V4L2PixelFormat::toPixelFormat() with an optional argument to\n> suppress warnings in the case a V4L2 pixel format is not known, to\n> restore the behaviour preceding commit f25ad4a2b16b and returns an\n> invalid PixelFormatInfo without outputting any unnecessary warning\n> message.\n>\n> Fixes: f25ad4a2b16b (\"libcamera: formats: Reimplement V4L2\n> PixelFormatInfo::info()\")\n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n>\n\nTested-by: Naushir Patuck <naush@raspberrypi.com>\n\nI have no further comments to add from what has already been raised, so\nwith thosed fixed:\n\nReviewed-by: Naushir Patuck <naush@raspberrypi.com>\n\n\n\n> ---\n>\n> This is the version suggested by Laurent of\n> [PATCH] libcamera: formats: Search V4L2 format info on map\n>\n> I don't like it too much but there's a slight performance improvement.\n>\n> ---\n>  include/libcamera/internal/v4l2_pixelformat.h |  2 +-\n>  src/libcamera/formats.cpp                     | 10 +++++++++-\n>  src/libcamera/v4l2_pixelformat.cpp            | 16 ++++++++++++----\n>  3 files changed, 22 insertions(+), 6 deletions(-)\n>\n> diff --git a/include/libcamera/internal/v4l2_pixelformat.h\n> b/include/libcamera/internal/v4l2_pixelformat.h\n> index 34d283db44f4..44439fff73eb 100644\n> --- a/include/libcamera/internal/v4l2_pixelformat.h\n> +++ b/include/libcamera/internal/v4l2_pixelformat.h\n> @@ -45,7 +45,7 @@ public:\n>         std::string toString() const;\n>         const char *description() const;\n>\n> -       PixelFormat toPixelFormat() const;\n> +       PixelFormat toPixelFormat(bool warn = true) const;\n>         static const std::vector<V4L2PixelFormat> &\n>         fromPixelFormat(const PixelFormat &pixelFormat);\n>\n> diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp\n> index 0bd0e09ae44c..f5769c489e16 100644\n> --- a/src/libcamera/formats.cpp\n> +++ b/src/libcamera/formats.cpp\n> @@ -852,7 +852,15 @@ const PixelFormatInfo &PixelFormatInfo::info(const\n> PixelFormat &format)\n>   */\n>  const PixelFormatInfo &PixelFormatInfo::info(const V4L2PixelFormat\n> &format)\n>  {\n> -       return info(format.toPixelFormat());\n> +       PixelFormat pixelFormat = format.toPixelFormat(false);\n> +       if (!pixelFormat.isValid())\n> +               return pixelFormatInfoInvalid;\n> +\n> +       const auto iter = pixelFormatInfo.find(pixelFormat);\n> +       if (iter == pixelFormatInfo.end())\n> +               return pixelFormatInfoInvalid;\n> +\n> +       return iter->second;\n>  }\n>\n>  /**\n> diff --git a/src/libcamera/v4l2_pixelformat.cpp\n> b/src/libcamera/v4l2_pixelformat.cpp\n> index 3590fb735011..26c9f02c759f 100644\n> --- a/src/libcamera/v4l2_pixelformat.cpp\n> +++ b/src/libcamera/v4l2_pixelformat.cpp\n> @@ -294,15 +294,23 @@ const char *V4L2PixelFormat::description() const\n>\n>  /**\n>   * \\brief Convert the V4L2 pixel format to the corresponding PixelFormat\n> + * \\param[in] warn Flag to control the warning message if the format is\n> not\n> + * supported. Default to true, set to false to suppress warning message.\n> + *\n> + * Users of this function might try to convert a V4L2PixelFormat to a\n> PixelFormat\n> + * just to check if the format is supported or not. In that case, they\n> can suppress\n> + * the warning message setting the \\a warn argument to false not not\n> pollute the log\n> + * with unnecessary warning messages.\n> + *\n>   * \\return The PixelFormat corresponding to the V4L2 pixel format\n>   */\n> -PixelFormat V4L2PixelFormat::toPixelFormat() const\n> +PixelFormat V4L2PixelFormat::toPixelFormat(bool warn) const\n>  {\n>         const auto iter = vpf2pf.find(*this);\n>         if (iter == vpf2pf.end()) {\n> -               LOG(V4L2, Warning)\n> -                       << \"Unsupported V4L2 pixel format \"\n> -                       << toString();\n> +               if (warn)\n> +                       LOG(V4L2, Warning) << \"Unsupported V4L2 pixel\n> format \"\n> +                                          << toString();\n>                 return PixelFormat();\n>         }\n>\n> --\n> 2.37.1\n>\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 1B647C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Aug 2022 11:04:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9A74E6332B;\n\tFri, 12 Aug 2022 13:04:17 +0200 (CEST)","from mail-lf1-x129.google.com (mail-lf1-x129.google.com\n\t[IPv6:2a00:1450:4864:20::129])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 70834603EA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Aug 2022 13:04:16 +0200 (CEST)","by mail-lf1-x129.google.com with SMTP id d14so842620lfl.13\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Aug 2022 04:04:16 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660302257;\n\tbh=M2MEXIojiZ1vSyxvJkOxNiW2EDCmZ9qqaysxqtxPqjk=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=X4bekoeDSOeFEjvm5MQ4eIqOmq79vjfgzJ7s0hBCU983BpTGdDe0MgiOA80+JrE1S\n\tHrH6CW8L5vGXjiABvSw0JCZe+P5g+B0n2cjvB4jWW1W3/M4Kdm0GQJBj30fBefUJRG\n\tmIchTnh+xYhYRqK3ZAAcevzz7UDAnWH9xrj9z8LErof42UUhj0qbzeijl+Wae3MbJ/\n\tj8oS/Z9nAa5Ax9XdjqYWBGCgMZC1c5lcgBvHbr8sL/WTCiTdnARG9l/PMgMI57R3JQ\n\tSl0c7tF4wrgIA2HCbD3CVGoeMUvDJyf9o9OPpdiWD+Wjh1u089PsoDhDopdDDJSFFQ\n\t9n8gnfCBRVU5A==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc;\n\tbh=z4X2cybN8YyneVy6+vOksHWWJpakmXcU09o72ggmWNE=;\n\tb=QzPdOlm2PpQI4BVD6IpA0qEjEUSaNqdWpRExt+eDaetDpDIIKR8TUa38YzhFwbow5O\n\thdMkHgFmRVGzu4BrCurQgeP6UkpOUqtUnd2LY4KQP+Dc0koF0MVbN7plygn0sMaMMtZQ\n\tjMEW1O1iB+7aqUdDDL9RfEAhv6kgPHpRcTQSYAZ/EpBEvAHvwAVwLNahW2DWPeueg8FR\n\t3/SPBxS2PprqC3lZHq6AawnJJ3SONYIhyDlk9100i+AldQ81n/8dfKrecXZ/kfSN9k1x\n\tHwK3v55FFa1pAuzF5NcRsLH9snEVht/BGJYFoClOqR0mFexySoLmo9bDnUQwFe6eij8b\n\tjTQQ=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"QzPdOlm2\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc;\n\tbh=z4X2cybN8YyneVy6+vOksHWWJpakmXcU09o72ggmWNE=;\n\tb=lne476c/ZxufB5g7PiC3pW719y+k3DIFJnf9vrxNBRBVDK9JlfItLKtvc4Hf4Djocm\n\tGDP3QV0lGWtDNUcSueT0jzScQVrJBylElOHAdMk3tbk54/m6cHbB07g2Sb3p5lPqmkQ5\n\t9zbigsdQvXzunPjXoRBxep6pfVnY8vddmsLXdS3VLVD5cGa1IDrUSMXqXoL675HXl98j\n\t9yetq4/jvW7VFd/9C58rzl7Y860RksRdqitA8lY+VNXF+/Exeptr322mugSAybHSxuJb\n\tayRutFiGyVe1eTyqy8Gs8jBpE11To6bBHk5GRN3wyvGbrRZqKJ4tQetfPp55qNPKRjVu\n\tHhEQ==","X-Gm-Message-State":"ACgBeo1UobH42ANI7nDadd0TldQGhdahTHmH+LiDFoErjn18hB3v6ntG\n\taeT8kWq82oT2vfw9WT+Cv9IEDd1/JbUUjF07WWtfwQ==","X-Google-Smtp-Source":"AA6agR5sxZPY2rUMP4jNkLXcThMZm6/abbw2k8HLIIZBzSmd4OgAC5VaUvEn2GkvP1VWsP1RQsQ0WNGB3xOopqNDp+A=","X-Received":"by 2002:ac2:4f03:0:b0:48b:2179:5249 with SMTP id\n\tk3-20020ac24f03000000b0048b21795249mr1271231lfr.356.1660302255596;\n\tFri, 12 Aug 2022 04:04:15 -0700 (PDT)","MIME-Version":"1.0","References":"<20220809144935.50417-1-jacopo@jmondi.org>","In-Reply-To":"<20220809144935.50417-1-jacopo@jmondi.org>","Date":"Fri, 12 Aug 2022 12:03:59 +0100","Message-ID":"<CAEmqJPq=a5hYP-w8pPuc3PP2Y1+vn6fruZ-HX7_r76P-k3ifiA@mail.gmail.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Content-Type":"multipart/alternative; boundary=\"0000000000002a3aba05e6093e63\"","Subject":"Re: [libcamera-devel] [PATCH v2] libcamera: formats: Fix warning\n\tfor unkown V4L2 pixfmt","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>","From":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]