From patchwork Wed Aug 7 09:34:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 20814 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 83348C323E for ; Wed, 7 Aug 2024 09:34:59 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5C98B63393; Wed, 7 Aug 2024 11:34:57 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="i6P8cEE9"; dkim-atps=neutral Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4CD9263382 for ; Wed, 7 Aug 2024 11:34:55 +0200 (CEST) Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-42808071810so10638585e9.1 for ; Wed, 07 Aug 2024 02:34:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1723023295; x=1723628095; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BNeV+Mfh0xbbAy8/qvUjwm5fxs31OnXjJZpMfecEHuQ=; b=i6P8cEE9V2NYEVbFOE9IMejxet72ER2P+8EoWNNmhQrOScFtew3/Wn5XjdT0uRwSwQ aI6LgiBWRRkpdE6v0Kpil7BrYZYb1V0qBWbx1qJtfoStVSbBOGPkpFkUdALEPkhl0k5E 82sZCsKiAjJKEVho2GkwB0SZ2m+zVOaEDF+FvEM8Ib0+Bn8ncSnIc6M4PkHUEY67vIpK P3oC4JJp4uazZp6KQ1o6UasJ5IsHqTi1+PSDAdYQ/9S3l0sh5XEELk/MVYHhKyJZEwbC lnFtAfgm6ifTLsUDeAEAAsGN+UGfGYaiXDhZGJYBA3pOb5HKCbyEyoLmIB9nmLcjTaa5 TUPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723023295; x=1723628095; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BNeV+Mfh0xbbAy8/qvUjwm5fxs31OnXjJZpMfecEHuQ=; b=DfbmPHDBWpjCnTMf2UVCUh7ST40rKqyfhBacN16X8F6tymc7Epd7H5EtXMyOpRZo4O pLNxje1kCqGk8Q4t1xFgIXYKY7U9mWBWs8i7rFBEFP4OFtlFtwW5GgW9f0NlDtTWhUyD Kbc+q8nLcb2p1l7PiJ7coaOSLEkvbSpVQ3PI3Sclfl0IOmMrhissrw7hzLV8tYqjHjFH 8kzjo6hCx02Zze0hfDchrO3L5jKtFA70pWgVdRFglahV3XFQsQ/is7juXw+kDFDF7bKM oNxDHCC98tNzsi0pFuO6MBIRfRe6UqfeKOYgK1kYxHeKMBCbJJ0WWZE/6Ey23hLcC1lI bQrg== X-Gm-Message-State: AOJu0YylJzwq+Wkp1w1/A83IFaKRaEmZPYMwXhbBVPEekyso4TGWn78+ FOgnczrMKtsTMqdTe2/xs2LEv7iXISQ3fQZEg+q/+bVr7kyr5Dbj+gmR4tN/ZJYNwhbWm9/sAM7 c X-Google-Smtp-Source: AGHT+IFxjvrLvJcdg7mhF3Lcj0gxIPxj68qmYyocwhWGf29XAZBFxcvt06agmT7VLo6m94onN101Vg== X-Received: by 2002:adf:ea4d:0:b0:368:664a:d4f9 with SMTP id ffacd0b85a97d-36bbc0e8a82mr13082807f8f.28.1723023294414; Wed, 07 Aug 2024 02:34:54 -0700 (PDT) Received: from naush-laptop.pitowers.org ([93.93.133.154]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-36bbcf1daeesm15449769f8f.33.2024.08.07.02.34.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Aug 2024 02:34:54 -0700 (PDT) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Cc: will whang , Naushir Patuck Subject: [PATCH v1 1/2] libcamera: formats: Adding Support for Y12P Date: Wed, 7 Aug 2024 10:34:48 +0100 Message-Id: <20240807093449.1926-2-naush@raspberrypi.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240807093449.1926-1-naush@raspberrypi.com> References: <20240807093449.1926-1-naush@raspberrypi.com> 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" From: will whang Add support for the 12-bit Mono (V4L2_PIX_FMT_Y12P) format. This format is used by the IMX585 mono sensor. Signed-off-by: will whang Signed-off-by: Naushir Patuck --- src/libcamera/bayer_format.cpp | 2 ++ src/libcamera/formats.cpp | 10 ++++++++++ src/libcamera/formats.yaml | 3 +++ src/libcamera/v4l2_pixelformat.cpp | 2 ++ 4 files changed, 17 insertions(+) diff --git a/src/libcamera/bayer_format.cpp b/src/libcamera/bayer_format.cpp index 014f716d28f7..c2120d1c16d7 100644 --- a/src/libcamera/bayer_format.cpp +++ b/src/libcamera/bayer_format.cpp @@ -184,6 +184,8 @@ const std::map bayerToFormat{ { formats::R10_CSI2P, V4L2PixelFormat(V4L2_PIX_FMT_Y10P) } }, { { BayerFormat::MONO, 12, BayerFormat::Packing::None }, { formats::R12, V4L2PixelFormat(V4L2_PIX_FMT_Y12) } }, + { { BayerFormat::MONO, 12, BayerFormat::Packing::CSI2 }, + { formats::R12_CSI2P, V4L2PixelFormat(V4L2_PIX_FMT_Y12P) } }, { { BayerFormat::MONO, 16, BayerFormat::Packing::None }, { formats::R16, V4L2PixelFormat(V4L2_PIX_FMT_Y16) } }, { { BayerFormat::MONO, 16, BayerFormat::Packing::PISP1 }, diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp index cf41f2c261ed..f338fc373f33 100644 --- a/src/libcamera/formats.cpp +++ b/src/libcamera/formats.cpp @@ -527,6 +527,16 @@ const std::map pixelFormatInfo{ .pixelsPerGroup = 4, .planes = {{ { 5, 1 }, { 0, 0 }, { 0, 0 } }}, } }, + { formats::R12_CSI2P, { + .name = "R12_CSI2P", + .format = formats::R12_CSI2P, + .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_Y12P), }, + .bitsPerPixel = 12, + .colourEncoding = PixelFormatInfo::ColourEncodingYUV, + .packed = true, + .pixelsPerGroup = 2, + .planes = {{ { 3, 1 }, { 0, 0 }, { 0, 0 } }}, + } }, { formats::R12, { .name = "R12", .format = formats::R12, diff --git a/src/libcamera/formats.yaml b/src/libcamera/formats.yaml index fe027a7cce70..2d54d391ca01 100644 --- a/src/libcamera/formats.yaml +++ b/src/libcamera/formats.yaml @@ -138,6 +138,9 @@ formats: - R10_CSI2P: fourcc: DRM_FORMAT_R10 mod: MIPI_FORMAT_MOD_CSI2_PACKED + - R12_CSI2P: + fourcc: DRM_FORMAT_R12 + mod: MIPI_FORMAT_MOD_CSI2_PACKED - SRGGB10_CSI2P: fourcc: DRM_FORMAT_SRGGB10 diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp index 70568335b266..eb9ac2224fd1 100644 --- a/src/libcamera/v4l2_pixelformat.cpp +++ b/src/libcamera/v4l2_pixelformat.cpp @@ -139,6 +139,8 @@ const std::map vpf2pf{ { formats::R10_CSI2P, "10-bit Greyscale Packed" } }, { V4L2PixelFormat(V4L2_PIX_FMT_Y12), { formats::R12, "12-bit Greyscale" } }, + { V4L2PixelFormat(V4L2_PIX_FMT_Y12P), + { formats::R12_CSI2P, "12-bit Greyscale Packed" } }, { V4L2PixelFormat(V4L2_PIX_FMT_Y16), { formats::R16, "16-bit Greyscale" } },