Skip to content

Commit 31bb919

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 31bb919

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 000000Bb | gggggggg 000000Gg | bbbbbbbb 000000Bb | gggggggg 000000Gg | ...
1015+
* | gggggggg 000000Gg | rrrrrrrr 000000Rr | gggggggg 000000Gg | rrrrrrrr 000000Rr | ...
1016+
* @endcode
1017+
*/
1018+
#define VIDEO_PIX_FMT_SBGGR10 VIDEO_FOURCC('B', 'G', '1', '0')
1019+
1020+
/**
1021+
* @code{.unparsed}
1022+
* | gggggggg 000000Gg | bbbbbbbb 000000Bb | gggggggg 000000Gg | bbbbbbbb 000000Bb | ...
1023+
* | rrrrrrrr 000000Rr | gggggggg 000000Gg | rrrrrrrr 000000Rr | gggggggg 000000Gg | ...
1024+
* @endcode
1025+
*/
1026+
#define VIDEO_PIX_FMT_SGBRG10 VIDEO_FOURCC('G', 'B', '1', '0')
1027+
1028+
/**
1029+
* @code{.unparsed}
1030+
* | gggggggg 000000Gg | rrrrrrrr 000000Rr | gggggggg 000000Gg | rrrrrrrr 000000Rr | ...
1031+
* | bbbbbbbb 000000Bb | gggggggg 000000Gg | bbbbbbbb 000000Bb | gggggggg 000000Gg | ...
1032+
* @endcode
1033+
*/
1034+
#define VIDEO_PIX_FMT_SGRBG10 VIDEO_FOURCC('B', 'A', '1', '0')
1035+
1036+
/**
1037+
* @code{.unparsed}
1038+
* | rrrrrrrr 000000Rr | gggggggg 000000Gg | rrrrrrrr 000000Rr | gggggggg 000000Gg | ...
1039+
* | gggggggg 000000Gg | bbbbbbbb 000000Bb | gggggggg 000000Gg | bbbbbbbb 000000Bb | ...
1040+
* @endcode
1041+
*/
1042+
#define VIDEO_PIX_FMT_SRGGB10 VIDEO_FOURCC('R', 'G', '1', '0')
1043+
1044+
/**
1045+
* @code{.unparsed}
1046+
* | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | ...
1047+
* | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | ...
1048+
* @endcode
1049+
*/
1050+
#define VIDEO_PIX_FMT_SBGGR12 VIDEO_FOURCC('B', 'G', '1', '2')
1051+
1052+
/**
1053+
* @code{.unparsed}
1054+
* | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | ...
1055+
* | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | ...
1056+
* @endcode
1057+
*/
1058+
#define VIDEO_PIX_FMT_SGBRG12 VIDEO_FOURCC('G', 'B', '1', '2')
1059+
1060+
/**
1061+
* @code{.unparsed}
1062+
* | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | ...
1063+
* | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | ...
1064+
* @endcode
1065+
*/
1066+
#define VIDEO_PIX_FMT_SGRBG12 VIDEO_FOURCC('B', 'A', '1', '2')
1067+
1068+
/**
1069+
* @code{.unparsed}
1070+
* | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | ...
1071+
* | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | ...
1072+
* @endcode
1073+
*/
1074+
#define VIDEO_PIX_FMT_SRGGB12 VIDEO_FOURCC('R', 'G', '1', '2')
1075+
1076+
/**
1077+
* @code{.unparsed}
1078+
* | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | ...
1079+
* | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | ...
1080+
* @endcode
1081+
*/
1082+
#define VIDEO_PIX_FMT_SBGGR14 VIDEO_FOURCC('B', 'G', '1', '4')
1083+
1084+
/**
1085+
* @code{.unparsed}
1086+
* | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | ...
1087+
* | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | ...
1088+
* @endcode
1089+
*/
1090+
#define VIDEO_PIX_FMT_SGBRG14 VIDEO_FOURCC('G', 'B', '1', '4')
1091+
1092+
/**
1093+
* @code{.unparsed}
1094+
* | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | ...
1095+
* | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | ...
1096+
* @endcode
1097+
*/
1098+
#define VIDEO_PIX_FMT_SGRBG14 VIDEO_FOURCC('G', 'R', '1', '4')
1099+
1100+
/**
1101+
* @code{.unparsed}
1102+
* | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | ...
1103+
* | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | ...
1104+
* @endcode
1105+
*/
1106+
#define VIDEO_PIX_FMT_SRGGB14 VIDEO_FOURCC('R', 'G', '1', '4')
1107+
1108+
/**
1109+
* @code{.unparsed}
1110+
* | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | ...
1111+
* | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | ...
1112+
* @endcode
1113+
*/
1114+
#define VIDEO_PIX_FMT_SBGGR16 VIDEO_FOURCC('B', 'Y', 'R', '2')
1115+
1116+
/**
1117+
* @code{.unparsed}
1118+
* | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | ...
1119+
* | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | ...
1120+
* @endcode
1121+
*/
1122+
#define VIDEO_PIX_FMT_SGBRG16 VIDEO_FOURCC('G', 'B', '1', '6')
1123+
1124+
/**
1125+
* @code{.unparsed}
1126+
* | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | ...
1127+
* | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | ...
1128+
* @endcode
1129+
*/
1130+
#define VIDEO_PIX_FMT_SGRBG16 VIDEO_FOURCC('G', 'R', '1', '6')
1131+
1132+
/**
1133+
* @code{.unparsed}
1134+
* | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | ...
1135+
* | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | ...
1136+
* @endcode
1137+
*/
1138+
#define VIDEO_PIX_FMT_SRGGB16 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_SBGGR10:
1319+
case VIDEO_PIX_FMT_SGBRG10:
1320+
case VIDEO_PIX_FMT_SGRBG10:
1321+
case VIDEO_PIX_FMT_SRGGB10:
1322+
case VIDEO_PIX_FMT_SBGGR12:
1323+
case VIDEO_PIX_FMT_SGBRG12:
1324+
case VIDEO_PIX_FMT_SGRBG12:
1325+
case VIDEO_PIX_FMT_SRGGB12:
1326+
case VIDEO_PIX_FMT_SBGGR14:
1327+
case VIDEO_PIX_FMT_SGBRG14:
1328+
case VIDEO_PIX_FMT_SGRBG14:
1329+
case VIDEO_PIX_FMT_SRGGB14:
1330+
case VIDEO_PIX_FMT_SBGGR16:
1331+
case VIDEO_PIX_FMT_SGBRG16:
1332+
case VIDEO_PIX_FMT_SGRBG16:
1333+
case VIDEO_PIX_FMT_SRGGB16:
11901334
return 16;
11911335
case VIDEO_PIX_FMT_XRGB32:
11921336
case VIDEO_PIX_FMT_XYUV32:

0 commit comments

Comments
 (0)