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

paul.elder at ideasonboard.com paul.elder at ideasonboard.com
Tue Jul 19 13:26:14 CEST 2022


Hi Jacopo,

On Tue, Jul 19, 2022 at 12:05:00PM +0200, Jacopo Mondi wrote:
> Hi Paul,
> 
> 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.
> 
> 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.


Paul

> 
> >
> > 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,
> > --
> > 2.30.2
> >


More information about the libcamera-devel mailing list