{"id":27524,"url":"https://patchwork.libcamera.org/api/patches/27524/?format=json","web_url":"https://patchwork.libcamera.org/patch/27524/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260731133327.126689-1-robert.mader@collabora.com>","date":"2026-07-31T13:33:27","name":"pipeline: virtual: Use ColorSpace::Smpte170m","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"3495315c2200f662e0c6f150cfe7e83d78ac81ee","submitter":{"id":140,"url":"https://patchwork.libcamera.org/api/people/140/?format=json","name":"Robert Mader","email":"robert.mader@collabora.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/27524/mbox/","series":[{"id":6094,"url":"https://patchwork.libcamera.org/api/series/6094/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=6094","date":"2026-07-31T13:33:27","name":"pipeline: virtual: Use ColorSpace::Smpte170m","version":1,"mbox":"https://patchwork.libcamera.org/series/6094/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/27524/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/27524/checks/","tags":{},"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 62021C3264\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 31 Jul 2026 13:33:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8513767FD5;\n\tFri, 31 Jul 2026 15:33:54 +0200 (CEST)","from sender4-op-o11.zoho.com (sender4-op-o11.zoho.com\n\t[136.143.188.11])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 82E8665F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 Jul 2026 15:33:52 +0200 (CEST)","by mx.zohomail.com with SMTPS id 1785504826789344.4420354505745;\n\tFri, 31 Jul 2026 06:33:46 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=collabora.com\n\theader.i=robert.mader@collabora.com header.b=\"Th01z7pf\"; \n\tdkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1785504828; cv=none; \n\td=zohomail.com; s=zohoarc; \n\tb=bp0FFO2sOp8At5Ved37tI/X3ui4965ysohL0Su+yLCPxbt/XEmdvgyqlxrl+6pBwt3m1aW7cj+zuF21YTekEJ1HTQN0XNrhMnhuE6dr266xyZUyNDIIniTUPZ6+LZPlhL3ypFI6ZuhNe2RifKvepzOAd3ciGGHQmOPUb6GDZ0rc=","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; \n\ts=zohoarc; t=1785504828;\n\th=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To;\n\tbh=zYnSih8UhVPGLBI7xTKRCE1CeJ+chtEixzsaQrxTsLg=; \n\tb=Zwy5SOKXxxDNlPLmUKh+KRrGDpeAED/jwnh2nzeWn02hmQToKACGfrYrkt+jWkpwNej/vRWpIQxWq7ZrpSLospYk9qWj9MJtVxs4RJyCRELHYR6QIpweK0l2L0jW50RGQHl6o1FQF/9g6SIc0J8Qi17YiUVqP2xrJksmn7JoQVA=","ARC-Authentication-Results":"i=1; mx.zohomail.com;\n\tdkim=pass  header.i=collabora.com;\n\tspf=pass  smtp.mailfrom=robert.mader@collabora.com;\n\tdmarc=pass header.from=<robert.mader@collabora.com>","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1785504828;\n\ts=zohomail; d=collabora.com; i=robert.mader@collabora.com;\n\th=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Transfer-Encoding:Message-Id:Reply-To;\n\tbh=zYnSih8UhVPGLBI7xTKRCE1CeJ+chtEixzsaQrxTsLg=;\n\tb=Th01z7pf+zEUiH9GyS1GOISxN46BtSAQWZnPb5JO3YpMLAQWPC+4Gajm7BZ3+aHV\n\tMN7NFTITdQ0gOVLoSOjQiObyha6WE5Z9Q7Iu35MGwkHjKm4Wl/yWDJKXvNrlJg0hGQT\n\tlz4Epuud5CtW2WF6hknp2UAqmSWx3vw7S+//qqgc=","From":"Robert Mader <robert.mader@collabora.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Robert Mader <robert.mader@collabora.com>","Subject":"[PATCH] pipeline: virtual: Use ColorSpace::Smpte170m","Date":"Fri, 31 Jul 2026 15:33:27 +0200","Message-ID":"<20260731133327.126689-1-robert.mader@collabora.com>","X-Mailer":"git-send-email 2.55.0","MIME-Version":"1.0","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>"},"content":"ColorSpace::Smpte170m notably has YcbcrEncoding::Rec601, which is what\nlibyuv::ARGBToNV12() - used in TestPatternGenerator - uses internally.\nNewer/upcoming versions of libyuv will have ARGBToNV12Matrix(), allowing\nus to explicitly request the corresponding matrix for\nColorSpace::Rec709, however for now let's honor to the implicit value in\norder to allow color space aware clients to render as correctly as\npossible.\n\nNote that I'm not fully sure if the same applies to libyuv::MJPGToNV12() in\nImageFrameGenerator, however I *think* so.\n\nSigned-off-by: Robert Mader <robert.mader@collabora.com>\n---\n src/libcamera/pipeline/virtual/virtual.cpp | 6 +++---\n 1 file changed, 3 insertions(+), 3 deletions(-)","diff":"diff --git a/src/libcamera/pipeline/virtual/virtual.cpp b/src/libcamera/pipeline/virtual/virtual.cpp\nindex 81d2dddab815..9d59c26e2290 100644\n--- a/src/libcamera/pipeline/virtual/virtual.cpp\n+++ b/src/libcamera/pipeline/virtual/virtual.cpp\n@@ -208,8 +208,8 @@ 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\tif (cfg.colorSpace != ColorSpace::Smpte170m) {\n+\t\t\tcfg.colorSpace = ColorSpace::Smpte170m;\n \t\t\tstatus = Adjusted;\n \t\t\tadjusted = true;\n \t\t}\n@@ -283,7 +283,7 @@ 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+\t\tcfg.colorSpace = ColorSpace::Smpte170m;\n \n \t\tconfig->addConfiguration(cfg);\n \t}\n","prefixes":[]}