[libcamera-devel] [PATCH v4 03/10] libcamera: formats: Add R10_CSI2P format
Naushir Patuck
naush at raspberrypi.com
Thu Oct 28 14:18:38 CEST 2021
Hi Kieran,
On Thu, 28 Oct 2021 at 13:15, Kieran Bingham <
kieran.bingham at ideasonboard.com> wrote:
> Quoting Naushir Patuck (2021-10-28 09:46:39)
> > This new formats corresponds to the V4L2 V4L2_PIX_FMT_Y10P format, and
> is a
> > CSI2-packed version of the DRM_FORMAT_R10 format.
> >
>
> Relating to your question in the cover letter, I think it's better to
> keep this separate.
>
> > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> > ---
> > src/libcamera/formats.cpp | 13 +++++++++++++
> > src/libcamera/formats.yaml | 4 ++++
> > 2 files changed, 17 insertions(+)
> >
> > diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
> > index d4781dfb3874..9b6ccdca0663 100644
> > --- a/src/libcamera/formats.cpp
> > +++ b/src/libcamera/formats.cpp
> > @@ -510,6 +510,19 @@ const std::map<PixelFormat, PixelFormatInfo>
> pixelFormatInfo{
> > .pixelsPerGroup = 1,
> > .planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
> > } },
> > + { formats::R10_CSI2P, {
> > + .name = "R10_CSI2P",
> > + .format = formats::R10,
> > + .v4l2Formats = {
> > + .single = V4L2PixelFormat(V4L2_PIX_FMT_Y10P),
> > + .multi = V4L2PixelFormat(),
> > + },
> > + .bitsPerPixel = 10,
> > + .colourEncoding = PixelFormatInfo::ColourEncodingYUV,
> > + .packed = true,
> > + .pixelsPerGroup = 1,
>
> Is this correct for a packed format?
>
> Shouldn't this be pixelsPerGroup = 4; bytesPerGroup = 5; ?
>
> https://01.org/linuxgraphics/gfx-docs/drm/media/uapi/v4l/pixfmt-y10p.html
> states:
>
> """
> This is a packed grey-scale image format with a depth of 10 bits per
> pixel. Every four consecutive pixels are packed into 5 bytes. Each of
> the first 4 bytes contain the 8 high order bits of the pixels, and the
> 5th byte contains the 2 least significants bits of each pixel, in the
> same order.
> """
>
>
>
> > + .planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
>
> And therefore I'd expect this to be { 5, 1 }, instead of { 2, 1 } ...
>
Ugh, good catch! That was a copy-paste error on my part. I meant to update
the planes but forgot :-(
Naush
>
> > + } },
> >
> > /* Bayer formats. */
> > { formats::SBGGR8, {
> > diff --git a/src/libcamera/formats.yaml b/src/libcamera/formats.yaml
> > index 22a8e473a183..1f3f043302c3 100644
> > --- a/src/libcamera/formats.yaml
> > +++ b/src/libcamera/formats.yaml
> > @@ -109,6 +109,10 @@ formats:
> > - SBGGR16:
> > fourcc: DRM_FORMAT_SBGGR16
> >
> > + - R10_CSI2P:
> > + fourcc: DRM_FORMAT_R10
> > + mod: MIPI_FORMAT_MOD_CSI2_PACKED
> > +
> > - SRGGB10_CSI2P:
> > fourcc: DRM_FORMAT_SRGGB10
> > mod: MIPI_FORMAT_MOD_CSI2_PACKED
> > --
> > 2.25.1
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20211028/81e0483d/attachment.htm>
More information about the libcamera-devel
mailing list