Skip to content

Commit 449eda5

Browse files
author
Alain Volmat
committed
drivers: video: add 10 to 16 bit unpacked bayer formats
Add all 4 variants of 10 / 12 / 14 and 16 bits unpacked bayer formats Signed-off-by: Alain Volmat <[email protected]>
1 parent e41909a commit 449eda5

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed

include/zephyr/drivers/video.h

+144
Original file line numberDiff line numberDiff line change
@@ -1009,6 +1009,134 @@ 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+
* @code{.unparsed}
1014+
* | Bbbbbbbb | bb000000 | Gggggggg | gg000000 | Bbbbbbbb | bb000000 | ...
1015+
* | Gggggggg | gg000000 | Rrrrrrrr | rr000000 | Gggggggg | gg000000 | ...
1016+
* @endcode
1017+
*/
1018+
#define VIDEO_PIX_FMT_BGGR10 VIDEO_FOURCC('B', 'G', '1', '0')
1019+
1020+
/**
1021+
* @code{.unparsed}
1022+
* | Gggggggg | gg000000 | Bbbbbbbb | bb000000 | Gggggggg | gg000000 | ...
1023+
* | Rrrrrrrr | rr000000 | Gggggggg | gg000000 | Rrrrrrrr | rr000000 | ...
1024+
* @endcode
1025+
*/
1026+
#define VIDEO_PIX_FMT_GBRG10 VIDEO_FOURCC('G', 'B', '1', '0')
1027+
1028+
/**
1029+
* @code{.unparsed}
1030+
* | Gggggggg | gg000000 | Rrrrrrrr | rr000000 | Gggggggg | gg000000 | ...
1031+
* | Bbbbbbbb | bb000000 | Gggggggg | gg000000 | Bbbbbbbb | bb000000 | ...
1032+
* @endcode
1033+
*/
1034+
#define VIDEO_PIX_FMT_GRBG10 VIDEO_FOURCC('B', 'A', '1', '0')
1035+
1036+
/**
1037+
* @code{.unparsed}
1038+
* | Rrrrrrrr | rr000000 | Gggggggg | gg000000 | Rrrrrrrr | rr000000 | ...
1039+
* | Gggggggg | gg000000 | Bbbbbbbb | bb000000 | Gggggggg | gg000000 | ...
1040+
* @endcode
1041+
*/
1042+
#define VIDEO_PIX_FMT_RGGB10 VIDEO_FOURCC('R', 'G', '1', '0')
1043+
1044+
/**
1045+
* @code{.unparsed}
1046+
* | Bbbbbbbb | bbbb0000 | Gggggggg | gggg0000 | Bbbbbbbb | bbbb0000 | ...
1047+
* | Gggggggg | gggg0000 | Rrrrrrrr | rrrr0000 | Gggggggg | gggg0000 | ...
1048+
* @endcode
1049+
*/
1050+
#define VIDEO_PIX_FMT_BGGR12 VIDEO_FOURCC('B', 'G', '1', '2')
1051+
1052+
/**
1053+
* @code{.unparsed}
1054+
* | Gggggggg | gggg0000 | Bbbbbbbb | bbbb0000 | Gggggggg | gggg0000 | ...
1055+
* | Rrrrrrrr | rrrr0000 | Gggggggg | gggg0000 | Rrrrrrrr | rrrr0000 | ...
1056+
* @endcode
1057+
*/
1058+
#define VIDEO_PIX_FMT_GBRG12 VIDEO_FOURCC('G', 'B', '1', '2')
1059+
1060+
/**
1061+
* @code{.unparsed}
1062+
* | Gggggggg | gggg0000 | Rrrrrrrr | rrrr0000 | Gggggggg | gggg0000 | ...
1063+
* | Bbbbbbbb | bbbb0000 | Gggggggg | gggg0000 | Bbbbbbbb | bbbb0000 | ...
1064+
* @endcode
1065+
*/
1066+
#define VIDEO_PIX_FMT_GRBG12 VIDEO_FOURCC('B', 'A', '1', '2')
1067+
1068+
/**
1069+
* @code{.unparsed}
1070+
* | Rrrrrrrr | rrrr0000 | Gggggggg | gggg0000 | Rrrrrrrr | rrrr0000 | ...
1071+
* | Gggggggg | gggg0000 | Bbbbbbbb | bbbb0000 | Gggggggg | gggg0000 | ...
1072+
* @endcode
1073+
*/
1074+
#define VIDEO_PIX_FMT_RGGB12 VIDEO_FOURCC('R', 'G', '1', '2')
1075+
1076+
/**
1077+
* @code{.unparsed}
1078+
* | Bbbbbbbb | bbbbbb00 | Gggggggg | gggggg00 | Bbbbbbbb | bbbbbb00 | ...
1079+
* | Gggggggg | gggggg00 | Rrrrrrrr | rrrrrr00 | Gggggggg | gggggg00 | ...
1080+
* @endcode
1081+
*/
1082+
#define VIDEO_PIX_FMT_BGGR14 VIDEO_FOURCC('B', 'G', '1', '4')
1083+
1084+
/**
1085+
* @code{.unparsed}
1086+
* | Gggggggg | gggggg00 | Bbbbbbbb | bbbbbb00 | Gggggggg | gggggg00 | ...
1087+
* | Rrrrrrrr | rrrrrr00 | Gggggggg | gggggg00 | Rrrrrrrr | rrrrrr00 | ...
1088+
* @endcode
1089+
*/
1090+
#define VIDEO_PIX_FMT_GBRG14 VIDEO_FOURCC('G', 'B', '1', '4')
1091+
1092+
/**
1093+
* @code{.unparsed}
1094+
* | Gggggggg | gggggg00 | Rrrrrrrr | rrrrrr00 | Gggggggg | gggggg00 | ...
1095+
* | Bbbbbbbb | bbbbbb00 | Gggggggg | gggggg00 | Bbbbbbbb | bbbbbb00 | ...
1096+
* @endcode
1097+
*/
1098+
#define VIDEO_PIX_FMT_GRBG14 VIDEO_FOURCC('G', 'R', '1', '4')
1099+
1100+
/**
1101+
* @code{.unparsed}
1102+
* | Rrrrrrrr | rrrrrr00 | Gggggggg | gggggg00 | Rrrrrrrr | rrrrrr00 | ...
1103+
* | Gggggggg | gggggg00 | Bbbbbbbb | bbbbbb00 | Gggggggg | gggggg00 | ...
1104+
* @endcode
1105+
*/
1106+
#define VIDEO_PIX_FMT_RGGB14 VIDEO_FOURCC('R', 'G', '1', '4')
1107+
1108+
/**
1109+
* @code{.unparsed}
1110+
* | Bbbbbbbb | bbbbbbbb | Gggggggg | gggggggg | Bbbbbbbb | bbbbbbbb | ...
1111+
* | Gggggggg | gggggggg | Rrrrrrrr | rrrrrrrr | Gggggggg | gggggggg | ...
1112+
* @endcode
1113+
*/
1114+
#define VIDEO_PIX_FMT_BGGR16 VIDEO_FOURCC('B', 'Y', 'R', '2')
1115+
1116+
/**
1117+
* @code{.unparsed}
1118+
* | Gggggggg | gggggggg | Bbbbbbbb | bbbbbbbb | Gggggggg | gggggggg | ...
1119+
* | Rrrrrrrr | rrrrrrrr | Gggggggg | gggggggg | Rrrrrrrr | rrrrrrrr | ...
1120+
* @endcode
1121+
*/
1122+
#define VIDEO_PIX_FMT_GBRG16 VIDEO_FOURCC('G', 'B', '1', '6')
1123+
1124+
/**
1125+
* @code{.unparsed}
1126+
* | Gggggggg | gggggggg | Rrrrrrrr | rrrrrrrr | Gggggggg | gggggggg | ...
1127+
* | Bbbbbbbb | bbbbbbbb | Gggggggg | gggggggg | Bbbbbbbb | bbbbbbbb | ...
1128+
* @endcode
1129+
*/
1130+
#define VIDEO_PIX_FMT_GRBG16 VIDEO_FOURCC('G', 'R', '1', '6')
1131+
1132+
/**
1133+
* @code{.unparsed}
1134+
* | Rrrrrrrr | rrrrrrrr | Gggggggg | gggggggg | Rrrrrrrr | rrrrrrrr | ...
1135+
* | Gggggggg | gggggggg | Bbbbbbbb | bbbbbbbb | Gggggggg | gggggggg | ...
1136+
* @endcode
1137+
*/
1138+
#define VIDEO_PIX_FMT_RGGB16 VIDEO_FOURCC('R', 'G', '1', '6')
1139+
10121140
/**
10131141
* @}
10141142
*/
@@ -1187,6 +1315,22 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
11871315
return 14;
11881316
case VIDEO_PIX_FMT_RGB565:
11891317
case VIDEO_PIX_FMT_YUYV:
1318+
case VIDEO_PIX_FMT_BGGR10:
1319+
case VIDEO_PIX_FMT_GBRG10:
1320+
case VIDEO_PIX_FMT_GRBG10:
1321+
case VIDEO_PIX_FMT_RGGB10:
1322+
case VIDEO_PIX_FMT_BGGR12:
1323+
case VIDEO_PIX_FMT_GBRG12:
1324+
case VIDEO_PIX_FMT_GRBG12:
1325+
case VIDEO_PIX_FMT_RGGB12:
1326+
case VIDEO_PIX_FMT_BGGR14:
1327+
case VIDEO_PIX_FMT_GBRG14:
1328+
case VIDEO_PIX_FMT_GRBG14:
1329+
case VIDEO_PIX_FMT_RGGB14:
1330+
case VIDEO_PIX_FMT_BGGR16:
1331+
case VIDEO_PIX_FMT_GBRG16:
1332+
case VIDEO_PIX_FMT_GRBG16:
1333+
case VIDEO_PIX_FMT_RGGB16:
11901334
return 16;
11911335
case VIDEO_PIX_FMT_XRGB32:
11921336
case VIDEO_PIX_FMT_XYUV32:

0 commit comments

Comments
 (0)