From patchwork Wed Aug 7 08:03:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 20811 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 9BC54BE173 for ; Wed, 7 Aug 2024 08:03:46 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 47D7263393; Wed, 7 Aug 2024 10:03:44 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="hZtL1JLv"; dkim-atps=neutral Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B217461946 for ; Wed, 7 Aug 2024 10:03:42 +0200 (CEST) Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-2f025b94e07so17009261fa.0 for ; Wed, 07 Aug 2024 01:03:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1723017822; x=1723622622; 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=hZtL1JLvv2J0hgKixFIyuObMubM2S69Td+pILEzz6uOI7/pH+N+u6rHekHziBj+p/Z ZYWqLZcjLfm3lTfvl1KruC7VnvlV6/Ew+vIqhDziswXyHfrMotIh/z69cQA5j6DUmXuq nV0/Jj4TWDd9emPWe9Vb7NgzVg8tta9p2hAO0G+qeaFMF8zpnIwd0DBtPZ1Jo8FxpBWm oiIlVk+vg4Ydj0c//ZlFyKjayzu0LDfonKAmZUhLzfeYmV56CdwXcudnsEe3wrgjslK/ f9wym3s+MukVx7IPWxgP8ed/bBKG8ucSuFR038ilgydkur8wGl7fKJPEm30a6bbRg1Om YVYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723017822; x=1723622622; 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=XRqGExnFKy7tFN1UyLs7BCXYBicmXndxsOgDTQIPMbCuubUJtqmQu0klFG218PJD4q GEc6UP/hBMwnD2WaxmektAJC85S0fHcGPwmcCDw6o6r6mTQH7w4LKC8Rr18tzPRIxC1h klAe6JoNcUe5xf53Fkvg2skPJioUseTslclq2iZ+mzYprNkR7nNtlqiVEpHEpIlN6SoI GHZtJB1lK8V5mxiyJytwzzQlFRpRYHJPPUtQ/2g+LMIbie2qxpOn5BOAY5+AajMISyCD WVltbFUDixxllXgOrRmwdDKBDtc24gIIyusTBX7518Wk9q8ivOXWTDUIVQ3Cw3neQ7I9 pfBQ== X-Gm-Message-State: AOJu0YxOuIWwDak6dx0VOXUD3IHw0FzrBY2CoyiZo22v6Dk1OUVZE5+/ jtYrjNW9KUuTUrf6LOrWy/Lunh8qNtEqMwqYGVssiQrg/CN/mS3Xb92agn5ZyAenRuffNL+u/fK a X-Google-Smtp-Source: AGHT+IEkbseO5r64PERv21oR01rHjwoB7x/6hFWBfOb1c+Wt6i7QaAG5SyB8ydPRYoAF/5q/xQtT6Q== X-Received: by 2002:a2e:8718:0:b0:2ef:20ae:d111 with SMTP id 38308e7fff4ca-2f15aa85f82mr123791301fa.6.1723017821339; Wed, 07 Aug 2024 01:03:41 -0700 (PDT) Received: from naush-laptop.pitowers.org ([93.93.133.154]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42905961e9dsm16403005e9.8.2024.08.07.01.03.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Aug 2024 01:03:40 -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 09:03:43 +0100 Message-Id: <20240807080344.12780-2-naush@raspberrypi.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240807080344.12780-1-naush@raspberrypi.com> References: <20240807080344.12780-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" } },