> -----Original Message----- > From: Nicolas Dufresne [mailto:nicolas@xxxxxxxxxxxx] > Sent: Wednesday, July 28, 2021 1:58 AM > To: Ming Qian <ming.qian@xxxxxxx>; mchehab@xxxxxxxxxx; > shawnguo@xxxxxxxxxx; robh+dt@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx > Cc: hverkuil-cisco@xxxxxxxxx; kernel@xxxxxxxxxxxxxx; festevam@xxxxxxxxx; > dl-linux-imx <linux-imx@xxxxxxx>; Aisheng Dong <aisheng.dong@xxxxxxx>; > linux-media@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > Subject: [EXT] Re: [PATCH v5 02/14] media:Add nt8 and nt10 video format. > > Caution: EXT Email > > Le mardi 27 juillet 2021 à 11:20 +0800, Ming Qian a écrit : > > NT8 is 8-bit tiled nv12 format used by amphion decoder. > > NT10 is 10-bit tiled format used by amphion decoder. > > The tile size is 8x128 > > > > Signed-off-by: Ming Qian <ming.qian@xxxxxxx> > > Signed-off-by: Shijie Qin <shijie.qin@xxxxxxx> > > Signed-off-by: Zhou Peng <eagle.zhou@xxxxxxx> > > --- > > .../userspace-api/media/v4l/pixfmt-reserved.rst | 15 +++++++++++++++ > > drivers/media/v4l2-core/v4l2-ioctl.c | 2 ++ > > include/uapi/linux/videodev2.h | 2 ++ > > 3 files changed, 19 insertions(+) > > > > diff --git a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > > b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > > index c9231e18859b..2deae49210a7 100644 > > --- a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > > +++ b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > > @@ -256,3 +256,18 @@ please make a proposal on the linux-media mailing > list. > > of tiles, resulting in 32-aligned resolutions for the luminance plane > > and 16-aligned resolutions for the chrominance plane (with 2x2 > > subsampling). > > + * .. _V4L2-PIX-FMT-NT8: > > + > > + - ``V4L2_PIX_FMT_NT8`` > > + - 'NA12' > > + - Two-planar NV12-based format used by the video engine found on > Amphion decoder, > > + with 8x128 tiles for the luminance plane and chrominance plane. > > + The number of bytes in one luminance or chrominance row must be > divisible by 256. > > + * .. _V4L2-PIX-FMT-NT10: > > There is a large spread of "vendor specific" format that aren't really specific, or > complex enough to be worth being marked as vendor format. As per my > reading of this description, this is linearly layout 8x128 tiled format, with no > compression or anything (well unless you forgot to mention). As a side effect, > we should give that format an explicit name (NT8 is cryptic). What about > V4L2_PIX_FMT_NV12_8L128, my colleague is about to send a proposal in that > direction. That would be NV12 with plane tiled 8x128 bytes and layout linearly, > row by row, left to right. We already have cryptic formats like SUNXI, HM12 > that are literally just that, simple tiling, and we endup having to use obscure > vendor name whenever other HW uses the same. > > (this comment extends to the other formats here) Hi Nicolas, Thanks for your advice, I'll change the format name from NT8 to NV12_8L128 > > > + > > + - ``V4L2_PIX_FMT_NT10`` > > + - 'NT12' > > + - NT10 is a tiled YUV format with 10-bits per pixel with interleaved > UV. > > + It's used by the video engine found on Amphion decoder, > > + with 8x128 tiles for the luminance plane and chrominance plane. > > + The number of bytes in one luminance or chrominance row must be > divisible by 256. > > diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c > > b/drivers/media/v4l2-core/v4l2-ioctl.c > > index eeff398fbdcc..34e6415e5722 100644 > > --- a/drivers/media/v4l2-core/v4l2-ioctl.c > > +++ b/drivers/media/v4l2-core/v4l2-ioctl.c > > @@ -1402,6 +1402,8 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc > *fmt) > > case V4L2_META_FMT_UVC: descr = "UVC Payload Header > Metadata"; break; > > case V4L2_META_FMT_D4XX: descr = "Intel D4xx UVC > Metadata"; break; > > case V4L2_META_FMT_VIVID: descr = "Vivid Metadata"; > break; > > + case V4L2_PIX_FMT_NT8: descr = "Amphion Tiled 8x128 > NV12"; break; > > + case V4L2_PIX_FMT_NT10: descr = "Amphion Tiled 8x128 > 10-bit"; break; > > > > default: > > /* Compressed formats */ diff --git > > a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h > > index 534eaa4d39bc..4836590a690c 100644 > > --- a/include/uapi/linux/videodev2.h > > +++ b/include/uapi/linux/videodev2.h > > @@ -740,6 +740,8 @@ struct v4l2_pix_format { > > #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar > Greyscale 10-bit and Depth 16-bit */ > > #define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* > Sunxi Tiled NV12 Format */ > > #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit > packed depth confidence information */ > > +#define V4L2_PIX_FMT_NT8 v4l2_fourcc('N', 'A', '1', '2') /* Amphion > Tiled 8x128 NV12 Format */ > > +#define V4L2_PIX_FMT_NT10 v4l2_fourcc('N', 'T', '1', '2') /* Amphion > Tiled 8x128 10 bit Format */ > > > > /* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits > unused */ > > #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* > IPU3 packed 10-bit BGGR bayer */ >