Skip to content

Commit d8ad66c

Browse files
Alain Volmatkartben
authored andcommitted
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 <alain.volmat@foss.st.com>
1 parent 07f196b commit d8ad66c

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed

include/zephyr/drivers/video.h

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,6 +1020,134 @@ void video_closest_frmival(const struct device *dev, enum video_endpoint_id ep,
10201020
*/
10211021
#define VIDEO_PIX_FMT_SRGGB14P VIDEO_FOURCC('p', 'R', 'E', 'E')
10221022

1023+
/**
1024+
* @code{.unparsed}
1025+
* | bbbbbbbb 000000Bb | gggggggg 000000Gg | bbbbbbbb 000000Bb | gggggggg 000000Gg | ...
1026+
* | gggggggg 000000Gg | rrrrrrrr 000000Rr | gggggggg 000000Gg | rrrrrrrr 000000Rr | ...
1027+
* @endcode
1028+
*/
1029+
#define VIDEO_PIX_FMT_SBGGR10 VIDEO_FOURCC('B', 'G', '1', '0')
1030+
1031+
/**
1032+
* @code{.unparsed}
1033+
* | gggggggg 000000Gg | bbbbbbbb 000000Bb | gggggggg 000000Gg | bbbbbbbb 000000Bb | ...
1034+
* | rrrrrrrr 000000Rr | gggggggg 000000Gg | rrrrrrrr 000000Rr | gggggggg 000000Gg | ...
1035+
* @endcode
1036+
*/
1037+
#define VIDEO_PIX_FMT_SGBRG10 VIDEO_FOURCC('G', 'B', '1', '0')
1038+
1039+
/**
1040+
* @code{.unparsed}
1041+
* | gggggggg 000000Gg | rrrrrrrr 000000Rr | gggggggg 000000Gg | rrrrrrrr 000000Rr | ...
1042+
* | bbbbbbbb 000000Bb | gggggggg 000000Gg | bbbbbbbb 000000Bb | gggggggg 000000Gg | ...
1043+
* @endcode
1044+
*/
1045+
#define VIDEO_PIX_FMT_SGRBG10 VIDEO_FOURCC('B', 'A', '1', '0')
1046+
1047+
/**
1048+
* @code{.unparsed}
1049+
* | rrrrrrrr 000000Rr | gggggggg 000000Gg | rrrrrrrr 000000Rr | gggggggg 000000Gg | ...
1050+
* | gggggggg 000000Gg | bbbbbbbb 000000Bb | gggggggg 000000Gg | bbbbbbbb 000000Bb | ...
1051+
* @endcode
1052+
*/
1053+
#define VIDEO_PIX_FMT_SRGGB10 VIDEO_FOURCC('R', 'G', '1', '0')
1054+
1055+
/**
1056+
* @code{.unparsed}
1057+
* | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | ...
1058+
* | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | ...
1059+
* @endcode
1060+
*/
1061+
#define VIDEO_PIX_FMT_SBGGR12 VIDEO_FOURCC('B', 'G', '1', '2')
1062+
1063+
/**
1064+
* @code{.unparsed}
1065+
* | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | ...
1066+
* | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | ...
1067+
* @endcode
1068+
*/
1069+
#define VIDEO_PIX_FMT_SGBRG12 VIDEO_FOURCC('G', 'B', '1', '2')
1070+
1071+
/**
1072+
* @code{.unparsed}
1073+
* | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | ...
1074+
* | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | ...
1075+
* @endcode
1076+
*/
1077+
#define VIDEO_PIX_FMT_SGRBG12 VIDEO_FOURCC('B', 'A', '1', '2')
1078+
1079+
/**
1080+
* @code{.unparsed}
1081+
* | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | rrrrrrrr 0000Rrrr | gggggggg 0000Gggg | ...
1082+
* | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | gggggggg 0000Gggg | bbbbbbbb 0000Bbbb | ...
1083+
* @endcode
1084+
*/
1085+
#define VIDEO_PIX_FMT_SRGGB12 VIDEO_FOURCC('R', 'G', '1', '2')
1086+
1087+
/**
1088+
* @code{.unparsed}
1089+
* | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | ...
1090+
* | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | ...
1091+
* @endcode
1092+
*/
1093+
#define VIDEO_PIX_FMT_SBGGR14 VIDEO_FOURCC('B', 'G', '1', '4')
1094+
1095+
/**
1096+
* @code{.unparsed}
1097+
* | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | ...
1098+
* | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | ...
1099+
* @endcode
1100+
*/
1101+
#define VIDEO_PIX_FMT_SGBRG14 VIDEO_FOURCC('G', 'B', '1', '4')
1102+
1103+
/**
1104+
* @code{.unparsed}
1105+
* | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | ...
1106+
* | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | ...
1107+
* @endcode
1108+
*/
1109+
#define VIDEO_PIX_FMT_SGRBG14 VIDEO_FOURCC('G', 'R', '1', '4')
1110+
1111+
/**
1112+
* @code{.unparsed}
1113+
* | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | rrrrrrrr 00Rrrrrr | gggggggg 00Gggggg | ...
1114+
* | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | gggggggg 00Gggggg | bbbbbbbb 00Bbbbbb | ...
1115+
* @endcode
1116+
*/
1117+
#define VIDEO_PIX_FMT_SRGGB14 VIDEO_FOURCC('R', 'G', '1', '4')
1118+
1119+
/**
1120+
* @code{.unparsed}
1121+
* | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | ...
1122+
* | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | ...
1123+
* @endcode
1124+
*/
1125+
#define VIDEO_PIX_FMT_SBGGR16 VIDEO_FOURCC('B', 'Y', 'R', '2')
1126+
1127+
/**
1128+
* @code{.unparsed}
1129+
* | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | ...
1130+
* | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | ...
1131+
* @endcode
1132+
*/
1133+
#define VIDEO_PIX_FMT_SGBRG16 VIDEO_FOURCC('G', 'B', '1', '6')
1134+
1135+
/**
1136+
* @code{.unparsed}
1137+
* | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | ...
1138+
* | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | ...
1139+
* @endcode
1140+
*/
1141+
#define VIDEO_PIX_FMT_SGRBG16 VIDEO_FOURCC('G', 'R', '1', '6')
1142+
1143+
/**
1144+
* @code{.unparsed}
1145+
* | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | rrrrrrrr Rrrrrrrr | gggggggg Gggggggg | ...
1146+
* | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | gggggggg Gggggggg | bbbbbbbb Bbbbbbbb | ...
1147+
* @endcode
1148+
*/
1149+
#define VIDEO_PIX_FMT_SRGGB16 VIDEO_FOURCC('R', 'G', '1', '6')
1150+
10231151
/**
10241152
* @}
10251153
*/
@@ -1198,6 +1326,22 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
11981326
return 14;
11991327
case VIDEO_PIX_FMT_RGB565:
12001328
case VIDEO_PIX_FMT_YUYV:
1329+
case VIDEO_PIX_FMT_SBGGR10:
1330+
case VIDEO_PIX_FMT_SGBRG10:
1331+
case VIDEO_PIX_FMT_SGRBG10:
1332+
case VIDEO_PIX_FMT_SRGGB10:
1333+
case VIDEO_PIX_FMT_SBGGR12:
1334+
case VIDEO_PIX_FMT_SGBRG12:
1335+
case VIDEO_PIX_FMT_SGRBG12:
1336+
case VIDEO_PIX_FMT_SRGGB12:
1337+
case VIDEO_PIX_FMT_SBGGR14:
1338+
case VIDEO_PIX_FMT_SGBRG14:
1339+
case VIDEO_PIX_FMT_SGRBG14:
1340+
case VIDEO_PIX_FMT_SRGGB14:
1341+
case VIDEO_PIX_FMT_SBGGR16:
1342+
case VIDEO_PIX_FMT_SGBRG16:
1343+
case VIDEO_PIX_FMT_SGRBG16:
1344+
case VIDEO_PIX_FMT_SRGGB16:
12011345
return 16;
12021346
case VIDEO_PIX_FMT_XRGB32:
12031347
case VIDEO_PIX_FMT_XYUV32:

0 commit comments

Comments
 (0)