Re: [PATCH 1/2] drm_fourcc: Add new P010 video format
On Thu, Jan 05, 2017 at 12:31:27AM +0800, ayaka wrote: > > > On 01/04/2017 11:56 PM, Ville Syrjälä wrote: > > On Mon, Jan 02, 2017 at 04:50:03PM +0800, Randy Li wrote: > >> P010 is a planar 4:2:0 YUV with interleaved UV plane, 10 bits > >> per channel video format. Rockchip's vop support this > >> video format(little endian only) as the input video format. > >> > >> Signed-off-by: Randy Li > >> --- > >> include/uapi/drm/drm_fourcc.h | 1 + > >> 1 file changed, 1 insertion(+) > >> > >> diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h > >> index 9e1bb7f..d2721da 100644 > >> --- a/include/uapi/drm/drm_fourcc.h > >> +++ b/include/uapi/drm/drm_fourcc.h > >> @@ -119,6 +119,7 @@ extern "C" { > >> #define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 > >> subsampled Cb:Cr plane */ > >> #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* > >> non-subsampled Cr:Cb plane */ > >> #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* > >> non-subsampled Cb:Cr plane */ > >> +#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0') /* 2x2 > >> subsampled Cr:Cb plane 10 bits per channel */ > > We could use a better description of the format here. IIRC there is > > 10bits of actual data contained in each 16bits. So there should be a > > proper comment explaning in which way the bits are stored. > It is a little hard to describe P010, /* * 2 plane YCbCr * index 0 = Y plane, [15:0] Y:X 10:6 little-endian * index 1 = Cr:Cb plane, [31:0] Cr:X:Cb:X 10:6:10:6 little-endian */ /* * 2 plane YCbCr * index 0 = Y plane, [15:0] Y 16 little-endian * index 1 = Cr:Cb plane, [31:0] Cr:Cb 16:16 little-endian */ or something like that (not 100% sure I got the order of bits and whatnot correct). -- Ville Syrjälä Intel OTC -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] drm_fourcc: Add new P010 video format
On 01/04/2017 11:56 PM, Ville Syrjälä wrote: On Mon, Jan 02, 2017 at 04:50:03PM +0800, Randy Li wrote: P010 is a planar 4:2:0 YUV with interleaved UV plane, 10 bits per channel video format. Rockchip's vop support this video format(little endian only) as the input video format. Signed-off-by: Randy Li --- include/uapi/drm/drm_fourcc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h index 9e1bb7f..d2721da 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h @@ -119,6 +119,7 @@ extern "C" { #define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */ #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */ #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */ +#define DRM_FORMAT_P010fourcc_code('P', '0', '1', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel */ We could use a better description of the format here. IIRC there is 10bits of actual data contained in each 16bits. So there should be a proper comment explaning in which way the bits are stored. It is a little hard to describe P010, which leaves a problem cpp information in the new patches. Also I have no idea how to draw the byte-order table the rst document for v4l2. /* * 3 plane YCbCr -- 2.7.4 ___ dri-devel mailing list dri-de...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] drm_fourcc: Add new P010 video format
On Mon, Jan 02, 2017 at 04:50:03PM +0800, Randy Li wrote: > P010 is a planar 4:2:0 YUV with interleaved UV plane, 10 bits > per channel video format. Rockchip's vop support this > video format(little endian only) as the input video format. > > Signed-off-by: Randy Li > --- > include/uapi/drm/drm_fourcc.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h > index 9e1bb7f..d2721da 100644 > --- a/include/uapi/drm/drm_fourcc.h > +++ b/include/uapi/drm/drm_fourcc.h > @@ -119,6 +119,7 @@ extern "C" { > #define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 > subsampled Cb:Cr plane */ > #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* > non-subsampled Cr:Cb plane */ > #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* > non-subsampled Cb:Cr plane */ > +#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0') /* 2x2 > subsampled Cr:Cb plane 10 bits per channel */ We could use a better description of the format here. IIRC there is 10bits of actual data contained in each 16bits. So there should be a proper comment explaning in which way the bits are stored. > > /* > * 3 plane YCbCr > -- > 2.7.4 > > ___ > dri-devel mailing list > dri-de...@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrjälä Intel OTC -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] drm_fourcc: Add new P010 video format
Hi Randy, On 2 January 2017 at 09:50, Randy Li wrote: > P010 is a planar 4:2:0 YUV with interleaved UV plane, 10 bits > per channel video format. Rockchip's vop support this > video format(little endian only) as the input video format. > > Signed-off-by: Randy Li > --- > include/uapi/drm/drm_fourcc.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h > index 9e1bb7f..d2721da 100644 > --- a/include/uapi/drm/drm_fourcc.h > +++ b/include/uapi/drm/drm_fourcc.h > @@ -119,6 +119,7 @@ extern "C" { > #define DRM_FORMAT_NV61fourcc_code('N', 'V', '6', '1') /* > 2x1 subsampled Cb:Cr plane */ > #define DRM_FORMAT_NV24fourcc_code('N', 'V', '2', '4') /* > non-subsampled Cr:Cb plane */ > #define DRM_FORMAT_NV42fourcc_code('N', 'V', '4', '2') /* > non-subsampled Cb:Cr plane */ > +#define DRM_FORMAT_P010fourcc_code('P', '0', '1', '0') /* > 2x2 subsampled Cr:Cb plane 10 bits per channel */ Thanks, this looks good, but I have two requests. Firstly, the Microsoft page here also mentions that P016 is a preferred format along P010, so please add P016 as well: https://msdn.microsoft.com/en-us/library/windows/desktop/bb970578(v=vs.85).aspx I don't see much use of the other (P21x/P41x/Yxxx) formats defined there, so there's probably no use going wild and adding them just yet. Secondly, please update the format_info table in drm_fourcc.c for these two formats, to avoid throwing a WARN_ON every time they are used. Cheers, Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/2] drm_fourcc: Add new P010 video format
P010 is a planar 4:2:0 YUV with interleaved UV plane, 10 bits per channel video format. Rockchip's vop support this video format(little endian only) as the input video format. Signed-off-by: Randy Li --- include/uapi/drm/drm_fourcc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h index 9e1bb7f..d2721da 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h @@ -119,6 +119,7 @@ extern "C" { #define DRM_FORMAT_NV61fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */ #define DRM_FORMAT_NV24fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */ #define DRM_FORMAT_NV42fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */ +#define DRM_FORMAT_P010fourcc_code('P', '0', '1', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel */ /* * 3 plane YCbCr -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html