[PATCH v1 1/2] libcamera: formats: Adding Support for Y12P
Naushir Patuck
naush at raspberrypi.com
Wed Aug 7 11:55:51 CEST 2024
On Wed, 7 Aug 2024 at 10:52, Laurent Pinchart
<laurent.pinchart at ideasonboard.com> wrote:
>
> On Wed, Aug 07, 2024 at 10:34:48AM +0100, Naushir Patuck wrote:
> > From: will whang <will at willwhang.com>
> >
> > Add support for the 12-bit Mono (V4L2_PIX_FMT_Y12P) format.
> > This format is used by the IMX585 mono sensor.
>
> The patch looks fine, but the commit message needs a rework. I think you
> can just say the format is supported by the Unicam driver, and is
> therefore useful in libcamera for RAW12 monochrome sensors.
Sorry, I only saw your comment on the previous patch set after I hit send-email.
Happy to change this. I can post another patch, or make the change
when applying if there are no other issues raised.
Naush
>
> > Signed-off-by: will whang <will at willwhang.com>
> > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> > ---
> > 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<BayerFormat, Formats, BayerFormatComparator> 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<PixelFormat, PixelFormatInfo> 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<V4L2PixelFormat, V4L2PixelFormat::Info> 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" } },
> >
>
> --
> Regards,
>
> Laurent Pinchart
More information about the libcamera-devel
mailing list