Hi Daniel,

On Fri, Jun 24, 2022 at 11:16:46PM +0200, Daniel Vetter wrote:
> On Thu, Jun 16, 2022 at 09:52:10PM +0300, Laurent Pinchart wrote:
> > Add FourCCs for two missing permutations of the packed YUV 4:4:4 color
> 
> For a second I thought this 4:4:4 is the bit packing, but it's the 444
> sampling rate thing.
> 
> Man formats are confusing.

:-)

> > components, namely AVUY and XVUY.
> > 
> > These formats are needed by the NXP i.MX8 ISI. While the ISI is
> > supported by a V4L2 device (corresponding formats have been submitted to
> > V4L2), it is handled in userspace by libcamera, which uses DRM FourCCs
> > for pixel formats.
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> > ---
> >  include/uapi/drm/drm_fourcc.h | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
> > index f1972154a594..399d950c53e3 100644
> > --- a/include/uapi/drm/drm_fourcc.h
> > +++ b/include/uapi/drm/drm_fourcc.h
> > @@ -205,7 +205,9 @@ extern "C" {
> 
> I build script to make sure we don't accidentally assign duplicated codes
> would be nice, this is pain to check.

Do you mean something like

cat include/uapi/drm/drm_fourcc.h | \
        grep '#define DRM_FORMAT_.*fourcc_code' | \
        sed 's/.*fourcc_code(\([^)]*\)).*/\1/' | \
        sort | \
        uniq -c | \
        grep -qv '^ \+1 ' && echo "Duplicate 4CC !!"

?

Where could this live ?

> Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>
> 
> >  #define DRM_FORMAT_VYUY            fourcc_code('V', 'Y', 'U', 'Y') /* 
> > [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */
> >  
> >  #define DRM_FORMAT_AYUV            fourcc_code('A', 'Y', 'U', 'V') /* 
> > [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */
> > +#define DRM_FORMAT_AVUY8888        fourcc_code('A', 'V', 'U', 'Y') /* 
> > [31:0] A:Cr:Cb:Y 8:8:8:8 little endian */
> >  #define DRM_FORMAT_XYUV8888        fourcc_code('X', 'Y', 'U', 'V') /* 
> > [31:0] X:Y:Cb:Cr 8:8:8:8 little endian */
> > +#define DRM_FORMAT_XVUY8888        fourcc_code('X', 'V', 'U', 'Y') /* 
> > [31:0] X:Cr:Cb:Y 8:8:8:8 little endian */
> >  #define DRM_FORMAT_VUY888  fourcc_code('V', 'U', '2', '4') /* [23:0] 
> > Cr:Cb:Y 8:8:8 little endian */
> >  #define DRM_FORMAT_VUY101010       fourcc_code('V', 'U', '3', '0') /* Y 
> > followed by U then V, 10:10:10. Non-linear modifier only */

-- 
Regards,

Laurent Pinchart

Reply via email to