[{"id":37784,"web_url":"https://patchwork.libcamera.org/comment/37784/","msgid":"<257860c3-2cde-47db-9b56-44e7c2bf1c2b@ideasonboard.com>","date":"2026-01-21T09:37:30","subject":"Re: [PATCH 3/3] pipeline: virtual: Rectify validation of colorspace","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n\n2026. 01. 21. 10:07 keltezéssel, Umang Jain írta:\n> Now that each frame generator class supports the colorspace\n> information using the colorspace() getter, use that to validate\n> (or set) the colorspace of a particular stream configuration instead\n> of a incorrect hard-coded one.\n> \n> Fixes: 5d2d005306ad (\"pipeline: virtual: Provide and validate colorspace\")\n> Signed-off-by: Umang Jain <uajain@igalia.com>\n> ---\n\nLooks ok to me.\n\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\n\n>   src/libcamera/pipeline/virtual/virtual.cpp | 8 ++++----\n>   1 file changed, 4 insertions(+), 4 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/virtual/virtual.cpp b/src/libcamera/pipeline/virtual/virtual.cpp\n> index 40c35264..3d205a6c 100644\n> --- a/src/libcamera/pipeline/virtual/virtual.cpp\n> +++ b/src/libcamera/pipeline/virtual/virtual.cpp\n> @@ -185,7 +185,7 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate()\n>   \t\tstatus = Adjusted;\n>   \t}\n>   \n> -\tfor (StreamConfiguration &cfg : config_) {\n> +\tfor (auto [i, cfg] : utils::enumerate(config_)) {\n>   \t\tbool adjusted = false;\n>   \t\tbool found = false;\n>   \t\tfor (const auto &resolution : data_->config_.resolutions) {\n> @@ -214,8 +214,9 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate()\n>   \t\t\tadjusted = true;\n>   \t\t}\n>   \n> -\t\tif (cfg.colorSpace != ColorSpace::Rec709) {\n> -\t\t\tcfg.colorSpace = ColorSpace::Rec709;\n> +\t\tconst ColorSpace colorspace = data_->streamConfigs_[i].frameGenerator->colorspace();\n> +\t\tif (cfg.colorSpace != colorspace) {\n> +\t\t\tcfg.colorSpace = colorspace;\n>   \t\t\tstatus = Adjusted;\n>   \t\t\tadjusted = true;\n>   \t\t}\n> @@ -289,7 +290,6 @@ PipelineHandlerVirtual::generateConfiguration(Camera *camera,\n>   \t\tcfg.pixelFormat = pixelFormat;\n>   \t\tcfg.size = data->config_.maxResolutionSize;\n>   \t\tcfg.bufferCount = VirtualCameraConfiguration::kBufferCount;\n> -\t\tcfg.colorSpace = ColorSpace::Rec709;\n>   \n>   \t\tconfig->addConfiguration(cfg);\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 B16B3BDCBF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 21 Jan 2026 09:37:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 500DA61FC6;\n\tWed, 21 Jan 2026 10:37:36 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 037AE615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 21 Jan 2026 10:37:35 +0100 (CET)","from [192.168.33.24] (185.221.143.114.nat.pool.zt.hu\n\t[185.221.143.114])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4B742A06;\n\tWed, 21 Jan 2026 10:37:03 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"ibQmkXGq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1768988223;\n\tbh=xd/ekqhb6jbkQ1ijTgQDXT8ddOY9czUQP6bPB6Ge2Gc=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=ibQmkXGq9I901fuvSgahPAtr4PWBcTw/9XjMTqldab39V/Yk9atfmLwncDP9c4p5I\n\tgb+DXIwU8Mkt3dUYjqdBcj/nEdiWm3MmNRiGDEUZZBsW5NiR+UlM9WYGr+TuEwLrY4\n\tXFSoI3UkPutCw0T/4s8TRzkpl1nnLEZY2oeZZ90g=","Message-ID":"<257860c3-2cde-47db-9b56-44e7c2bf1c2b@ideasonboard.com>","Date":"Wed, 21 Jan 2026 10:37:30 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 3/3] pipeline: virtual: Rectify validation of colorspace","To":"Umang Jain <uajain@igalia.com>, libcamera-devel@lists.libcamera.org","References":"<20260121090705.274081-1-uajain@igalia.com>\n\t<20260121090705.274081-4-uajain@igalia.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20260121090705.274081-4-uajain@igalia.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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":37828,"web_url":"https://patchwork.libcamera.org/comment/37828/","msgid":"<20260122002025.GG21091@killaraus>","date":"2026-01-22T00:20:25","subject":"Re: [PATCH 3/3] pipeline: virtual: Rectify validation of colorspace","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Umang,\n\nThank you for the patch.\n\nOn Wed, Jan 21, 2026 at 02:37:05PM +0530, Umang Jain wrote:\n> Now that each frame generator class supports the colorspace\n> information using the colorspace() getter, use that to validate\n> (or set) the colorspace of a particular stream configuration instead\n> of a incorrect hard-coded one.\n\ns/of a/of an/\n\n\nIt could be nice at some point to make the colorspace actually\nconfigurable, but for now this is fine, it fixes the issue.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> Fixes: 5d2d005306ad (\"pipeline: virtual: Provide and validate colorspace\")\n> Signed-off-by: Umang Jain <uajain@igalia.com>\n> ---\n>  src/libcamera/pipeline/virtual/virtual.cpp | 8 ++++----\n>  1 file changed, 4 insertions(+), 4 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/virtual/virtual.cpp b/src/libcamera/pipeline/virtual/virtual.cpp\n> index 40c35264..3d205a6c 100644\n> --- a/src/libcamera/pipeline/virtual/virtual.cpp\n> +++ b/src/libcamera/pipeline/virtual/virtual.cpp\n> @@ -185,7 +185,7 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate()\n>  \t\tstatus = Adjusted;\n>  \t}\n>  \n> -\tfor (StreamConfiguration &cfg : config_) {\n> +\tfor (auto [i, cfg] : utils::enumerate(config_)) {\n>  \t\tbool adjusted = false;\n>  \t\tbool found = false;\n>  \t\tfor (const auto &resolution : data_->config_.resolutions) {\n> @@ -214,8 +214,9 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate()\n>  \t\t\tadjusted = true;\n>  \t\t}\n>  \n> -\t\tif (cfg.colorSpace != ColorSpace::Rec709) {\n> -\t\t\tcfg.colorSpace = ColorSpace::Rec709;\n> +\t\tconst ColorSpace colorspace = data_->streamConfigs_[i].frameGenerator->colorspace();\n> +\t\tif (cfg.colorSpace != colorspace) {\n> +\t\t\tcfg.colorSpace = colorspace;\n>  \t\t\tstatus = Adjusted;\n>  \t\t\tadjusted = true;\n>  \t\t}\n> @@ -289,7 +290,6 @@ PipelineHandlerVirtual::generateConfiguration(Camera *camera,\n>  \t\tcfg.pixelFormat = pixelFormat;\n>  \t\tcfg.size = data->config_.maxResolutionSize;\n>  \t\tcfg.bufferCount = VirtualCameraConfiguration::kBufferCount;\n> -\t\tcfg.colorSpace = ColorSpace::Rec709;\n>  \n>  \t\tconfig->addConfiguration(cfg);\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 E3251C3220\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 22 Jan 2026 00:20:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2A6E361FC9;\n\tThu, 22 Jan 2026 01:20:29 +0100 (CET)","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 B390C61A35\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 22 Jan 2026 01:20:26 +0100 (CET)","from pendragon.ideasonboard.com\n\t(2001-14ba-703d-e500--ff4.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::ff4])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 3D439324;\n\tThu, 22 Jan 2026 01:19:54 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"XjKVwqF5\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1769041194;\n\tbh=a6Day40BNQlgh+kzjpi8a33Q3k2QOF9pbjDwxA0K8Lw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=XjKVwqF53RbJipJwb/w5RQoyB1HSl6ZMJDwOCKiPVPkOkORmsswFlFdn9mFniUHnB\n\tEev66R+hoS30TAKKfDlJkG2kTfFjZwHiot9RMiY9zoQG79gofmRUfF6iH0hJZbo0to\n\tzSr8CoFRFt02mZOivSd2u/1Qrr1WF4jbeiMLaRvk=","Date":"Thu, 22 Jan 2026 02:20:25 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Umang Jain <uajain@igalia.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 3/3] pipeline: virtual: Rectify validation of colorspace","Message-ID":"<20260122002025.GG21091@killaraus>","References":"<20260121090705.274081-1-uajain@igalia.com>\n\t<20260121090705.274081-4-uajain@igalia.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20260121090705.274081-4-uajain@igalia.com>","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>"}}]