From patchwork Fri Jul 31 13:33:27 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Mader X-Patchwork-Id: 27524 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 62021C3264 for ; Fri, 31 Jul 2026 13:33:55 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8513767FD5; Fri, 31 Jul 2026 15:33:54 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=collabora.com header.i=robert.mader@collabora.com header.b="Th01z7pf"; dkim-atps=neutral Received: from sender4-op-o11.zoho.com (sender4-op-o11.zoho.com [136.143.188.11]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 82E8665F9F for ; Fri, 31 Jul 2026 15:33:52 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; t=1785504828; cv=none; d=zohomail.com; s=zohoarc; b=bp0FFO2sOp8At5Ved37tI/X3ui4965ysohL0Su+yLCPxbt/XEmdvgyqlxrl+6pBwt3m1aW7cj+zuF21YTekEJ1HTQN0XNrhMnhuE6dr266xyZUyNDIIniTUPZ6+LZPlhL3ypFI6ZuhNe2RifKvepzOAd3ciGGHQmOPUb6GDZ0rc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785504828; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=zYnSih8UhVPGLBI7xTKRCE1CeJ+chtEixzsaQrxTsLg=; b=Zwy5SOKXxxDNlPLmUKh+KRrGDpeAED/jwnh2nzeWn02hmQToKACGfrYrkt+jWkpwNej/vRWpIQxWq7ZrpSLospYk9qWj9MJtVxs4RJyCRELHYR6QIpweK0l2L0jW50RGQHl6o1FQF/9g6SIc0J8Qi17YiUVqP2xrJksmn7JoQVA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=robert.mader@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1785504828; s=zohomail; d=collabora.com; i=robert.mader@collabora.com; h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Transfer-Encoding:Message-Id:Reply-To; bh=zYnSih8UhVPGLBI7xTKRCE1CeJ+chtEixzsaQrxTsLg=; b=Th01z7pf+zEUiH9GyS1GOISxN46BtSAQWZnPb5JO3YpMLAQWPC+4Gajm7BZ3+aHV MN7NFTITdQ0gOVLoSOjQiObyha6WE5Z9Q7Iu35MGwkHjKm4Wl/yWDJKXvNrlJg0hGQT lz4Epuud5CtW2WF6hknp2UAqmSWx3vw7S+//qqgc= Received: by mx.zohomail.com with SMTPS id 1785504826789344.4420354505745; Fri, 31 Jul 2026 06:33:46 -0700 (PDT) From: Robert Mader To: libcamera-devel@lists.libcamera.org Cc: Robert Mader 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 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" ColorSpace::Smpte170m notably has YcbcrEncoding::Rec601, which is what libyuv::ARGBToNV12() - used in TestPatternGenerator - uses internally. Newer/upcoming versions of libyuv will have ARGBToNV12Matrix(), allowing us to explicitly request the corresponding matrix for ColorSpace::Rec709, however for now let's honor to the implicit value in order to allow color space aware clients to render as correctly as possible. Note that I'm not fully sure if the same applies to libyuv::MJPGToNV12() in ImageFrameGenerator, however I *think* so. Signed-off-by: Robert Mader --- src/libcamera/pipeline/virtual/virtual.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libcamera/pipeline/virtual/virtual.cpp b/src/libcamera/pipeline/virtual/virtual.cpp index 81d2dddab815..9d59c26e2290 100644 --- a/src/libcamera/pipeline/virtual/virtual.cpp +++ b/src/libcamera/pipeline/virtual/virtual.cpp @@ -208,8 +208,8 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate() adjusted = true; } - if (cfg.colorSpace != ColorSpace::Rec709) { - cfg.colorSpace = ColorSpace::Rec709; + if (cfg.colorSpace != ColorSpace::Smpte170m) { + cfg.colorSpace = ColorSpace::Smpte170m; status = Adjusted; adjusted = true; } @@ -283,7 +283,7 @@ PipelineHandlerVirtual::generateConfiguration(Camera *camera, cfg.pixelFormat = pixelFormat; cfg.size = data->config_.maxResolutionSize; cfg.bufferCount = VirtualCameraConfiguration::kBufferCount; - cfg.colorSpace = ColorSpace::Rec709; + cfg.colorSpace = ColorSpace::Smpte170m; config->addConfiguration(cfg); }