[libcamera-devel] [PATCH v2 2/2] pipeline: rkisp1: Add support for YUV422

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jul 20 00:41:20 CEST 2022


Hi,

On Tue, Jul 19, 2022 at 10:19:29PM +0900, Paul Elder via libcamera-devel wrote:
> On Tue, Jul 19, 2022 at 02:40:33PM +0200, Jacopo Mondi wrote:
> > On Tue, Jul 19, 2022 at 08:26:14PM +0900, paul.elder at ideasonboard.com wrote:
> > > On Tue, Jul 19, 2022 at 12:05:00PM +0200, Jacopo Mondi wrote:
> > > > On Tue, Jul 19, 2022 at 04:40:13PM +0900, Paul Elder via libcamera-devel wrote:
> > > > > YUV422 is already supported as an output format by the rkisp1 driver.
> > > > > Add them to the pipeline handler to support them in libcamera as well.
> > > > >
> > > > > YVU422 is also supported by the driver, but there only exists a
> > > > > multiplanar V4L2 format, which libcamera is currently unable to map to
> > > > > from the libcamera YVU422 format. This will be fixed later.

Why is that ?

> > > > That's peculiar!
> > > >
> > > > The driver supports (for both the main and self path)
> > > >
> > > > V4L2_PIX_FMT_YUV422P,
> > > > V4L2_PIX_FMT_YVU422M,
> > > >
> > > > so the YUV component ordering is supported throught the contiguous planes
> > > > variant, while the YVU permutation goes through non-contiguous one.
> > > >
> > > > Is there a reason ? Is the driver correct I wonder ?
> > >
> > > It's not the driver; it's that YVU422P doesn't exist as a V4L2 format.
> > 
> > Ok, the real question is then what the HW supports, contiguous or
> > non-contiguous ? The fact the YUV422P varian is used when the YUV422M
> 
> Both.
> 
> > exists makes me thing also YVU422 should be reported through the 'P'
> > variant.
> > 
> > Should the format be added to the videodev2.h header ?
> 
> Maybe? The i.MX3x IPU dma and some Marvell display controllers define
> their own YVU422P formats. But also not many drivers seem to support
> YVU422M anyway? Although maybe that doesn't mean much, since YUV422M
> isn't very popular even though YUV422P is.

We could extend V4L2 with missing contiguous planar formats indeed, but
I'd rather see this contiguous/non-contiguous separation go away in
V4L2. Unless there's a strong need for V4L2_PIX_FMT_YVU422P, I'd leave
it out for now.

> > > > > Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> > > > >
> > > > > ---
> > > > > Changes in v2:
> > > > > - remove YVU422
> > > > > - reorder formats
> > > > > ---
> > > > >  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 6 ++++--
> > > > >  1 file changed, 4 insertions(+), 2 deletions(-)
> > > > >
> > > > > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp
> > > > > index c070929d..856554b3 100644
> > > > > --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp
> > > > > +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp
> > > > > @@ -209,7 +209,7 @@ void RkISP1Path::stop()
> > > > >  namespace {
> > > > >  constexpr Size RKISP1_RSZ_MP_SRC_MIN{ 32, 16 };
> > > > >  constexpr Size RKISP1_RSZ_MP_SRC_MAX{ 4416, 3312 };
> > > > > -constexpr std::array<PixelFormat, 8> RKISP1_RSZ_MP_FORMATS{
> > > > > +constexpr std::array<PixelFormat, 9> RKISP1_RSZ_MP_FORMATS{
> > > > >  	formats::YUYV,
> > > > >  	formats::NV16,
> > > > >  	formats::NV61,
> > > > > @@ -217,13 +217,14 @@ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_MP_FORMATS{
> > > > >  	formats::NV12,
> > > > >  	formats::YUV420,
> > > > >  	formats::YVU420,
> > > > > +	formats::YUV422,
> > > > >  	formats::R8,
> > > > >  	/* \todo Add support for RAW formats. */
> > > > >  };
> > > > >
> > > > >  constexpr Size RKISP1_RSZ_SP_SRC_MIN{ 32, 16 };
> > > > >  constexpr Size RKISP1_RSZ_SP_SRC_MAX{ 1920, 1920 };
> > > > > -constexpr std::array<PixelFormat, 10> RKISP1_RSZ_SP_FORMATS{
> > > > > +constexpr std::array<PixelFormat, 11> RKISP1_RSZ_SP_FORMATS{
> > > > >  	formats::YUYV,
> > > > >  	formats::NV16,
> > > > >  	formats::NV61,
> > > > > @@ -231,6 +232,7 @@ constexpr std::array<PixelFormat, 10> RKISP1_RSZ_SP_FORMATS{
> > > > >  	formats::NV12,
> > > > >  	formats::YUV420,
> > > > >  	formats::YVU420,
> > > > > +	formats::YUV422,
> > > > >  	formats::R8,
> > > > >  	formats::RGB565,
> > > > >  	formats::XRGB8888,

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list