19#define MPIX_FOURCC_TO_STR(fourcc) \
21 (char)(((fourcc) >> 0) & 0xFF), \
22 (char)(((fourcc) >> 8) & 0xFF), \
23 (char)(((fourcc) >> 16) & 0xFF), \
24 (char)(((fourcc) >> 24) & 0xFF), \
36#define MPIX_FOURCC(a, b, c, d) \
37 ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24))
64#define MPIX_FMT_RGB332 MPIX_FOURCC('R', 'G', 'B', '1')
75#define MPIX_FMT_RGB565 MPIX_FOURCC('R', 'G', 'B', 'P')
86#define MPIX_FMT_RGB565X MPIX_FOURCC('R', 'G', 'B', 'R')
95#define MPIX_FMT_RGB24 MPIX_FOURCC('R', 'G', 'B', '3')
114#define MPIX_FMT_YUV12 MPIX_FOURCC('Y', 'U', 'V', 'C')
121#define MPIX_FMT_YUV24 MPIX_FOURCC('Y', 'U', 'V', '3')
131#define MPIX_FMT_YUYV MPIX_FOURCC('Y', 'U', 'Y', 'V')
150#define MPIX_FMT_GREY MPIX_FOURCC('G', 'R', 'E', 'Y')
167#define MPIX_FMT_SBGGR8 MPIX_FOURCC('B', 'A', '8', '1')
176#define MPIX_FMT_SGBRG8 MPIX_FOURCC('G', 'B', 'R', 'G')
185#define MPIX_FMT_SGRBG8 MPIX_FOURCC('G', 'R', 'B', 'G')
194#define MPIX_FMT_SRGGB8 MPIX_FOURCC('R', 'G', 'G', 'B')
213#define MPIX_FMT_PALETTE1 MPIX_FOURCC('P', 'L', 'T', '1')
224#define MPIX_FMT_PALETTE2 MPIX_FOURCC('P', 'L', 'T', '2')
236#define MPIX_FMT_PALETTE3 MPIX_FOURCC('P', 'L', 'T', '3')
247#define MPIX_FMT_PALETTE4 MPIX_FOURCC('P', 'L', 'T', '4')
259#define MPIX_FMT_PALETTE5 MPIX_FOURCC('P', 'L', 'T', '5')
271#define MPIX_FMT_PALETTE6 MPIX_FOURCC('P', 'L', 'T', '6')
283#define MPIX_FMT_PALETTE7 MPIX_FOURCC('P', 'L', 'T', '7')
294#define MPIX_FMT_PALETTE8 MPIX_FOURCC('P', 'L', 'T', '8')
309#define MPIX_FMT_JPEG MPIX_FOURCC('J', 'P', 'E', 'G')
315#define MPIX_FMT_QOI MPIX_FOURCC('Q', 'O', 'I', 'F')
319static inline uint8_t mpix_bits_per_pixel(uint32_t fourcc)