Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
formats.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019 Linaro Limited.
3 * Copyright 2025 NXP
4 * Copyright (c) 2025 STMicroelectronics
5 * SPDX-FileCopyrightText: Copyright The Zephyr Project Contributors
6 * SPDX-License-Identifier: Apache-2.0
7 */
8
14
15#ifndef ZEPHYR_INCLUDE_VIDEO_FORMATS_H
16#define ZEPHYR_INCLUDE_VIDEO_FORMATS_H
17
31
32#include <stdint.h>
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
41#define VIDEO_FOURCC(a, b, c, d) \
42 ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24))
43
53#define VIDEO_FOURCC_FROM_STR(str) VIDEO_FOURCC((str)[0], (str)[1], (str)[2], (str)[3])
54
64#define VIDEO_FOURCC_TO_STR(fourcc) \
65 ((char[]){ \
66 (char)((fourcc) & 0xFF), \
67 (char)(((fourcc) >> 8) & 0xFF), \
68 (char)(((fourcc) >> 16) & 0xFF), \
69 (char)(((fourcc) >> 24) & 0xFF), \
70 '\0' \
71 })
72
86
93#define VIDEO_FOREACH_BAYER(X, ...) \
94 VIDEO_FOREACH_BAYER_PADDED(X, __VA_ARGS__) \
95 VIDEO_FOREACH_BAYER_MIPI_PACKED(X, __VA_ARGS__) \
96 VIDEO_FOREACH_BAYER_NON_PACKED(X, __VA_ARGS__)
97
104#define VIDEO_FOREACH_BAYER_PADDED(X, ...) \
105 X(VIDEO_PIX_FMT_SBGGR8P16, __VA_ARGS__) \
106 X(VIDEO_PIX_FMT_SGBRG8P16, __VA_ARGS__) \
107 X(VIDEO_PIX_FMT_SGRBG8P16, __VA_ARGS__) \
108 X(VIDEO_PIX_FMT_SRGGB8P16, __VA_ARGS__)
109
118#define VIDEO_PIX_FMT_SBGGR8P16 VIDEO_FOURCC('p', 'B', '8', '2')
119
128#define VIDEO_PIX_FMT_SGBRG8P16 VIDEO_FOURCC('p', 'G', '8', '2')
129
138#define VIDEO_PIX_FMT_SGRBG8P16 VIDEO_FOURCC('p', 'g', '8', '2')
139
148#define VIDEO_PIX_FMT_SRGGB8P16 VIDEO_FOURCC('p', 'R', '8', '2')
149
158#define VIDEO_FOREACH_BAYER_MIPI_PACKED(X, ...) \
159 X(VIDEO_PIX_FMT_SBGGR10P, __VA_ARGS__) \
160 X(VIDEO_PIX_FMT_SGBRG10P, __VA_ARGS__) \
161 X(VIDEO_PIX_FMT_SGRBG10P, __VA_ARGS__) \
162 X(VIDEO_PIX_FMT_SRGGB10P, __VA_ARGS__) \
163 X(VIDEO_PIX_FMT_SBGGR12P, __VA_ARGS__) \
164 X(VIDEO_PIX_FMT_SGBRG12P, __VA_ARGS__) \
165 X(VIDEO_PIX_FMT_SGRBG12P, __VA_ARGS__) \
166 X(VIDEO_PIX_FMT_SRGGB12P, __VA_ARGS__) \
167 X(VIDEO_PIX_FMT_SBGGR14P, __VA_ARGS__) \
168 X(VIDEO_PIX_FMT_SGBRG14P, __VA_ARGS__) \
169 X(VIDEO_PIX_FMT_SGRBG14P, __VA_ARGS__) \
170 X(VIDEO_PIX_FMT_SRGGB14P, __VA_ARGS__)
171
179#define VIDEO_PIX_FMT_SBGGR10P VIDEO_FOURCC('p', 'B', 'A', 'A')
180
188#define VIDEO_PIX_FMT_SGBRG10P VIDEO_FOURCC('p', 'G', 'A', 'A')
189
197#define VIDEO_PIX_FMT_SGRBG10P VIDEO_FOURCC('p', 'g', 'A', 'A')
198
206#define VIDEO_PIX_FMT_SRGGB10P VIDEO_FOURCC('p', 'R', 'A', 'A')
207
215#define VIDEO_PIX_FMT_SBGGR12P VIDEO_FOURCC('p', 'B', 'C', 'C')
216
224#define VIDEO_PIX_FMT_SGBRG12P VIDEO_FOURCC('p', 'G', 'C', 'C')
225
233#define VIDEO_PIX_FMT_SGRBG12P VIDEO_FOURCC('p', 'g', 'C', 'C')
234
242#define VIDEO_PIX_FMT_SRGGB12P VIDEO_FOURCC('p', 'R', 'C', 'C')
243
251#define VIDEO_PIX_FMT_SBGGR14P VIDEO_FOURCC('p', 'B', 'E', 'E')
252
260#define VIDEO_PIX_FMT_SGBRG14P VIDEO_FOURCC('p', 'G', 'E', 'E')
261
269#define VIDEO_PIX_FMT_SGRBG14P VIDEO_FOURCC('p', 'g', 'E', 'E')
270
278#define VIDEO_PIX_FMT_SRGGB14P VIDEO_FOURCC('p', 'R', 'E', 'E')
279
288#define VIDEO_FOREACH_BAYER_NON_PACKED(X, ...) \
289 X(VIDEO_PIX_FMT_SBGGR8, __VA_ARGS__) \
290 X(VIDEO_PIX_FMT_SGBRG8, __VA_ARGS__) \
291 X(VIDEO_PIX_FMT_SGRBG8, __VA_ARGS__) \
292 X(VIDEO_PIX_FMT_SRGGB8, __VA_ARGS__) \
293 X(VIDEO_PIX_FMT_SGBRG10, __VA_ARGS__) \
294 X(VIDEO_PIX_FMT_SGRBG10, __VA_ARGS__) \
295 X(VIDEO_PIX_FMT_SRGGB10, __VA_ARGS__) \
296 X(VIDEO_PIX_FMT_SBGGR12, __VA_ARGS__) \
297 X(VIDEO_PIX_FMT_SGBRG12, __VA_ARGS__) \
298 X(VIDEO_PIX_FMT_SGRBG12, __VA_ARGS__) \
299 X(VIDEO_PIX_FMT_SRGGB12, __VA_ARGS__) \
300 X(VIDEO_PIX_FMT_SBGGR14, __VA_ARGS__) \
301 X(VIDEO_PIX_FMT_SGBRG14, __VA_ARGS__) \
302 X(VIDEO_PIX_FMT_SGRBG14, __VA_ARGS__) \
303 X(VIDEO_PIX_FMT_SRGGB14, __VA_ARGS__) \
304 X(VIDEO_PIX_FMT_SBGGR16, __VA_ARGS__) \
305 X(VIDEO_PIX_FMT_SGBRG16, __VA_ARGS__) \
306 X(VIDEO_PIX_FMT_SGRBG16, __VA_ARGS__) \
307 X(VIDEO_PIX_FMT_SRGGB16, __VA_ARGS__)
308
316#define VIDEO_PIX_FMT_SBGGR8 VIDEO_FOURCC('B', 'A', '8', '1')
317
325#define VIDEO_PIX_FMT_SGBRG8 VIDEO_FOURCC('G', 'B', 'R', 'G')
326
334#define VIDEO_PIX_FMT_SGRBG8 VIDEO_FOURCC('G', 'R', 'B', 'G')
335
343#define VIDEO_PIX_FMT_SRGGB8 VIDEO_FOURCC('R', 'G', 'G', 'B')
344
351#define VIDEO_PIX_FMT_SBGGR10 VIDEO_FOURCC('B', 'G', '1', '0')
352
359#define VIDEO_PIX_FMT_SGBRG10 VIDEO_FOURCC('G', 'B', '1', '0')
360
367#define VIDEO_PIX_FMT_SGRBG10 VIDEO_FOURCC('B', 'A', '1', '0')
368
375#define VIDEO_PIX_FMT_SRGGB10 VIDEO_FOURCC('R', 'G', '1', '0')
376
383#define VIDEO_PIX_FMT_SBGGR12 VIDEO_FOURCC('B', 'G', '1', '2')
384
391#define VIDEO_PIX_FMT_SGBRG12 VIDEO_FOURCC('G', 'B', '1', '2')
392
399#define VIDEO_PIX_FMT_SGRBG12 VIDEO_FOURCC('B', 'A', '1', '2')
400
407#define VIDEO_PIX_FMT_SRGGB12 VIDEO_FOURCC('R', 'G', '1', '2')
408
415#define VIDEO_PIX_FMT_SBGGR14 VIDEO_FOURCC('B', 'G', '1', '4')
416
423#define VIDEO_PIX_FMT_SGBRG14 VIDEO_FOURCC('G', 'B', '1', '4')
424
431#define VIDEO_PIX_FMT_SGRBG14 VIDEO_FOURCC('G', 'R', '1', '4')
432
439#define VIDEO_PIX_FMT_SRGGB14 VIDEO_FOURCC('R', 'G', '1', '4')
440
447#define VIDEO_PIX_FMT_SBGGR16 VIDEO_FOURCC('B', 'Y', 'R', '2')
448
455#define VIDEO_PIX_FMT_SGBRG16 VIDEO_FOURCC('G', 'B', '1', '6')
456
463#define VIDEO_PIX_FMT_SGRBG16 VIDEO_FOURCC('G', 'R', '1', '6')
464
471#define VIDEO_PIX_FMT_SRGGB16 VIDEO_FOURCC('R', 'G', '1', '6')
472
476
488
495#define VIDEO_FOREACH_GRAYSCALE(X, ...) \
496 VIDEO_FOREACH_GRAYSCALE_NON_PACKED(X, __VA_ARGS__) \
497 VIDEO_FOREACH_GRAYSCALE_PADDED(X, __VA_ARGS__) \
498 VIDEO_FOREACH_GRAYSCALE_MIPI_PACKED(X, __VA_ARGS__)
499
508#define VIDEO_FOREACH_GRAYSCALE_NON_PACKED(X, ...) \
509 X(VIDEO_PIX_FMT_GREY, __VA_ARGS__) \
510 X(VIDEO_PIX_FMT_Y10, __VA_ARGS__) \
511 X(VIDEO_PIX_FMT_Y12, __VA_ARGS__) \
512 X(VIDEO_PIX_FMT_Y14, __VA_ARGS__) \
513 X(VIDEO_PIX_FMT_Y16, __VA_ARGS__)
514
524#define VIDEO_PIX_FMT_GREY VIDEO_FOURCC('G', 'R', 'E', 'Y')
525
534#define VIDEO_PIX_FMT_Y10 VIDEO_FOURCC('Y', '1', '0', ' ')
535
544#define VIDEO_PIX_FMT_Y12 VIDEO_FOURCC('Y', '1', '2', ' ')
545
554#define VIDEO_PIX_FMT_Y14 VIDEO_FOURCC('Y', '1', '4', ' ')
555
564#define VIDEO_PIX_FMT_Y16 VIDEO_FOURCC('Y', '1', '6', ' ')
565
572#define VIDEO_FOREACH_GRAYSCALE_PADDED(X, ...) \
573 X(VIDEO_PIX_FMT_Y8P16, __VA_ARGS__)
574
583#define VIDEO_PIX_FMT_Y8P16 VIDEO_FOURCC('Y', '8', 'P', '2')
584
591#define VIDEO_FOREACH_GRAYSCALE_MIPI_PACKED(X, ...) \
592 X(VIDEO_PIX_FMT_Y10P, __VA_ARGS__) \
593 X(VIDEO_PIX_FMT_Y12P, __VA_ARGS__) \
594 X(VIDEO_PIX_FMT_Y14P, __VA_ARGS__)
595
602#define VIDEO_PIX_FMT_Y10P VIDEO_FOURCC('Y', '1', '0', 'P')
603
611#define VIDEO_PIX_FMT_Y12P VIDEO_FOURCC('Y', '1', '2', 'P')
612
620#define VIDEO_PIX_FMT_Y14P VIDEO_FOURCC('Y', '1', '4', 'P')
621
625
631
638#define VIDEO_FOREACH_RGB(X, ...) \
639 VIDEO_FOREACH_RGB_PACKED(X, __VA_ARGS__) \
640 VIDEO_FOREACH_RGB_NON_PACKED(X, __VA_ARGS__) \
641 VIDEO_FOREACH_RGB_ALPHA(X, __VA_ARGS__) \
642 VIDEO_FOREACH_RGB_PADDED(X, __VA_ARGS__)
643
652#define VIDEO_FOREACH_RGB_PACKED(X, ...) \
653 X(VIDEO_PIX_FMT_RGB565X, __VA_ARGS__) \
654 X(VIDEO_PIX_FMT_RGB565, __VA_ARGS__)
655
665#define VIDEO_PIX_FMT_RGB565X VIDEO_FOURCC('R', 'G', 'B', 'R')
666
676#define VIDEO_PIX_FMT_RGB565 VIDEO_FOURCC('R', 'G', 'B', 'P')
677
686#define VIDEO_FOREACH_RGB_NON_PACKED(X, ...) \
687 X(VIDEO_PIX_FMT_BGR24, __VA_ARGS__) \
688 X(VIDEO_PIX_FMT_RGB24, __VA_ARGS__)
689
697#define VIDEO_PIX_FMT_BGR24 VIDEO_FOURCC('B', 'G', 'R', '3')
698
706#define VIDEO_PIX_FMT_RGB24 VIDEO_FOURCC('R', 'G', 'B', '3')
707
716#define VIDEO_FOREACH_RGB_ALPHA(X, ...) \
717 X(VIDEO_PIX_FMT_ARGB32, __VA_ARGS__) \
718 X(VIDEO_PIX_FMT_ABGR32, __VA_ARGS__) \
719 X(VIDEO_PIX_FMT_RGBA32, __VA_ARGS__) \
720 X(VIDEO_PIX_FMT_BGRA32, __VA_ARGS__)
721
729#define VIDEO_PIX_FMT_ARGB32 VIDEO_FOURCC('B', 'A', '2', '4')
730
740#define VIDEO_PIX_FMT_BGRA32 VIDEO_FOURCC('A', 'R', '2', '4')
741
749#define VIDEO_PIX_FMT_RGBA32 VIDEO_FOURCC('A', 'B', '2', '4')
750
760#define VIDEO_PIX_FMT_ABGR32 VIDEO_FOURCC('R', 'A', '2', '4')
761
770#define VIDEO_FOREACH_RGB_PADDED(X, ...) \
771 X(VIDEO_PIX_FMT_XRGB32, __VA_ARGS__)
772
780#define VIDEO_PIX_FMT_XRGB32 VIDEO_FOURCC('B', 'X', '2', '4')
781
791#define VIDEO_PIX_FMT_XBGR32 VIDEO_FOURCC('R', 'X', '2', '4')
792
802#define VIDEO_PIX_FMT_BGRX32 VIDEO_FOURCC('X', 'R', '2', '4')
803
811#define VIDEO_PIX_FMT_RGBX32 VIDEO_FOURCC('X', 'B', '2', '4')
812
816
822
829#define VIDEO_FOREACH_YUV(X, ...) \
830 VIDEO_FOREACH_YUV_FULL_PLANAR(X, __VA_ARGS__) \
831 VIDEO_FOREACH_YUV_NON_PLANAR(X, __VA_ARGS__) \
832 VIDEO_FOREACH_YUV_SEMI_PLANAR(X, __VA_ARGS__)
833
840#define VIDEO_FOREACH_YUV_NON_PLANAR(X, ...) \
841 X(VIDEO_PIX_FMT_YUYV, __VA_ARGS__) \
842 X(VIDEO_PIX_FMT_YVYU, __VA_ARGS__) \
843 X(VIDEO_PIX_FMT_VYUY, __VA_ARGS__) \
844 X(VIDEO_PIX_FMT_UYVY, __VA_ARGS__) \
845 X(VIDEO_PIX_FMT_YUV24, __VA_ARGS__) \
846 X(VIDEO_PIX_FMT_XYUV32, __VA_ARGS__)
847
856#define VIDEO_PIX_FMT_YUYV VIDEO_FOURCC('Y', 'U', 'Y', 'V')
857
863#define VIDEO_PIX_FMT_YVYU VIDEO_FOURCC('Y', 'V', 'Y', 'U')
864
870#define VIDEO_PIX_FMT_VYUY VIDEO_FOURCC('V', 'Y', 'U', 'Y')
871
877#define VIDEO_PIX_FMT_UYVY VIDEO_FOURCC('U', 'Y', 'V', 'Y')
878
886#define VIDEO_PIX_FMT_XYUV32 VIDEO_FOURCC('X', 'Y', 'U', 'V')
887
895#define VIDEO_PIX_FMT_YUV24 VIDEO_FOURCC('Y', 'U', 'V', '3')
896
903#define VIDEO_FOREACH_YUV_SEMI_PLANAR(X, ...) \
904 X(VIDEO_PIX_FMT_NV12, __VA_ARGS__) \
905 X(VIDEO_PIX_FMT_NV21, __VA_ARGS__) \
906 X(VIDEO_PIX_FMT_NV16, __VA_ARGS__) \
907 X(VIDEO_PIX_FMT_NV61, __VA_ARGS__) \
908 X(VIDEO_PIX_FMT_NV24, __VA_ARGS__) \
909 X(VIDEO_PIX_FMT_NV42, __VA_ARGS__)
910
933#define VIDEO_PIX_FMT_NV12 VIDEO_FOURCC('N', 'V', '1', '2')
934
957#define VIDEO_PIX_FMT_NV21 VIDEO_FOURCC('N', 'V', '2', '1')
958
983#define VIDEO_PIX_FMT_NV16 VIDEO_FOURCC('N', 'V', '1', '6')
984
1009
1010#define VIDEO_PIX_FMT_NV61 VIDEO_FOURCC('N', 'V', '6', '1')
1011
1036#define VIDEO_PIX_FMT_NV24 VIDEO_FOURCC('N', 'V', '2', '4')
1037
1062#define VIDEO_PIX_FMT_NV42 VIDEO_FOURCC('N', 'V', '4', '2')
1063
1070#define VIDEO_FOREACH_YUV_FULL_PLANAR(X, ...) \
1071 X(VIDEO_PIX_FMT_YUV420, __VA_ARGS__) \
1072 X(VIDEO_PIX_FMT_YVU420, __VA_ARGS__)
1073
1101#define VIDEO_PIX_FMT_YUV420 VIDEO_FOURCC('Y', 'U', '1', '2')
1102
1130#define VIDEO_PIX_FMT_YVU420 VIDEO_FOURCC('Y', 'V', '1', '2')
1131
1135
1140
1147#define VIDEO_FOREACH_COMPRESSED(X, ...) \
1148 X(VIDEO_PIX_FMT_JPEG, __VA_ARGS__) \
1149 X(VIDEO_PIX_FMT_H264, __VA_ARGS__) \
1150 X(VIDEO_PIX_FMT_H264_NO_SC, __VA_ARGS__) \
1151 X(VIDEO_PIX_FMT_PNG, __VA_ARGS__)
1152
1156#define VIDEO_PIX_FMT_JPEG VIDEO_FOURCC('J', 'P', 'E', 'G')
1157
1161#define VIDEO_PIX_FMT_H264 VIDEO_FOURCC('H', '2', '6', '4')
1162
1166#define VIDEO_PIX_FMT_H264_NO_SC VIDEO_FOURCC('A', 'V', 'C', '1')
1167
1171#define VIDEO_PIX_FMT_PNG VIDEO_FOURCC('P', 'N', 'G', ' ')
1172
1176
1178#define _VIDEO_FMT_OR_EQ(pixfmt_a, pixfmt_b) || ((pixfmt_a) == (pixfmt_b))
1180
1187#define VIDEO_FMT_IS_GRAYSCALE(pixfmt) \
1188 (0 VIDEO_FOREACH_GRAYSCALE(_VIDEO_FMT_OR_EQ, pixfmt))
1189
1196#define VIDEO_FMT_IS_BAYER(pixfmt) \
1197 (0 VIDEO_FOREACH_BAYER(_VIDEO_FMT_OR_EQ, pixfmt))
1198
1205#define VIDEO_FMT_IS_RGB(pixfmt) \
1206 (0 VIDEO_FOREACH_RGB(_VIDEO_FMT_OR_EQ, pixfmt))
1207
1214#define VIDEO_FMT_IS_YUV(pixfmt) \
1215 (0 VIDEO_FOREACH_YUV(_VIDEO_FMT_OR_EQ, pixfmt))
1216
1223#define VIDEO_FMT_IS_MIPI_PACKED(pixfmt) \
1224 (0 VIDEO_FOREACH_BAYER_MIPI_PACKED(_VIDEO_FMT_OR_EQ, pixfmt) \
1225 VIDEO_FOREACH_GRAYSCALE_MIPI_PACKED(_VIDEO_FMT_OR_EQ, pixfmt))
1226
1233#define VIDEO_FMT_IS_PADDED(pixfmt) \
1234 (0 VIDEO_FOREACH_BAYER_PADDED(_VIDEO_FMT_OR_EQ, pixfmt) \
1235 VIDEO_FOREACH_GRAYSCALE_PADDED(_VIDEO_FMT_OR_EQ, pixfmt))
1236
1243#define VIDEO_FMT_IS_SEMI_PLANAR(pixfmt) \
1244 (0 VIDEO_FOREACH_YUV_SEMI_PLANAR(_VIDEO_FMT_OR_EQ, pixfmt))
1245
1252#define VIDEO_FMT_IS_FULL_PLANAR(pixfmt) \
1253 (0 VIDEO_FOREACH_YUV_FULL_PLANAR(_VIDEO_FMT_OR_EQ, pixfmt))
1254
1263static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
1264{
1265 switch (pixfmt) {
1270 case VIDEO_PIX_FMT_GREY:
1271 return 8;
1276 case VIDEO_PIX_FMT_Y10P:
1277 return 10;
1282 case VIDEO_PIX_FMT_Y12P:
1283 case VIDEO_PIX_FMT_NV12:
1284 case VIDEO_PIX_FMT_NV21:
1287 return 12;
1292 case VIDEO_PIX_FMT_Y14P:
1293 return 14;
1295 case VIDEO_PIX_FMT_YUYV:
1296 case VIDEO_PIX_FMT_YVYU:
1297 case VIDEO_PIX_FMT_UYVY:
1298 case VIDEO_PIX_FMT_VYUY:
1320 case VIDEO_PIX_FMT_Y10:
1321 case VIDEO_PIX_FMT_Y12:
1322 case VIDEO_PIX_FMT_Y14:
1323 case VIDEO_PIX_FMT_Y16:
1324 case VIDEO_PIX_FMT_NV16:
1325 case VIDEO_PIX_FMT_NV61:
1326 return 16;
1329 case VIDEO_PIX_FMT_NV24:
1330 case VIDEO_PIX_FMT_NV42:
1332 return 24;
1342 return 32;
1343 default:
1344 /* Variable number of bits per pixel or unknown format */
1345 return 0;
1346 }
1347}
1348
1349#ifdef __cplusplus
1350}
1351#endif
1352
1356
1357#endif /* ZEPHYR_INCLUDE_VIDEO_FORMATS_H */
#define VIDEO_PIX_FMT_SGRBG10
Definition formats.h:367
#define VIDEO_PIX_FMT_XYUV32
The first byte is empty (X) for each pixel.
Definition formats.h:886
#define VIDEO_PIX_FMT_SGRBG12P
Definition formats.h:233
#define VIDEO_PIX_FMT_RGB24
24 bit RGB format with 8 bit per component
Definition formats.h:706
#define VIDEO_PIX_FMT_Y10
Little endian, with the 6 most significant bits set to Zero.
Definition formats.h:534
#define VIDEO_PIX_FMT_NV24
Chroma (U/V) are not subsampled.
Definition formats.h:1036
#define VIDEO_PIX_FMT_SGBRG8P16
8-bit bayer format, split in two 4-bit blocks each zero-padded, little endian.
Definition formats.h:128
#define VIDEO_PIX_FMT_SBGGR10
Definition formats.h:351
#define VIDEO_PIX_FMT_Y12
Little endian, with the 4 most significant bits set to Zero.
Definition formats.h:544
#define VIDEO_PIX_FMT_NV21
Chroma (U/V) are subsampled horizontally and vertically.
Definition formats.h:957
#define VIDEO_PIX_FMT_SGRBG8
Definition formats.h:334
#define VIDEO_PIX_FMT_SRGGB10
Definition formats.h:375
#define VIDEO_PIX_FMT_Y12P
Definition formats.h:611
#define VIDEO_PIX_FMT_YVYU
Definition formats.h:863
#define VIDEO_PIX_FMT_NV61
Chroma (U/V) are subsampled horizontally.
Definition formats.h:1010
#define VIDEO_PIX_FMT_SRGGB12P
Definition formats.h:242
#define VIDEO_PIX_FMT_SBGGR10P
Definition formats.h:179
#define VIDEO_PIX_FMT_SBGGR14
Definition formats.h:415
#define VIDEO_PIX_FMT_SGRBG16
Definition formats.h:463
#define VIDEO_PIX_FMT_XBGR32
The first byte is empty (X) for each pixel.
Definition formats.h:791
#define VIDEO_PIX_FMT_SGRBG8P16
8-bit bayer format, split in two 4-bit blocks each zero-padded, little endian.
Definition formats.h:138
#define VIDEO_PIX_FMT_SRGGB16
Definition formats.h:471
#define VIDEO_PIX_FMT_Y10P
Definition formats.h:602
#define VIDEO_PIX_FMT_BGRA32
The last byte is alpha (A) for each pixel.
Definition formats.h:740
#define VIDEO_PIX_FMT_ARGB32
The first byte is alpha (A) for each pixel.
Definition formats.h:729
#define VIDEO_PIX_FMT_SRGGB10P
Definition formats.h:206
#define VIDEO_PIX_FMT_VYUY
Definition formats.h:870
#define VIDEO_PIX_FMT_SRGGB14P
Definition formats.h:278
#define VIDEO_PIX_FMT_SGBRG14
Definition formats.h:423
#define VIDEO_PIX_FMT_NV12
Chroma (U/V) are subsampled horizontally and vertically.
Definition formats.h:933
#define VIDEO_PIX_FMT_SRGGB12
Definition formats.h:407
#define VIDEO_PIX_FMT_Y14
Little endian, with the 2 most significant bits set to Zero.
Definition formats.h:554
#define VIDEO_PIX_FMT_SGBRG16
Definition formats.h:455
#define VIDEO_PIX_FMT_SGBRG14P
Definition formats.h:260
#define VIDEO_PIX_FMT_XRGB32
The first byte is empty (X) for each pixel.
Definition formats.h:780
#define VIDEO_PIX_FMT_SGBRG10
Definition formats.h:359
#define VIDEO_PIX_FMT_RGBA32
The last byte is alpha (A) for each pixel.
Definition formats.h:749
#define VIDEO_PIX_FMT_YUV420
Chroma (U/V) are subsampled horizontally and vertically.
Definition formats.h:1101
#define VIDEO_PIX_FMT_YVU420
Chroma (U/V) are subsampled horizontally and vertically.
Definition formats.h:1130
#define VIDEO_PIX_FMT_SGRBG10P
Definition formats.h:197
#define VIDEO_PIX_FMT_SBGGR12
Definition formats.h:383
#define VIDEO_PIX_FMT_GREY
Same as Y8 (8-bit luma-only) following the standard FOURCC naming, or L8 in some graphics libraries.
Definition formats.h:524
#define VIDEO_PIX_FMT_SGBRG12
Definition formats.h:391
#define VIDEO_PIX_FMT_Y16
Little endian.
Definition formats.h:564
#define VIDEO_PIX_FMT_SRGGB14
Definition formats.h:439
#define VIDEO_PIX_FMT_SGBRG8
Definition formats.h:325
#define VIDEO_PIX_FMT_SRGGB8P16
8-bit bayer format, split in two 4-bit blocks each zero-padded, little endian.
Definition formats.h:148
#define VIDEO_PIX_FMT_SBGGR12P
Definition formats.h:215
#define VIDEO_PIX_FMT_SBGGR8P16
8-bit bayer format, split in two 4-bit blocks each zero-padded, little endian.
Definition formats.h:118
#define VIDEO_PIX_FMT_NV16
Chroma (U/V) are subsampled horizontally.
Definition formats.h:983
#define VIDEO_PIX_FMT_SBGGR8
Definition formats.h:316
#define VIDEO_PIX_FMT_YUV24
24 bit YUV format with 8 bit per component
Definition formats.h:895
static unsigned int video_bits_per_pixel(uint32_t pixfmt)
Get number of bits per pixel of a pixel format.
Definition formats.h:1263
#define VIDEO_PIX_FMT_SRGGB8
Definition formats.h:343
#define VIDEO_PIX_FMT_SBGGR14P
Definition formats.h:251
#define VIDEO_PIX_FMT_NV42
Chroma (U/V) are not subsampled.
Definition formats.h:1062
#define VIDEO_PIX_FMT_YUYV
There is either a missing channel per pixel, U or V.
Definition formats.h:856
#define VIDEO_PIX_FMT_Y8P16
8-bit luma-only split in two 4-bit blocks each zero-padded, little endian.
Definition formats.h:583
#define VIDEO_PIX_FMT_SGBRG10P
Definition formats.h:188
#define VIDEO_PIX_FMT_Y14P
Definition formats.h:620
#define VIDEO_PIX_FMT_UYVY
Definition formats.h:877
#define VIDEO_PIX_FMT_BGRX32
The last byte is empty (X) for each pixel.
Definition formats.h:802
#define VIDEO_PIX_FMT_RGBX32
The last byte is empty (X) for each pixel.
Definition formats.h:811
#define VIDEO_PIX_FMT_SGRBG14P
Definition formats.h:269
#define VIDEO_PIX_FMT_SBGGR16
Definition formats.h:447
#define VIDEO_PIX_FMT_SGBRG12P
Definition formats.h:224
#define VIDEO_PIX_FMT_RGB565
5 red bits [15:11], 6 green bits [10:5], 5 blue bits [4:0].
Definition formats.h:676
#define VIDEO_PIX_FMT_SGRBG12
Definition formats.h:399
#define VIDEO_PIX_FMT_BGR24
24 bit RGB format with 8 bit per component
Definition formats.h:697
#define VIDEO_PIX_FMT_SGRBG14
Definition formats.h:431
#define VIDEO_PIX_FMT_ABGR32
The first byte is alpha (A) for each pixel.
Definition formats.h:760
__UINT32_TYPE__ uint32_t
Definition stdint.h:90