Skip to content

Commit 8ae1855

Browse files
josuahkartben
authored andcommitted
drivers: video: formats: include bayer 10/12/14-bits formats
In addition to the 8-bit, introduce all the other bayer formats described by MIPI-CSI2 specification. The 8-bit bayer formats description is shortened to just 4 bytes like the other formats, to help intuition while comparing the different formats. Signed-off-by: Josuah Demangeon <me@josuah.net>
1 parent 2c5ec1c commit 8ae1855

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed

include/zephyr/drivers/video.h

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,6 +901,114 @@ void video_closest_frmival(const struct device *dev, enum video_endpoint_id ep,
901901
*/
902902
#define VIDEO_PIX_FMT_RGGB8 VIDEO_FOURCC('R', 'G', 'G', 'B')
903903

904+
/**
905+
* @code{.unparsed}
906+
* 0 1 2 3 3 2 1 0
907+
* | Bbbbbbbb | Gggggggg | Bbbbbbbb | Gggggggg | ggbbggbb | ...
908+
* | Gggggggg | Rrrrrrrr | Gggggggg | Rrrrrrrr | rrggrrgg | ...
909+
* @endcode
910+
*/
911+
#define VIDEO_PIX_FMT_SBGGR10P VIDEO_FOURCC('p', 'B', 'A', 'A')
912+
913+
/**
914+
* @code{.unparsed}
915+
* 0 1 2 3 3 2 1 0
916+
* | Gggggggg | Bbbbbbbb | Gggggggg | Bbbbbbbb | bbggbbgg | ...
917+
* | Rrrrrrrr | Gggggggg | Rrrrrrrr | Gggggggg | ggrrggrr | ...
918+
* @endcode
919+
*/
920+
#define VIDEO_PIX_FMT_SGBRG10P VIDEO_FOURCC('p', 'G', 'A', 'A')
921+
922+
/**
923+
* @code{.unparsed}
924+
* 0 1 2 3 3 2 1 0
925+
* | Gggggggg | Rrrrrrrr | Gggggggg | Rrrrrrrr | rrggrrgg | ...
926+
* | Bbbbbbbb | Gggggggg | Bbbbbbbb | Gggggggg | ggbbggbb | ...
927+
* @endcode
928+
*/
929+
#define VIDEO_PIX_FMT_SGRBG10P VIDEO_FOURCC('p', 'g', 'A', 'A')
930+
931+
/**
932+
* @code{.unparsed}
933+
* 0 1 2 3 3 2 1 0
934+
* | Rrrrrrrr | Gggggggg | Rrrrrrrr | Gggggggg | ggrrggrr | ...
935+
* | Gggggggg | Bbbbbbbb | Gggggggg | Bbbbbbbb | bbggbbgg | ...
936+
* @endcode
937+
*/
938+
#define VIDEO_PIX_FMT_SRGGB10P VIDEO_FOURCC('p', 'R', 'A', 'A')
939+
940+
/**
941+
* @code{.unparsed}
942+
* 0 1 1 0 2 3 3 2
943+
* | Bbbbbbbb | Gggggggg | ggggbbbb | Bbbbbbbb | Gggggggg | ggggbbbb | ...
944+
* | Gggggggg | Rrrrrrrr | rrrrgggg | Gggggggg | Rrrrrrrr | rrrrgggg | ...
945+
* @endcode
946+
*/
947+
#define VIDEO_PIX_FMT_SBGGR12P VIDEO_FOURCC('p', 'B', 'C', 'C')
948+
949+
/**
950+
* @code{.unparsed}
951+
* 0 1 1 0 2 3 3 2
952+
* | Gggggggg | Bbbbbbbb | bbbbgggg | Gggggggg | Bbbbbbbb | bbbbgggg | ...
953+
* | Rrrrrrrr | Gggggggg | ggggrrrr | Rrrrrrrr | Gggggggg | ggggrrrr | ...
954+
* @endcode
955+
*/
956+
#define VIDEO_PIX_FMT_SGBRG12P VIDEO_FOURCC('p', 'G', 'C', 'C')
957+
958+
/**
959+
* @code{.unparsed}
960+
* 0 1 1 0 2 3 3 2
961+
* | Gggggggg | Rrrrrrrr | rrrrgggg | Gggggggg | Rrrrrrrr | rrrrgggg | ...
962+
* | Bbbbbbbb | Gggggggg | ggggbbbb | Bbbbbbbb | Gggggggg | ggggbbbb | ...
963+
* @endcode
964+
*/
965+
#define VIDEO_PIX_FMT_SGRBG12P VIDEO_FOURCC('p', 'g', 'C', 'C')
966+
967+
/**
968+
* @code{.unparsed}
969+
* 0 1 1 0 2 3 3 2
970+
* | Rrrrrrrr | Gggggggg | ggggrrrr | Rrrrrrrr | Gggggggg | ggggrrrr | ...
971+
* | Gggggggg | Bbbbbbbb | bbbbgggg | Gggggggg | Bbbbbbbb | bbbbgggg | ...
972+
* @endcode
973+
*/
974+
#define VIDEO_PIX_FMT_SRGGB12P VIDEO_FOURCC('p', 'R', 'C', 'C')
975+
976+
/**
977+
* @code{.unparsed}
978+
* 0 1 2 3 1 0 2 1 3 2
979+
* | Bbbbbbbb | Gggggggg | Bbbbbbbb | Gggggggg | ggbbbbbb bbbbgggg ggggggbb | ...
980+
* | Gggggggg | Rrrrrrrr | Gggggggg | Rrrrrrrr | rrgggggg ggggrrrr rrrrrrgg | ...
981+
* @endcode
982+
*/
983+
#define VIDEO_PIX_FMT_SBGGR14P VIDEO_FOURCC('p', 'B', 'E', 'E')
984+
985+
/**
986+
* @code{.unparsed}
987+
* 0 1 2 3 1 0 2 1 3 2
988+
* | Gggggggg | Bbbbbbbb | Gggggggg | Bbbbbbbb | bbgggggg ggggbbbb bbbbbbgg | ...
989+
* | Rrrrrrrr | Gggggggg | Rrrrrrrr | Gggggggg | ggrrrrrr rrrrgggg ggggggrr | ...
990+
* @endcode
991+
*/
992+
#define VIDEO_PIX_FMT_SGBRG14P VIDEO_FOURCC('p', 'G', 'E', 'E')
993+
994+
/**
995+
* @code{.unparsed}
996+
* 0 1 2 3 1 0 2 1 3 2
997+
* | Gggggggg | Rrrrrrrr | Gggggggg | Rrrrrrrr | rrgggggg ggggrrrr rrrrrrgg | ...
998+
* | Bbbbbbbb | Gggggggg | Bbbbbbbb | Gggggggg | ggbbbbbb bbbbgggg ggggggbb | ...
999+
* @endcode
1000+
*/
1001+
#define VIDEO_PIX_FMT_SGRBG14P VIDEO_FOURCC('p', 'g', 'E', 'E')
1002+
1003+
/**
1004+
* @code{.unparsed}
1005+
* 0 1 2 3 1 0 2 1 3 2
1006+
* | Rrrrrrrr | Gggggggg | Rrrrrrrr | Gggggggg | ggrrrrrr rrrrgggg ggggggrr | ...
1007+
* | Gggggggg | Bbbbbbbb | Gggggggg | Bbbbbbbb | bbgggggg ggggbbbb bbbbbbgg | ...
1008+
* @endcode
1009+
*/
1010+
#define VIDEO_PIX_FMT_SRGGB14P VIDEO_FOURCC('p', 'R', 'E', 'E')
1011+
9041012
/**
9051013
* @}
9061014
*/
@@ -1005,6 +1113,24 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
10051113
case VIDEO_PIX_FMT_GRBG8:
10061114
case VIDEO_PIX_FMT_RGGB8:
10071115
return 8;
1116+
case VIDEO_PIX_FMT_SBGGR10P:
1117+
case VIDEO_PIX_FMT_SGBRG10P:
1118+
case VIDEO_PIX_FMT_SGRBG10P:
1119+
case VIDEO_PIX_FMT_SRGGB10P:
1120+
case VIDEO_PIX_FMT_Y10P:
1121+
return 10;
1122+
case VIDEO_PIX_FMT_SBGGR12P:
1123+
case VIDEO_PIX_FMT_SGBRG12P:
1124+
case VIDEO_PIX_FMT_SGRBG12P:
1125+
case VIDEO_PIX_FMT_SRGGB12P:
1126+
case VIDEO_PIX_FMT_Y12P:
1127+
return 12;
1128+
case VIDEO_PIX_FMT_SBGGR14P:
1129+
case VIDEO_PIX_FMT_SGBRG14P:
1130+
case VIDEO_PIX_FMT_SGRBG14P:
1131+
case VIDEO_PIX_FMT_SRGGB14P:
1132+
case VIDEO_PIX_FMT_Y14P:
1133+
return 14;
10081134
case VIDEO_PIX_FMT_RGB565:
10091135
case VIDEO_PIX_FMT_YUYV:
10101136
return 16;

0 commit comments

Comments
 (0)