Skip to content

Commit 90b23bf

Browse files
josuahkartben
authored andcommitted
drivers: video: formats: add grayscale formats
Add the grayscale formats in the same packing as defined by MIPI. The Linux V4L2 naming is preserved. Signed-off-by: Josuah Demangeon <me@josuah.net>
1 parent 8ae1855 commit 90b23bf

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

include/zephyr/drivers/video.h

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,6 +1009,59 @@ void video_closest_frmival(const struct device *dev, enum video_endpoint_id ep,
10091009
*/
10101010
#define VIDEO_PIX_FMT_SRGGB14P VIDEO_FOURCC('p', 'R', 'E', 'E')
10111011

1012+
/**
1013+
* @}
1014+
*/
1015+
1016+
/**
1017+
* @name Grayscale formats
1018+
* Luminance (Y) channel only, in various bit depth and packing.
1019+
*
1020+
* When the format includes more than 8-bit per pixel, a strategy becomes needed to pack
1021+
* the bits over multiple bytes, as illustrated for each format.
1022+
*
1023+
* The number above the 'Y', 'y' are hints about which pixel number the following bits belong to.
1024+
*
1025+
* @{
1026+
*/
1027+
1028+
/**
1029+
* Same as Y8 (8-bit luma-only) following the standard FOURCC naming,
1030+
* or L8 in some graphics libraries.
1031+
*
1032+
* @code{.unparsed}
1033+
* 0 1 2 3
1034+
* | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | ...
1035+
* @endcode
1036+
*/
1037+
#define VIDEO_PIX_FMT_GREY VIDEO_FOURCC('G', 'R', 'E', 'Y')
1038+
1039+
/**
1040+
* @code{.unparsed}
1041+
* 0 1 2 3 3 2 1 0
1042+
* | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | ...
1043+
* @endcode
1044+
*/
1045+
#define VIDEO_PIX_FMT_Y10P VIDEO_FOURCC('Y', '1', '0', 'P')
1046+
1047+
/**
1048+
* @code{.unparsed}
1049+
* 0 1 1 0 2 3 3 2
1050+
* | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | ...
1051+
* | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | ...
1052+
* @endcode
1053+
*/
1054+
#define VIDEO_PIX_FMT_Y12P VIDEO_FOURCC('Y', '1', '2', 'P')
1055+
1056+
/**
1057+
* @code{.unparsed}
1058+
* 0 1 2 3 1 0 2 1 3 2
1059+
* | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy yyyyyyyy yyyyyyyy | ...
1060+
* | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy yyyyyyyy yyyyyyyy | ...
1061+
* @endcode
1062+
*/
1063+
#define VIDEO_PIX_FMT_Y14P VIDEO_FOURCC('Y', '1', '4', 'P')
1064+
10121065
/**
10131066
* @}
10141067
*/
@@ -1112,6 +1165,7 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
11121165
case VIDEO_PIX_FMT_GBRG8:
11131166
case VIDEO_PIX_FMT_GRBG8:
11141167
case VIDEO_PIX_FMT_RGGB8:
1168+
case VIDEO_PIX_FMT_GREY:
11151169
return 8;
11161170
case VIDEO_PIX_FMT_SBGGR10P:
11171171
case VIDEO_PIX_FMT_SGBRG10P:

0 commit comments

Comments
 (0)